Bläddra i källkod

1.停复役审批

javababay 2 år sedan
förälder
incheckning
db8637e334

+ 916 - 0
src/views/basicInformation/components/processInfor.vue

@@ -0,0 +1,916 @@
+<template>
+    <!-- 工序信息维护 -->
+    <div class="processInformation">
+        <div class="box">
+            <div
+                class="box-left"
+                :style="listTopicTree.show ? null : { width: '22px' }"
+            >
+                <div
+                    class="box-left-bt"
+                    style="overflow: hidden;"
+                >
+                    <span v-show="listTopicTree.show">工序结构</span>
+                    <div style="float: right;height: 100%;padding-right: 4px;">
+                        <span
+                            class="el-icon-d-arrow-right"
+                            style="cursor: pointer; transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;"
+                            :style="listTopicTree.show ? { transform: 'rotate(180deg)'} : { transform: 'rotate(0deg)'} "
+                            @click="listTopicTree.show = !listTopicTree.show;"
+                        ></span>
+                    </div>
+                </div>
+                <div class="box-left-tree">
+                    <el-tree
+                        v-show="listTopicTree.show"
+                        :data="listTopicTree.data"
+                        :props="listTopicTree.defaultProps"
+                        v-loading="listTopicTree.loading"
+                    >
+                        <span
+                            class="custom-tree-node"
+                            :class="{'tree-row-on': filterForm.data.parentid === data.id}"
+                            style="width:100%; font-size:12px;"
+                            slot-scope="{ node, data }"
+                        >
+                            <p
+                                style="overflow:hidden; text-overflow:ellipsis; white-space:nowrap;"
+                                :title="node.label"
+                                @click="selectByTopicId(data)"
+                            >{{ node.label }}</p>
+                        </span>
+                    </el-tree>
+                </div>
+            </div>
+            <div
+                class="box-right"
+                :style="listTopicTree.show ? null : { 'margin-left': '22px' }"
+            >
+                <div class="box-top">
+                    <el-form
+                        style="overflow: hidden;"
+                        :style="filterForm.show ? null : { height: '0px' }"
+                        class="box-top-form"
+                        size="mini"
+                        label-width="70px"
+                    >
+                        <el-row>
+                            <el-col :span="8">
+                                <el-form-item label="工序代码">
+                                    <el-input
+                                        clearable
+                                        v-model="filterForm.data.id"
+                                        placeholder="工序代码"
+                                        style="width: 100%;"
+                                        @keyup.enter.native="getTableData(1)"
+                                    ></el-input>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="8">
+                                <el-form-item label="工序名称">
+                                    <el-input
+                                        clearable
+                                        v-model="filterForm.data.name"
+                                        placeholder="工序名称"
+                                        style="width: 100%;"
+                                        @keyup.enter.native="getTableData(1)"
+                                    ></el-input>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="8">
+                                <el-form-item label="上层结点">
+                                    <el-select
+                                        filterable
+                                        clearable
+                                        v-model="filterForm.data.parentid"
+                                        placeholder="上层结点"
+                                        style="width: 100%;"
+                                    >
+                                        <el-option
+                                            v-for="item of nameObj.parentid.arr"
+                                            :key="item.id"
+                                            :value="item.id"
+                                            :label="item.name"
+                                        ></el-option>
+                                    </el-select>
+                                </el-form-item>
+                            </el-col>
+                        </el-row>
+                    </el-form>
+                    <div class="box-top-gjl">
+                        <el-button
+                            class="button"
+                            type="primary"
+                            size="mini"
+                            icon="el-icon-plus"
+                            v-privilege="activeMenu + 'ADD'"
+                            @click="but_add"
+                        >新增</el-button>
+                        <el-button
+                            class="button"
+                            type="primary"
+                            size="mini"
+                            icon="el-icon-edit-outline"
+                            v-privilege="activeMenu + 'PUT'"
+                            @click="but_edit_plural()"
+                            :loading="loading"
+                        >修改</el-button>
+                        <el-button
+                            class="button"
+                            type="danger"
+                            size="mini"
+                            icon="el-icon-delete"
+                            v-privilege="activeMenu + 'DELETE'"
+                            @click="but_del_plural()"
+                            :loading="loading"
+                        >删除</el-button>
+                        <div style="float:right; text-align: right;">
+                            <el-button
+                                class="button"
+                                type="primary"
+                                size="mini"
+                                icon="el-icon-search"
+                                v-privilege="activeMenu + 'QUERY'"
+                                @click="getTableData(1)"
+                            >查询</el-button>
+                            <el-button
+                                class="button"
+                                type="primary"
+                                size="mini"
+                                icon="el-icon-refresh"
+                                v-privilege="activeMenu + 'QUERY'"
+                                @click="tableDataCancel();"
+                            >重置</el-button>
+                            <el-button
+                                size="mini"
+                                :icon="filterForm.show ? 'el-icon-caret-top' : 'el-icon-caret-bottom'"
+                                :title="filterForm.show ? '收起搜索区' : '展开搜索区'"
+                                @click="filterForm.show = !filterForm.show;
+                                    $nextTick(() => {
+                                        singleTableHeight = getRoleHeight($refs['singleTable'].$el) - 45;
+                                    }
+                                );"
+                            >{{ filterForm.show ? '收起' : '展开' }}</el-button>
+                        </div>
+                    </div>
+                </div>
+                <div class="box-bottom">
+                    <el-form
+                        size="mini"
+                        ref="dialog_form_arr"
+                        label-width="0px"
+                        :model="tableFormDataObj"
+                    >
+                        <el-table
+                            stripe
+                            id="singleTable"
+                            ref="singleTable"
+                            :data="tableData"
+                            v-loading="tableLoading"
+                            style="width: 100%;"
+                            :height="singleTableHeight"
+                            border
+                            size="mini"
+                            highlight-current-row
+                            @current-change="handleCurrentChange"
+                            @selection-change="handleSelectionChange"
+                        >
+                            <el-table-column
+                                type="selection"
+                                width="40"
+                                align="center"
+                                fixed="left"
+                            ></el-table-column>
+                            <el-table-column
+                                sortable
+                                prop="id"
+                                label="工序代码"
+                                width="72px"
+                                :show-overflow-tooltip="true"
+                            ></el-table-column>
+                            <el-table-column
+                                sortable
+                                prop="name"
+                                label="工序名称"
+                                width="170px"
+                                :show-overflow-tooltip="true"
+                            > <template slot-scope="scope">
+                                    <el-form-item
+                                        v-if="scope.row.isSelection"
+                                        :prop="scope.row.id + '.name'"
+                                        :rules="dialog.editorBox.form.rules.name"
+                                    >
+                                        <el-input
+                                            clearable
+                                            style="width: 100%;"
+                                            v-model="tableFormDataObj[scope.row.id].name"
+                                        ></el-input>
+                                        <template
+                                            slot="error"
+                                            slot-scope="scope"
+                                        >
+                                            <p
+                                                class="error"
+                                                :title="scope.error"
+                                            >{{ scope.error }}</p>
+                                        </template>
+                                    </el-form-item>
+                                    <span v-else>{{scope.row.name}}</span>
+                                </template>
+                            </el-table-column>
+                            <el-table-column
+                                sortable
+                                prop="parentid"
+                                label="上层节点"
+                                width="72px"
+                                :show-overflow-tooltip="true"
+                            ></el-table-column>
+                            <el-table-column
+                                sortable
+                                prop="node"
+                                label="级别"
+                                width="50px"
+                                :show-overflow-tooltip="true"
+                            ></el-table-column>
+                            <el-table-column
+                                sortable
+                                prop="seqno"
+                                label="顺序号"
+                                width="78px"
+                                :show-overflow-tooltip="true"
+                            > <template slot-scope="scope">
+                                    <el-form-item
+                                        v-if="scope.row.isSelection"
+                                        :prop="scope.row.id + '.seqno'"
+                                        :rules="dialog.editorBox.form.rules.seqno"
+                                    >
+                                        <el-input
+                                            clearable
+                                            style="width: 100%;"
+                                            v-model="tableFormDataObj[scope.row.id].seqno"
+                                        ></el-input>
+                                        <template
+                                            slot="error"
+                                            slot-scope="scope"
+                                        >
+                                            <p
+                                                class="error"
+                                                :title="scope.error"
+                                            >{{ scope.error }}</p>
+                                        </template>
+                                    </el-form-item>
+                                    <span v-else>{{scope.row.seqno}}</span>
+                                </template>
+                            </el-table-column>
+                        </el-table>
+                    </el-form>
+                    <el-pagination
+                        layout="total, sizes, prev, pager, next, jumper"
+                        :total="total"
+                        :page-sizes="[10, 20, 50, 100, 500, 1000]"
+                        :page-size="pageSize"
+                        :current-page.sync="pageNum"
+                        @size-change="tableSizeChange"
+                        @current-change="getTableData()"
+                        style="text-align: right;margin-top: 10px;"
+                    ></el-pagination>
+                </div>
+            </div>
+        </div>
+        <el-dialog
+            :title="'工序信息 - ' + (dialog.editorBox.type === 'add' ? '新增' : '修改')"
+            :visible.sync="dialog.editorBox.show"
+            width="600px"
+            :close-on-click-modal="false"
+            :show-close="!loading"
+        >
+            <div>
+                <el-form
+                    ref="dialog_form"
+                    :model="dialog.editorBox.form.data"
+                    :rules="dialog.editorBox.form.rules"
+                    size="mini"
+                    label-width="120px"
+                >
+                    <el-row>
+                        <el-col :span="12">
+                            <el-form-item
+                                label="工序代码"
+                                prop="id"
+                            >
+                                <el-input
+                                    clearable
+                                    style="width: 100%;"
+                                    v-model="dialog.editorBox.form.data.id"
+                                    :disabled="dialog.editorBox.type !== 'add'"
+                                ></el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item
+                                label="工序名称"
+                                prop="name"
+                            >
+                                <el-input
+                                    clearable
+                                    style="width: 100%;"
+                                    v-model="dialog.editorBox.form.data.name"
+                                ></el-input>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                    <el-row>
+                        <el-col :span="12">
+                            <el-form-item
+                                label="上层节点"
+                                prop="parentid"
+                            >
+                                <el-select
+                                    filterable
+                                    clearable
+                                    style="width: 100%;"
+                                    v-model="dialog.editorBox.form.data.parentid"
+                                    disabled
+                                >
+                                    <el-option
+                                        v-for="item of nameObj.parentid.arr"
+                                        :key="item.id"
+                                        :value="item.id"
+                                        :label="item.name"
+                                    ></el-option>
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item
+                                label="级别"
+                                prop="node"
+                            >
+                                <el-input
+                                    clearable
+                                    style="width: 100%;"
+                                    v-model="dialog.editorBox.form.data.node"
+                                    disabled
+                                ></el-input>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                </el-form>
+            </div>
+            <span
+                slot="footer"
+                class="dialog-footer"
+            >
+                <el-button
+                    @click="dialog.editorBox.show = false"
+                    :loading="loading"
+                >取 消</el-button>
+                <el-button
+                    type="primary"
+                    @click="dataSave"
+                    :loading="loading"
+                >保 存</el-button>
+            </span>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+import { zCheckNumber1 } from '~/utils/validator.js';
+export default {
+    name: 'processInformation',
+    data () {
+        return {
+            multipleSelection: [],
+            tableFormDataObj: {},
+            activeMenu: '',
+            filterForm: {
+                show: true,
+                data: {
+                    id: '',
+                    name: '',
+                    parentid: ''
+                },
+                rules: {
+
+                }
+            },
+            listTopicTree: {
+                show: true,
+                loading: false,
+                data: [],
+                defaultProps: {
+                    children: 'children',
+                    label: 'name'
+                }
+            },
+            pageNum: 1,
+            pageSize: 20,
+            total: 0,
+            singleTableHeight: 100,
+            tableData: [
+            ],
+            nameObj: {
+                parentid: {
+                    obj: {},
+                    arr: []
+                },
+                id: {
+                    obj: {},
+                    arr: []
+                },
+                name: {
+                    obj: {},
+                    arr: []
+                },
+                seqno: {
+                    obj: {},
+                    arr: []
+                }
+            },
+            loading: false,
+            tableLoading: false,
+            dialog: {
+                editorBox: {
+                    show: false,
+                    type: '',
+                    addRow: null,
+                    form: {
+                        default: {
+                            parentid: ''
+                        },
+                        data: {
+                            id: '',
+                            name: '',
+                            parentid: '',
+                            node: '',
+                            seqno: '',
+                        },
+                        rules: {
+                            id: [
+                                { required: true, message: '该项不能为空', trigger: 'change' }
+                            ],
+                            name: [
+                                { required: true, message: '该项不能为空', trigger: 'change' }
+                            ],
+                            seqno: [
+                                { validator: zCheckNumber1, trigger: 'change' }
+                            ]
+                        }
+                    }
+                }
+            }
+        }
+    },
+    created () {
+        this.activeMenu = window.localStorage.getItem('activeMenu');
+    },
+    mounted () {
+        let that = this;
+        window.PEDataObj = {
+            // 将数据绑定到window上,供main页面使用
+            vm: that,
+            // tableArr:用于导出成Excel的表格的信息
+            tableArr: [
+                {
+                    name: '',
+                    id: 'singleTable'
+                }
+            ]
+        };
+        that.$nextTick(() => {
+            // 立即获取的height有一定偏差,通过setTimeout延迟来解决
+            setTimeout(() => {
+                that.singleTableHeight = that.getRoleHeight(that.$refs['singleTable'].$el) - 45;
+            }, 1);
+        });
+        that.getNodeData();
+        that.getNodeTreeData();
+        that.getTableData();
+    },
+    methods: {
+        //  计算树区域高度
+        getRoleHeight (dom) {
+            return window.innerHeight - dom.offsetTop;
+        },
+        // 获取工序列表
+        getNodeData () {
+            let that = this
+            let url = 'pass/ems/v1/tprocessinfors/getIdAndName';
+            that.axios.get(url)
+                .then(function (res) {
+                    if (res.code === '0') {
+                        let arr = [];
+                        let obj = {};
+                        for (let item of res.data) {
+                            arr.push({
+                                id: item.id,
+                                name: item.name
+                            })
+                            obj[item.id] = {
+                                name: item.name,
+                                node: item.node
+                            };
+                        }
+                        that.nameObj.parentid.arr = arr;
+                        that.nameObj.parentid.obj = obj;
+                    } else {
+                        that.$message.error(res.message);
+                    }
+                });
+        },
+        // 获取工序节点树
+        getNodeTreeData () {
+            let that = this
+            let url = 'pass/ems/v1/tprocessinfors/gettree/';
+            that.listTopicTree.loading = true;
+            that.axios.get(url)
+                .then(function (res) {
+                    if (res.code === '0') {
+                        that.listTopicTree.data = [{
+                            id: '',
+                            name: '记录',
+                            children: res.data
+                        }];
+                    } else {
+                        that.$message.error(res.message);
+                    }
+                    that.listTopicTree.loading = false;
+                });
+        },
+        // 获取表格中的数据
+        getTableData (pageNum) {
+            let that = this,
+                params = {
+                    id: that.filterForm.data.id,
+                    name: that.filterForm.data.name,
+                    parentid: that.filterForm.data.parentid
+                };
+            that.pageNum = pageNum || that.pageNum;
+            that.tableLoading = true;
+            that.dialog.editorBox.form.default.parentid = that.filterForm.data.parentid;
+            let url = 'pass/ems/v1/tprocessinfors/like/?pageNum=' + that.pageNum + '&pageSize=' + that.pageSize;
+            that.axios.get(url, {
+                params: params
+            })
+                .then(function (res) {
+                    if (res.code === '0') {
+                        let arr = [];
+                        for (let item of res.data.list) {
+                            arr.push({
+                                id: item.id,
+                                name: item.name,
+                                parentid: item.parentid,
+                                node: item.node,
+                                seqno: item.seqno,
+                            })
+                        }
+                        that.tableData = arr;
+                        that.total = res.data.total;
+                    } else {
+                        that.$message.error(res.message);
+                    }
+                    that.tableLoading = false;
+                }).catch(function () {
+                    that.tableLoading = false;
+                });
+        },
+        // 改变表格显示条数
+        tableSizeChange (val) {
+            let that = this;
+            that.pageSize = val;
+            that.getTableData(1);
+        },
+        // 重置搜索
+        tableDataCancel () {
+            let that = this;
+            that.filterForm.data.id = '';
+            that.filterForm.data.name = '';
+            that.filterForm.data.parentid = '';
+            that.getTableData(1);
+        },
+        // 表格中多选按钮的相关方法
+        handleSelectionChange (val) {
+            let that = this;
+            let tableFormDataObj = {};
+            for (let item of that.tableData) {
+                item.isSelection = false;
+            }
+            for (let item of val) {
+                let obj = {};
+                let xId = item.id;
+                if (that.tableFormDataObj[xId]) {
+                    tableFormDataObj[xId] = that.tableFormDataObj[xId];
+                } else {
+                    for (let key in item) {
+                        obj[key] = item[key];
+                    }
+                    tableFormDataObj[xId] = obj;
+                }
+                item.isSelection = true;
+            }
+            that.tableFormDataObj = tableFormDataObj;
+            that.multipleSelection = val;
+        },
+        // 批量修改
+        but_edit_plural () {
+            let that = this;
+            if (that.multipleSelection.length > 0) {
+                that.$refs['dialog_form_arr'].validate((valid) => {
+                    if (valid) {
+                        let SubmitData = [];
+                        for (let key in that.tableFormDataObj) {
+                            SubmitData.push({
+                                id: that.tableFormDataObj[key].id,
+                                name: that.tableFormDataObj[key].name,
+                                parentid: that.tableFormDataObj[key].parentid,
+                                node: that.tableFormDataObj[key].node,
+                                ename: that.tableFormDataObj[key].ename,
+                                qname: that.tableFormDataObj[key].qname,
+                                seqno: that.tableFormDataObj[key].seqno,
+                            });
+                        }
+                        that.loading = true;
+                        that.axios.put('pass/ems/v1/tprocessinfors/', SubmitData)
+                            .then(function (res) {
+                                if (res.code === '0') {
+                                    that.$message({
+                                        message: '修改成功',
+                                        type: 'success'
+                                    });
+                                    that.getTableData();
+                                    that.dialog.editorBox.show = false;
+                                } else {
+                                    that.$message.error(res.message);
+                                }
+                                that.loading = false;
+                            }).catch(function () {
+                                that.loading = false;
+                            });
+                    }
+                });
+            } else {
+                this.$message.error('至少要选择一条数据');
+            }
+        },
+        // 批量删除
+        but_del_plural () {
+            let that = this;
+            if (that.multipleSelection.length > 0) {
+                let ids = [];
+                for (let item of that.multipleSelection) {
+                    ids.push(item.id);
+                }
+                that.$confirm('是否删除已选数据?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    state: 'warning'
+                }).then(() => {
+                    that.axios.delete('pass/ems/v1/tprocessinfors/' + ids.toString())
+                        .then(function (res) {
+                            if (res.code === '0') {
+                                that.$message({
+                                    message: '删除成功',
+                                    type: 'success'
+                                });
+                                that.getTableData();
+                            } else {
+                                if (res.code === '51') {
+
+                                }
+                                that.$message.error(res.message);
+                            }
+                        }).catch(function () {
+                        });
+                }).catch(() => {
+                });
+            } else {
+                this.$message.error('至少要选择一条数据');
+            }
+        },
+         // 选择添加时的模板
+        handleCurrentChange (row) {
+            let that = this;
+            that.dialog.editorBox.addRow = row;
+        },
+        but_add () {
+            let that = this;
+                if (that.dialog.editorBox.addRow) {
+                for (let key in that.dialog.editorBox.form.data) {
+                    if (that.dialog.editorBox.addRow[key] || that.dialog.editorBox.addRow[key] === 0) {
+                        that.dialog.editorBox.form.data[key] = that.dialog.editorBox.addRow[key];
+                    } else {
+                        that.dialog.editorBox.form.data[key] = '';
+                    }
+                }
+                this.$refs['singleTable'].setCurrentRow();
+            } else {
+                for (let key in that.dialog.editorBox.form.data) {
+                    if (that.filterForm.data[key] || that.filterForm.data[key] === 0) {
+                        that.dialog.editorBox.form.data[key] = that.filterForm.data[key];
+                    } else {
+                        that.dialog.editorBox.form.data[key] = '';
+                    }
+                }
+            that.dialog.editorBox.form.data.id = that.nameObj.id.obj[that.dialog.editorBox.form.data.id];
+            that.dialog.editorBox.form.data.name = that.nameObj.id.obj[that.dialog.editorBox.form.data.name];
+            that.dialog.editorBox.form.data.seqno = 0;
+            }
+            that.dialog.editorBox.form.data.parentid = that.dialog.editorBox.form.default.parentid;
+            that.dialog.editorBox.form.data.node = +(that.nameObj.parentid.obj[that.dialog.editorBox.form.default.parentid] ? that.nameObj.parentid.obj[that.dialog.editorBox.form.default.parentid].node : '0') + 1 + '';
+            that.dialog.editorBox.type = 'add';
+            that.dialog.editorBox.show = true;
+            setTimeout(() => {
+                that.$refs['dialog_form'].clearValidate();
+            }, 100);
+        },
+        dataSave () {
+            let that = this;
+            let SubmitData = {
+                id: that.dialog.editorBox.form.data.id,
+                name: that.dialog.editorBox.form.data.name,
+                parentid: that.dialog.editorBox.form.data.parentid,
+                node: that.dialog.editorBox.form.data.node,
+                seqno: that.dialog.editorBox.form.data.seqno,
+            };
+            that.$refs['dialog_form'].validate((valid) => {
+                if (valid) {
+                    if (that.dialog.editorBox.type === 'add') {
+                        let foorData = new FormData();
+                        for (let key in SubmitData) {
+                            foorData.append(key, SubmitData[key]);
+                        }
+                        that.loading = true;
+                        that.axios.post('pass/ems/v1/tprocessinfors/', foorData, {
+                            headers: {
+                                'Content-Type': 'multipart/form-data'
+                            }
+                        })
+                            .then(function (res) {
+                                if (res.code === '0') {
+                                    that.$message({
+                                        message: '新增成功',
+                                        type: 'success'
+                                    });
+                                    that.getNodeData();
+                                    that.getNodeTreeData();
+                                    that.getTableData();
+                                    that.dialog.editorBox.show = false;
+                                } else {
+                                    that.$message.error(res.message);
+                                }
+                                that.loading = false;
+                            }).catch(function () {
+                                that.loading = false;
+                            });
+                    } else {
+                        that.loading = true;
+                        that.axios.put('pass/ems/v1/tprocessinfors/' + SubmitData.id, SubmitData)
+                            .then(function (res) {
+                                if (res.code === '0') {
+                                    that.$message({
+                                        message: '修改成功',
+                                        type: 'success'
+                                    });
+                                    that.getNodeData();
+                                    that.getNodeTreeData();
+                                    that.getTableData();
+                                    that.dialog.editorBox.show = false;
+                                } else {
+                                    that.$message.error(res.message);
+                                }
+                                that.loading = false;
+                            }).catch(function () {
+                                that.loading = false;
+                            });
+                    }
+                }
+            });
+        },
+        selectByTopicId (data) {
+            let that = this;
+            that.filterForm.data.parentid = data.id;
+            that.getTableData(1);
+        }
+        // but_edit (row) {
+        //     let that = this;
+        //     that.dialog.editorBox.form.data.id = row.id;
+        //     that.dialog.editorBox.form.data.id = row.id;
+        //     that.dialog.editorBox.form.data.name = row.name;
+        //     that.dialog.editorBox.form.data.parentid = row.parentid;
+        //     that.dialog.editorBox.form.data.node = row.node;
+        //     that.dialog.editorBox.form.data.ename = row.ename;
+        //     that.dialog.editorBox.form.data.qname = row.qname;
+        //     that.dialog.editorBox.form.data.seqno = row.seqno;
+        //     that.dialog.editorBox.form.data.issettle = row.issettle;
+        //     that.dialog.editorBox.form.data.isreal = row.isreal;
+        //     that.dialog.editorBox.form.data.isplan = row.isplan;
+        //     that.dialog.editorBox.form.data.isbalance = row.isbalance;
+        //     that.dialog.editorBox.form.data.hasproduct = row.hasproduct;
+        //     that.dialog.editorBox.form.data.isquality = row.isquality;
+        //     that.dialog.editorBox.form.data.bcode = row.bcode;
+        //     that.dialog.editorBox.form.data.bdesc1 = row.bdesc1;
+        //     that.dialog.editorBox.form.data.bdesc2 = row.bdesc2;
+        //     that.dialog.editorBox.type = 'edit';
+        //     that.dialog.editorBox.show = true;
+        // },
+        // but_del (row) {
+        //     let that = this;
+        //     that.$confirm('是否删除该条数据?', '提示', {
+        //         confirmButtonText: '确定',
+        //         cancelButtonText: '取消',
+        //         state: 'warning'
+        //     }).then(() => {
+        //         that.axios.delete('pass/ems/v1/trmworkprocs/' + row.id)
+        //             .then(function (res) {
+        //                 if (res.code === '0') {
+        //                     that.$message({
+        //                         message: '删除成功',
+        //                         type: 'success'
+        //                     });
+        //                     that.getNodeData();
+        //                     that.getNodeTreeData();
+        //                     that.getTableData();
+        //                 } else {
+        //                     that.$message.error(res.message);
+        //                 }
+        //             }).catch(function () {
+        //             });
+        //     }).catch(() => {
+        //     });
+        // }
+    }
+}
+</script>
+
+<style lang="less">
+.processInformation {
+    min-width: 700px;
+    height: 100%;
+    .box {
+        height: 100%;
+        padding: 15px 15px 0 15px;
+        .box-left {
+            float: left;
+            width: 200px;
+            height: calc(100% - 3px);
+            overflow: auto;
+            .box-left-bt {
+                line-height: 35px;
+                font-size: 16px;
+                border-bottom: 1px solid #ccc;
+            }
+            .box-left-tree {
+                height: calc(100% - 50px);
+                overflow: auto;
+                padding: 7px 7px 0 0;
+                .tree-row-on {
+                    color: #3279e8;
+                    font-weight: 600;
+                }
+            }
+        }
+        .box-right {
+            border-left: 1px solid #ccc;
+            margin-left: 200px;
+            .box-top {
+                .box-top-form {
+                    padding-left: 7px;
+                    .el-form-item {
+                        margin-bottom: 7px;
+                    }
+                }
+                .box-top-gjl {
+                    overflow: hidden;
+                    // margin-top: -7px;
+                    padding: 7px 0 7px 7px;
+                    border-top: 1px solid #ccc;
+                    // border-bottom: 1px solid #ccc;
+                    // margin-bottom: 6px;
+                }
+            }
+            .box-bottom {
+                padding-left: 7px;
+            }
+        }
+        .el-table .el-table__row {
+            height: 35px;
+        }
+        .el-table__body .el-form-item--mini.el-form-item {
+            margin: 0px;
+            .error {
+                overflow: hidden;
+                color: #f56c6c;
+                font-size: 12px;
+                line-height: 1;
+            }
+        }
+    }
+    .color_no {
+        color: #7a7a7a;
+    }
+    .color_yes {
+        color: #1a9f17;
+    }
+}
+</style>

+ 1228 - 0
src/views/energyOperationSupport/components/MaintenanceStopService/MaintenanceApplication.vue

@@ -0,0 +1,1228 @@
+<template>
+  <!-- 检修停复役检修申请 -->
+  <div class="SSDCompile">
+    <div class="box">
+      <div class="box-top">
+        <el-form
+          style="overflow: hidden"
+          :style="filterForm.show ? null : { height: '0px' }"
+          size="mini"
+          label-width="85px"
+        >
+          <el-row>
+            <el-col :span="5">
+              <el-form-item label="申报时间">
+                <el-date-picker
+                  v-model="filterForm.data.declaretime"
+                  type="date"
+                  placeholder="选择日期"
+                  value-format="yyyy-MM-dd"
+                  format="yyyy-MM-dd"
+                  :formatter="declaretime"
+                >
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :span="4">
+              <el-form-item label="申请单位">
+                <el-input
+                  clearable
+                  v-model="filterForm.data.applyer"
+                  placeholder=""
+                  style="width: 100%"
+                  disabled
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="4">
+              <el-form-item label="申报序号">
+                <el-input
+                  clearable
+                  v-model="filterForm.data.declareid"
+                  placeholder=""
+                  style="width: 100%"
+                >
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="4">
+              <el-form-item label="申报状态">
+                <el-select
+                  filterable
+                  clearable
+                  v-model="filterForm.data.billstatus"
+                  placeholder=""
+                  style="width: 100%"
+                >
+                  <el-option
+                    v-for="item of nameObj.billstatus.arr"
+                    :key="item.name"
+                    :value="item.name"
+                    :label="item.name"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="4">
+              <el-form-item label="设备名称">
+                <el-select
+                  filterable
+                  clearable
+                  v-model="filterForm.data.devicename"
+                  placeholder=""
+                  style="width: 100%"
+                >
+                  <el-option
+                    v-for="item of nameObj.devicename.arr"
+                    :key="item.id"
+                    :value="item.name"
+                    :label="item.name"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+        <div class="box-top-gjl">
+          <el-button
+            class="button"
+            type="primary"
+            size="mini"
+            icon="el-icon-plus"
+            v-privilege="activeMenu + 'ADD'"
+            @click="but_add"
+            >检修申请</el-button
+          >
+          <!--           <el-button
+            class="button"
+            type="primary"
+            size="mini"
+            icon="el-icon-edit"
+            v-privilege="activeMenu + 'PUT'"
+            @click="but_edit_plural()"
+            >修改</el-button
+          > -->
+          <el-button
+            class="button"
+            type="primary"
+            size="mini"
+            icon="el-icon-edit"
+            :disabled="multipleSelection.length === 0"
+            @click="but_edit()"
+            >提交</el-button
+          >
+
+          <el-button
+            class="button"
+            type="primary"
+            size="mini"
+            icon="el-icon-delete"
+            :disabled="multipleSelection.length === 0"
+            @click="but_del_plural()"
+            >删除</el-button
+          >
+          <div style="float: right; text-align: right">
+            <el-button
+              class="button"
+              type="primary"
+              size="mini"
+              icon="el-icon-search"
+              v-privilege="activeMenu + 'QUERY'"
+              @click="getselect(1)"
+              >查询</el-button
+            >
+            <el-button
+              class="button"
+              type="primary"
+              size="mini"
+              icon="el-icon-refresh"
+              v-privilege="activeMenu + 'QUERY'"
+              @click="tableDataCancel()"
+              >重置</el-button
+            >
+            <el-button
+              size="mini"
+              :icon="
+                filterForm.show ? 'el-icon-caret-top' : 'el-icon-caret-bottom'
+              "
+              :title="filterForm.show ? '收起搜索区' : '展开搜索区'"
+              @click="
+                filterForm.show = !filterForm.show;
+                $nextTick(() => {
+                  singleTableHeight =
+                    getRoleHeight($refs['singleTable'].$el) - 45;
+                });
+              "
+              >{{ filterForm.show ? "收起" : "展开" }}</el-button
+            >
+          </div>
+        </div>
+      </div>
+      <div class="box-bottom">
+        <el-table
+        :default-sort="{ prop: 'declareid', order: 'descending' }"
+          stripe
+          id="singleTable"
+          ref="singleTable"
+          :data="tableData"
+          v-loading="tableLoading"
+          style="width: 100%"
+          :height="singleTableHeight"
+          border
+          size="mini"
+          highlight-current-row
+          @selection-change="handleSelectionChange"
+          @row-click="handleRowClick"
+          row-key="id"
+        >
+          <el-table-column type="selection" width="30"> </el-table-column>
+          <el-table-column
+            sortable
+            prop="declareid"
+            label="申报序号"
+            min-width="180px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="declaretime"
+            label="申报日期"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="billstatus"
+            label="申报状态"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="equipmentname"
+            label="检修类型"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          >
+            <template slot-scope="scope">
+              <span>{{
+                nameObj.equipmentname.obj[scope.row.equipmentname]
+                  ? nameObj.equipmentname.obj[scope.row.equipmentname]
+                  : scope.row.equipmentname
+              }}</span>
+            </template></el-table-column
+          >
+          <el-table-column
+            sortable
+            prop="devicename"
+            label="设备名称"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="equipment"
+            label="设备分类"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="constructionunits"
+            label="施工单位"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="construpeople"
+            label="施工人数"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="reasoncontent"
+            label="内容"
+            min-width="300px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="applayer"
+            label="申请单位"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="chargeman"
+            label="申请人"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="chargetime"
+            label="申请时间"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="approver"
+            label="审批人"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="signtime"
+            label="审批时间"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="filename"
+            label="附件"
+            width="240px"
+            :show-overflow-tooltip="true"
+          >
+          </el-table-column>
+          <el-table-column
+            class-name="gn-TableDownloadExcel-none"
+            label="操作"
+            align="center"
+            width="140px"
+            fixed="right"
+          >
+            <template slot-scope="scope">
+              <div>
+                <el-button
+                  type="primary"
+                  size="mini"
+                  v-privilege="activeMenu + 'PUT'"
+                  @click="but_edita(scope.row)"
+                  >查看修改</el-button
+                >
+              </div>
+            </template>
+          </el-table-column>
+          >
+        </el-table>
+        <el-pagination
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="total"
+          :page-sizes="[10, 20, 50, 100, 500, 1000]"
+          :page-size="pageSize"
+          :current-page.sync="pageNum"
+          @size-change="tableSizeChange"
+          @current-change="getselect()"
+          style="text-align: right; margin-top: 10px"
+        ></el-pagination>
+      </div>
+    </div>
+    <el-dialog
+      :title="
+        '检修停复役申请单 - ' +
+        (dialog.editorBox.type === 'add' ? '新增' : '修改')
+      "
+      :visible.sync="dialog.editorBox.show"
+      width="940px"
+      :close-on-click-modal="false"
+      :show-close="!loading"
+    >
+      <div>
+        <el-form
+          ref="dialog_form"
+          :model="dialog.editorBox.form.data"
+          :rules="dialog.editorBox.form.rules"
+          size="mini"
+          label-width="120px"
+        >
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="申报序号" prop="declareid">
+                <el-input
+                  clearable
+                  v-model="dialog.editorBox.form.data.declareid"
+                  placeholder=""
+                  style="width: 100%"
+                  disabled
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="申报时间" prop="declaretime">
+                <el-date-picker
+                  v-model="dialog.editorBox.form.data.declaretime"
+                  type="date"
+                  placeholder="选择日期"
+                  value-format="yyyy-MM-dd"
+                  format="yyyy-MM-dd"
+                  :formatter="declaretime"
+                >
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="申请单位" prop="applayer">
+                <el-input
+                  clearable
+                  v-model="dialog.editorBox.form.data.applayer"
+                  placeholder=""
+                  style="width: 100%"
+                  disabled
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="检修类型" prop="equipmentname">
+                <el-select
+                  clearable
+                  v-model="dialog.editorBox.form.data.equipmentname"
+                  placeholder=""
+                  style="width: 100%"
+                >
+                  <el-option
+                    v-for="item of nameObj.equipmentname.arr"
+                    :key="item.id"
+                    :value="item.id"
+                    :label="item.name"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="申请负责人" prop="chargeman">
+                <el-input
+                  clearable
+                  v-model="dialog.editorBox.form.data.chargeman"
+                  placeholder=""
+                  style="width: 100%"
+                  disabled
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="设备名称">
+                <el-select
+                  filterable
+                  clearable
+                  v-model="dialog.editorBox.form.data.devicename"
+                  placeholder="设备名称"
+                  style="width: 100%"
+                >
+                  <el-option
+                    v-for="item of nameObj.devicename.arr"
+                    :key="item.id"
+                    :value="item.name"
+                    :label="item.name"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="设备分类">
+                <el-select
+                  filterable
+                  clearable
+                  v-model="dialog.editorBox.form.data.equipment"
+                  placeholder="设备名称"
+                  style="width: 100%"
+                >
+                  <el-option
+                    v-for="item of nameObj.equipment.arr"
+                    :key="item.id"
+                    :value="item.name"
+                    :label="item.name"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="施工单位" prop="constructionunits">
+                <el-input
+                  clearable
+                  v-model="dialog.editorBox.form.data.constructionunits"
+                  placeholder=""
+                  style="width: 100%"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="施工人数" prop="construpeople">
+                <el-input
+                  clearable
+                  v-model="dialog.editorBox.form.data.construpeople"
+                  placeholder=""
+                  style="width: 100%"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-container>
+            <el-main style="padding: 0">
+              <el-form-item label="申请内容" prop="reasoncontent">
+                <el-input
+                  clearable
+                  class="nr-textarea"
+                  type="textarea"
+                  v-model="dialog.editorBox.form.data.reasoncontent"
+                  placeholder=""
+                  style="width: 100%"
+                ></el-input>
+              </el-form-item>
+            </el-main>
+            <el-aside width="200px" style="padding-left: 15px">
+              <zj-fileUploadBox
+                class="fileUploadBox"
+                :files="dialog.editorBox.files"
+              ></zj-fileUploadBox>
+            </el-aside>
+          </el-container>
+          <el-form-item label="备注" prop="bz">
+            <el-input
+              clearable
+              type="textarea"
+              v-model="dialog.editorBox.form.data.bz"
+              placeholder=""
+              style="width: 100%"
+            ></el-input>
+          </el-form-item>
+        </el-form>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialog.editorBox.show = false" :loading="loading"
+          >取 消</el-button
+        >
+        <el-button type="primary" @click="submitBut()">保 存</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import fileUploadBox from "~/components/zg/fileUploadBox.vue";
+import { formatDate } from "@/utils/util.js";
+import store from "@/store/index.js";
+export default {
+  name: "MaintenanceApplication",
+  components: {
+    "zj-fileUploadBox": fileUploadBox,
+  },
+  data() {
+    return {
+      declaretime: "",
+      leixin: "add",
+      multipleSelection: [],
+      pickerOptions: {
+        shortcuts: [
+          {
+            text: "最近一周",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+          {
+            text: "最近一个月",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+          {
+            text: "最近三个月",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+        ],
+      },
+      store,
+      userInfo: {
+        data: null,
+      },
+      activeMenu: "",
+      filterForm: {
+        show: true,
+        data: {
+          billstatus: "", //审核状态
+          equipmentname: "", //检修类型
+          chargeman: "", //申请人
+          applayer: "一烧结", //申请单位
+          reasoncontent: "", //申请内容
+          bz: "", //备注
+          signtime: "", //审批时间
+          approver: "", //审批人
+          chargetime: "", //申请时间
+          declaretime: "", //申报日期
+          declareid: "", //申报序号
+          filename: "", //文件名
+          devicename: "",
+          equipment: "", //设备分类
+        },
+      },
+      pageNum: 1,
+      pageSize: 20,
+      total: 0,
+      singleTableHeight: 100,
+      tableData: [],
+      nameObj: {
+        equipment: {
+          obj: {},
+          arr: [],
+        },
+        devicename: {
+          obj: {},
+          arr: [],
+        },
+        id: {
+          obj: {},
+          arr: [],
+        },
+        name: {
+          obj: {},
+          arr: [],
+        },
+        billstatus: {
+          obj: {
+            create: "编辑中",
+            check: "审核中",
+            end: "已通过",
+            start: "已驳回",
+          },
+          arr: [
+            {
+              id: "create",
+              name: "编辑中",
+            },
+            {
+              id: "check",
+              name: "正在审核",
+            },
+            {
+              id: "end",
+              name: "已通过",
+            },
+            {
+              id: "start",
+              name: "已驳回",
+            },
+          ],
+        },
+        equipmentname: {
+          obj: {
+            value1: "委外",
+            value2: "自检",
+          },
+          arr: [
+            {
+              id: "value1",
+              name: "委外",
+            },
+            {
+              id: "value2",
+              name: "自检",
+            },
+          ],
+        },
+      },
+      loading: false,
+      tableLoading: false,
+      dialog: {
+        editorBox: {
+          show: false,
+          type: "",
+          form: {
+            data: {
+              billstatus: "", //审核状态
+              equipmentname: "", //检修类型
+              chargeman: "", //申请人
+              applayer: "", //申请单位
+              reasoncontent: "", //申请内容
+              bz: "", //备注
+              signtime: "", //审批时间
+              approver: "", //审批人
+              chargetime: "", //申请时间
+              declaretime: "", //申报日期
+              declareid: "", //申报序号
+              filename: "", //文件名称
+              devicename: "", //设备名称
+              equipment: "", //设备分类
+              constructionunits: "", //施工单位
+              construpeople: "", //施工人数
+            },
+            rules: {
+              // billsno: [
+              //     { required: true, message: '该项不能为空', trigger: 'change' }
+              // ],
+              creattime: [
+                { required: true, message: "该项不能为空", trigger: "change" },
+              ],
+              applyer: [
+                { required: true, message: "该项不能为空", trigger: "change" },
+              ],
+              equipmentname: [
+                { required: true, message: "该项不能为空", trigger: "change" },
+              ],
+              chargeman: [
+                { required: true, message: "该项不能为空", trigger: "change" },
+              ],
+              reasoncontent: [
+                { required: true, message: "该项不能为空", trigger: "change" },
+              ],
+            },
+          },
+          files: [
+            // {
+            //     name: '测试',
+            //     url: '',
+            //     file: null,
+            //     operation: '' // add or del
+            // }
+          ],
+        },
+      },
+    };
+  },
+  created() {
+    this.activeMenu = window.localStorage.getItem("activeMenu");
+    this.getselect();
+  },
+  mounted() {
+    let that = this;
+    window.PEDataObj = {
+      // 将数据绑定到window上,供main页面使用
+      vm: that,
+      // tableArr:用于导出成Excel的表格的信息
+      tableArr: [
+        {
+          name: "",
+          id: "singleTable",
+        },
+      ],
+    };
+    that.$nextTick(() => {
+      // 立即获取的height有一定偏差,通过setTimeout延迟来解决
+      setTimeout(() => {
+        that.singleTableHeight =
+          that.getRoleHeight(that.$refs["singleTable"].$el) - 45;
+      }, 1);
+    });
+    that.store.dispatch("getUserInfo").then((res) => {
+      that.userInfo.data = res.data;
+    });
+    that.getselect();
+    that.getNodeData();
+    that.getNodeDataa();
+  },
+  methods: {
+    getNodeDataa() {
+      let that = this;
+      let node = "4";
+      let url = "pass/ems/v1/tprocessinfors/getmeuns/";
+      that.axios.get(url + "?" + "node=" + node).then(function (res) {
+        if (res.code === "0") {
+          let arr = [];
+          let obj = {};
+          for (let item of res.data) {
+            arr.push({
+              id: item.id,
+              name: item.name,
+            });
+            obj[item.id] = {
+              name: item.name,
+              node: item.node,
+            };
+          }
+          that.nameObj.equipment.arr = arr;
+          that.nameObj.equipment.obj = obj;
+        } else {
+          that.$message.error(res.message);
+        }
+      });
+    },
+    // 获取工序列表
+    getNodeData() {
+      let that = this;
+      let node = "3";
+      let url = "pass/ems/v1/tprocessinfors/getmeuns/";
+      that.axios.get(url + "?" + "node=" + node).then(function (res) {
+        if (res.code === "0") {
+          let arr = [];
+          let obj = {};
+          for (let item of res.data) {
+            arr.push({
+              id: item.id,
+              name: item.name,
+            });
+            obj[item.id] = {
+              name: item.name,
+              node: item.node,
+            };
+          }
+          that.nameObj.devicename.arr = arr;
+          that.nameObj.devicename.obj = obj;
+        } else {
+          that.$message.error(res.message);
+        }
+      });
+    },
+    //  计算树区域高度
+    getRoleHeight(dom) {
+      return window.innerHeight - dom.offsetTop;
+    },
+    getselect(pageNum) {
+      let that = this;
+      let params = {
+        declaretime: that.filterForm.data.declaretime,
+        applayer: that.filterForm.data.applayer,
+        declareid: that.filterForm.data.declareid,
+        billstatus: that.filterForm.data.billstatus,
+        devicename: that.filterForm.data.devicename,
+        record: 0,
+      };
+      that.pageNum = pageNum || that.pageNum;
+      that.tableLoading = true;
+      let url =
+        "pass/ems/v1/tmaintenances/like/?pageNum=" +
+        that.pageNum +
+        "&pageSize=" +
+        that.pageSize;
+      this.axios
+        .get(url, {
+          params: params,
+        })
+        .then(function (res) {
+          if (res.code === "0") {
+            let arr = [];
+            for (let item of res.data.list) {
+              arr.push({
+                billstatus: item.billstatus, //审核状态
+                equipmentname: item.equipmentname, //检修类型
+                applayer: item.applayer, //申请单位
+                signtime: item.signtime, //审批时间
+                approver: item.approver, //审批人
+                chargetime: item.chargetime, //申请时间
+                declaretime: item.declaretime, //申报日期
+                declareid: item.declareid, //申报序号
+                chargeman: item.chargeman,
+                reasoncontent: item.reasoncontent, //申请内容
+                bz: item.bz, //备注
+                filename: item.filename,
+                devicename: item.devicename,
+                equipment: item.equipment,
+                constructionunits: item.constructionunits,
+                construpeople: item.construpeople,
+              });
+            }
+            that.tableData = arr;
+            that.total = res.data.total;
+            that.tableLoading = false;
+          } else {
+            this.$message.error(res.message);
+          }
+        });
+    },
+    // 改变表格显示条数
+    tableSizeChange(val) {
+      let that = this;
+      that.pageSize = val;
+      that.getselect(1);
+    },
+    // 重置搜索
+    tableDataCancel() {
+      let that = this;
+      for (let key in that.filterForm.data) {
+        if (that.filterForm.data[key] instanceof Array) {
+          that.filterForm.data[key] = [];
+        } else {
+          that.filterForm.data[key] = "";
+        }
+      }
+      that.getselect(1);
+    },
+    but_add() {
+      let that = this;
+      that.dialog.editorBox.files = [];
+      for (let key in that.dialog.editorBox.form.data) {
+        that.dialog.editorBox.form.data[key] = "";
+      }
+      let nowDate = formatDate(new Date(), "yyyy-MM-dd");
+      that.dialog.editorBox.form.data.signtime = nowDate;
+      that.dialog.editorBox.form.data.chargetime = nowDate;
+      that.dialog.editorBox.form.data.declaretime = nowDate;
+      that.dialog.editorBox.form.data.chargeman = that.userInfo.data.userName;
+      that.dialog.editorBox.type = "add";
+      that.dialog.editorBox.show = true;
+      setTimeout(() => {
+        that.$refs["dialog_form"].clearValidate();
+      }, 100);
+    },
+    submitBut() {
+      let that = this;
+      if (that.dialog.editorBox.type === "add") {
+        that
+          .$confirm("是否保存?", "提示", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+          .then(() => {
+            that.dataSave();
+          })
+          .catch(() => {});
+      } else {
+        that
+          .$confirm("是否修改?", "提示", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+          .then(() => {
+            that.dataSaves();
+          })
+          .catch(() => {});
+      }
+    },
+    // 批量删除
+    but_del_plural() {
+      let that = this;
+      if (that.multipleSelection.length > 0) {
+        let ids = [];
+        for (let item of that.multipleSelection) {
+          ids.push(item.declareid);
+        }
+        that
+          .$confirm("是否删除已选数据?", "提示", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            state: "warning",
+          })
+          .then(() => {
+            this.axios
+              .put("pass/ems/v1/tmaintenances/del/" + ids)
+              .then(function (res) {
+                if (res.code === "0") {
+                  that.$message({
+                    message: "删除成功",
+                    type: "success",
+                  });
+                  that.getselect();
+                } else {
+                  if (res.code === "51") {
+                  }
+                  that.$message.error(res.message);
+                }
+              })
+              .catch(function () {});
+          });
+      } else {
+        this.$message.error("至少要选择一条数据");
+      }
+    },
+    // 提交
+    but_edit() {
+      let that = this;
+      if (that.multipleSelection.length > 0) {
+        let parmas = [];
+        for (let item of that.multipleSelection) {
+          parmas.push({ declareid: item.declareid, billstatus: "审核中" });
+        }
+        that.loading = true;
+        that.axios
+          .put("pass/ems/v1/tmaintenances/pusAll/", parmas)
+          .then(function (res) {
+            if (res.code === "0") {
+              let msg = res.message;
+              if (!msg || msg === "操作成功") {
+                that.$message({
+                  message: "提交成功",
+                  type: "success",
+                });
+              } else {
+                that.$message.warning("修改成功,注意:" + msg);
+              }
+              that.getselect();
+              that.dialog.editorBox.show = false;
+            } else {
+              that.$message.error(res.message);
+            }
+            that.loading = false;
+          })
+          .catch(function () {
+            that.loading = false;
+          });
+      }
+    },
+    // 表格中多选按钮的相关方法
+    handleSelectionChange(val) {
+      this.multipleSelection = val;
+    },
+    //点击行触发,选中或不选中复选框
+    handleRowClick(row, column, event) {
+      this.$refs.singleTable.toggleRowSelection(row);
+      console.log(row);
+    },
+    // 修改
+    but_edit_plural() {
+      let that = this;
+      that.leixin = "PUT";
+      that.dialog.editorBox.type = "PUT";
+      that.dialog.editorBox.show = true;
+      if (that.multipleSelection.length > 0) {
+        let ids = [];
+        for (let item of that.multipleSelection) {
+          ids.push(
+            item.equipmentname,
+            item.bz,
+            item.reasoncontent,
+            item.declaretime,
+            item.chargeman,
+            item.declareid,
+            item.filename,
+            item.devicename,
+            item.equipment,
+            item.constructionunits,
+            item.construpeople
+          );
+        }
+        that.dialog.editorBox.form.data.equipmentname = ids[0];
+        that.dialog.editorBox.form.data.bz = ids[1];
+        that.dialog.editorBox.form.data.reasoncontent = ids[2];
+        that.dialog.editorBox.form.data.declaretime = ids[3];
+        that.dialog.editorBox.form.data.chargeman = ids[4];
+        that.dialog.editorBox.form.data.declareid = ids[5];
+        that.dialog.editorBox.form.data.devicename = ids[6];
+        that.dialog.editorBox.form.data.equipment = ids[7];
+        that.dialog.editorBox.form.data.constructionunits = ids[8];
+        that.dialog.editorBox.form.data.construpeople = ids[9];
+      }
+    },
+    submitUpload() {
+      let that = this;
+      this.$refs.upload1.submit();
+    },
+    dataSaves(billstatus) {
+      let that = this;
+      that.dialog.editorBox.type = "PUT";
+      let SubmitData = {
+        billstatus: "编辑中",
+        declareid: that.dialog.editorBox.form.data.declareid,
+        chargetime: that.dialog.editorBox.form.data.chargetime,
+        applayer: "一烧结",
+        equipmentname: that.dialog.editorBox.form.data.equipmentname,
+        chargeman: that.dialog.editorBox.form.data.chargeman,
+        reasoncontent: that.dialog.editorBox.form.data.reasoncontent,
+        bz: that.dialog.editorBox.form.data.bz,
+        declaretime: that.dialog.editorBox.form.data.declaretime,
+        record: null,
+        devicename: that.dialog.editorBox.form.data.devicename,
+        equipment: that.dialog.editorBox.form.data.equipment,
+        constructionunits: that.dialog.editorBox.form.data.constructionunits,
+        construpeople: that.dialog.editorBox.form.data.construpeople,
+      };
+      let message = "保存成功";
+      if (billstatus && billstatus !== "编辑中") {
+        SubmitData.billstatus = billstatus;
+        message = "操作成功";
+      }
+      that.$refs["dialog_form"].validate((valid) => {
+        if (valid) {
+          that.loading = true;
+          let url = "pass/ems/v1/tmaintenances/pus/";
+          let fileData = new FormData();
+          for (let key in SubmitData) {
+            fileData.append(key, SubmitData[key] ? SubmitData[key] : "");
+          }
+          let del = "";
+          // 保存的文件名
+          let filename = "";
+          for (let item of that.dialog.editorBox.files) {
+            if (item.operation === "add" && item.file && item.name) {
+              fileData.append("file", item.file);
+            }
+            if (item.operation === "del" && item.name) {
+              del += item.name + ";";
+            }
+            if (item.operation !== "del" && item.name) {
+              filename += item.name + ";";
+            }
+          }
+          fileData.set("filename", filename);
+          fileData.set("del", del);
+          that.axios
+            .put(url, fileData, {
+              headers: { "Content-Type": "multipart/form-data" },
+            })
+            .then(function (res) {
+              if (res.code === "0") {
+                that.$message({
+                  message: message,
+                  type: "success",
+                });
+                that.getselect();
+                that.dialog.editorBox.show = false;
+              } else {
+                that.$message.error(res.message);
+              }
+              that.loading = false;
+            })
+            .catch(function () {
+              that.loading = false;
+            });
+        }
+      });
+    },
+    dataSave(billstatus) {
+      let that = this;
+      let SubmitData = {
+        billstatus: "编辑中",
+        declareid: "SJ_" + that.dialog.editorBox.form.data.declareid,
+        chargetime: that.dialog.editorBox.form.data.chargetime,
+        applayer: "一烧结",
+        equipmentname: that.dialog.editorBox.form.data.equipmentname,
+        chargeman: that.dialog.editorBox.form.data.chargeman,
+        reasoncontent: that.dialog.editorBox.form.data.reasoncontent,
+        bz: that.dialog.editorBox.form.data.bz,
+        declaretime: that.dialog.editorBox.form.data.declaretime,
+        record: null,
+        devicename: that.dialog.editorBox.form.data.devicename,
+        equipment: that.dialog.editorBox.form.data.equipment,
+        constructionunits: that.dialog.editorBox.form.data.constructionunits,
+        construpeople: that.dialog.editorBox.form.data.construpeople,
+      };
+      let message = "保存成功";
+      if (billstatus && billstatus !== "编辑中") {
+        SubmitData.billstatus = billstatus;
+        message = "操作成功";
+      }
+      that.$refs["dialog_form"].validate((valid) => {
+        if (valid) {
+          that.loading = true;
+          let url = "pass/ems/v1/tmaintenances/submit/";
+          let fileData = new FormData();
+          for (let key in SubmitData) {
+            fileData.append(key, SubmitData[key] ? SubmitData[key] : "");
+          }
+          let del = "";
+          // 保存的文件名
+          let filename = "";
+          for (let item of that.dialog.editorBox.files) {
+            if (item.operation === "add" && item.file && item.name) {
+              fileData.append("file", item.file);
+            }
+            if (item.operation === "del" && item.name) {
+              del += item.name + ";";
+            }
+            if (item.operation !== "del" && item.name) {
+              filename += item.name + ";";
+            }
+          }
+          fileData.set("filename", filename);
+          fileData.set("del", del);
+          that.axios
+            .put(url, fileData, {
+              headers: { "Content-Type": "multipart/form-data" },
+            })
+            .then(function (res) {
+              if (res.code === "0") {
+                that.$message({
+                  message: message,
+                  type: "success",
+                });
+                that.getselect();
+                that.dialog.editorBox.show = false;
+              } else {
+                that.$message.error(res.message);
+              }
+              that.loading = false;
+            })
+            .catch(function () {
+              that.loading = false;
+            });
+        }
+      });
+    },
+    but_edita(row) {
+      let that = this;
+      that.dialog.editorBox.type = "PUT";
+      that.dialog.editorBox.files = [];
+      for (let key in that.dialog.editorBox.form.data) {
+        if (typeof row[key] !== "undefined") {
+          that.dialog.editorBox.form.data[key] = row[key];
+        } else {
+          console.log("key:" + key);
+        }
+      }
+      if (row.filename) {
+        let fn = (row.filename + "").trim().split(";");
+        if (fn && fn.length > 0) {
+          let declareid = row.declareid;
+          for (let i = 0; i < fn.length; i++) {
+            if (fn[i]) {
+              let fname = {
+                name: fn[i],
+                url:
+                  "/icore.icp.web/pass/ems/static/" + declareid + "/" + fn[i],
+                file: null,
+                operation: "",
+              };
+              that.dialog.editorBox.files.push(fname);
+            }
+          }
+        }
+      }
+      that.dialog.editorBox.show = true;
+    },
+  },
+};
+</script>
+
+<style lang="less">
+.SSDCompile {
+  min-width: 700px;
+  height: 100%;
+  .box {
+    height: 100%;
+    padding: 15px 15px 0 15px;
+    .box-top {
+      .el-form-item {
+        margin-bottom: 7px;
+      }
+      .box-top-gjl {
+        overflow: hidden;
+        padding: 7px 0;
+        border-top: 1px solid #ccc;
+      }
+    }
+  }
+  .nr-textarea {
+    .el-textarea__inner {
+      min-height: 130px !important;
+    }
+  }
+  .fileUploadBox {
+    height: 130px;
+    min-height: 130px !important;
+    margin-bottom: 18px;
+  }
+}
+</style>

+ 1214 - 0
src/views/energyOperationSupport/components/MaintenanceStopService/approval.vue

@@ -0,0 +1,1214 @@
+<template>
+  <!-- 检修停复役检修审批 -->
+  <div class="SSDCompile">
+    <div class="box">
+      <div class="box-top">
+        <el-form
+          style="overflow: hidden"
+          :style="filterForm.show ? null : { height: '0px' }"
+          size="mini"
+          label-width="85px"
+        >
+          <el-row>
+            <el-col :span="5">
+              <el-form-item label="申报时间">
+                <el-date-picker
+                  v-model="filterForm.data.declaretime"
+                  type="date"
+                  placeholder="选择日期"
+                  value-format="yyyy-MM-dd"
+                  format="yyyy-MM-dd"
+                  :formatter="declaretime"
+                >
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :span="4">
+              <el-form-item label="申请单位">
+                <el-input
+                  clearable
+                  v-model="filterForm.data.applyer"
+                  placeholder=""
+                  style="width: 100%"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="4">
+              <el-form-item label="申报序号">
+                <el-input
+                  clearable
+                  v-model="filterForm.data.declareid"
+                  placeholder=""
+                  style="width: 100%"
+                >
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="4">
+              <el-form-item label="申报状态">
+                <el-select
+                  filterable
+                  clearable
+                  v-model="filterForm.data.billstatus"
+                  placeholder=""
+                  style="width: 100%"
+                >
+                  <el-option
+                    v-for="item of nameObj.billstatus.arr"
+                    :key="item.name"
+                    :value="item.name"
+                    :label="item.name"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+        <div class="box-top-gjl">
+          <el-button
+            class="button"
+            type="primary"
+            size="mini"
+            icon="el-icon-plus"
+            @click="but_edit()"
+            >同意</el-button
+          >
+          <el-button
+            class="button"
+            type="primary"
+            size="mini"
+            icon="el-icon-delete"
+            @click="reject()"
+            >驳回</el-button
+          >
+          <div style="float: right; text-align: right">
+            <el-button
+              class="button"
+              type="primary"
+              size="mini"
+              icon="el-icon-search"
+              v-privilege="activeMenu + 'QUERY'"
+              @click="getselect(1)"
+              >查询</el-button
+            >
+            <el-button
+              class="button"
+              type="primary"
+              size="mini"
+              icon="el-icon-refresh"
+              v-privilege="activeMenu + 'QUERY'"
+              @click="tableDataCancel()"
+              >重置</el-button
+            >
+            <el-button
+              size="mini"
+              :icon="
+                filterForm.show ? 'el-icon-caret-top' : 'el-icon-caret-bottom'
+              "
+              :title="filterForm.show ? '收起搜索区' : '展开搜索区'"
+              @click="
+                filterForm.show = !filterForm.show;
+                $nextTick(() => {
+                  singleTableHeight =
+                    getRoleHeight($refs['singleTable'].$el) - 45;
+                });
+              "
+              >{{ filterForm.show ? "收起" : "展开" }}</el-button
+            >
+          </div>
+        </div>
+      </div>
+      <div class="box-bottom">
+        <el-table
+          :default-sort="{ prop: 'declareid', order: 'descending' }"
+          stripe
+          id="singleTable"
+          ref="singleTable"
+          :data="tableData"
+          v-loading="tableLoading"
+          style="width: 100%"
+          :height="singleTableHeight"
+          border
+          size="mini"
+          highlight-current-row
+          @selection-change="handleSelectionChange"
+          @row-click="handleRowClick"
+          row-key="id"
+        >
+          <el-table-column type="selection" width="30"> </el-table-column>
+          <el-table-column
+            sortable
+            prop="declareid"
+            label="申报序号"
+            min-width="180px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="declaretime"
+            label="申报日期"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="billstatus"
+            label="申报状态"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="equipmentname"
+            label="检修类型"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          >
+            <template slot-scope="scope">
+              <span>{{
+                nameObj.equipmentname.obj[scope.row.equipmentname]
+                  ? nameObj.equipmentname.obj[scope.row.equipmentname]
+                  : scope.row.equipmentname
+              }}</span>
+            </template></el-table-column
+          >
+          <el-table-column
+            sortable
+            prop="devicename"
+            label="设备名称"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="equipment"
+            label="设备分类"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="constructionunits"
+            label="施工单位"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="construpeople"
+            label="施工人数"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="applayer"
+            label="申请单位"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="chargeman"
+            label="申请人"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="chargetime"
+            label="申请时间"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="approver"
+            label="审批人"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="signtime"
+            label="审批时间"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="filename"
+            label="附件"
+            width="240px"
+            :show-overflow-tooltip="true"
+          >
+          </el-table-column>
+          <el-table-column
+            class-name="gn-TableDownloadExcel-none"
+            label="操作"
+            align="center"
+            width="140px"
+            fixed="right"
+          >
+            <template slot-scope="scope">
+              <div>
+                <el-button
+                  type="primary"
+                  size="mini"
+                  v-privilege="activeMenu + 'PUT'"
+                  @click="but_edita(scope.row)"
+                  >查看</el-button
+                >
+              </div>
+            </template>
+          </el-table-column>
+          >
+        </el-table>
+        <el-pagination
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="total"
+          :page-sizes="[10, 20, 50, 100, 500, 1000]"
+          :page-size="pageSize"
+          :current-page.sync="pageNum"
+          @size-change="tableSizeChange"
+          @current-change="getselect()"
+          style="text-align: right; margin-top: 10px"
+        ></el-pagination>
+      </div>
+    </div>
+    <el-dialog
+      :title="
+        '检修停复役申请单 - ' +
+        (dialog.editorBox.type === 'add' ? '新增' : '审批')
+      "
+      :visible.sync="dialog.editorBox.show"
+      width="940px"
+      :close-on-click-modal="false"
+      :show-close="!loading"
+    >
+      <div>
+        <el-form
+          ref="dialog_form"
+          :model="dialog.editorBox.form.data"
+          :rules="dialog.editorBox.form.rules"
+          size="mini"
+          label-width="120px"
+        >
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="申报序号" prop="declareid">
+                <el-input
+                  clearable
+                  v-model="dialog.editorBox.form.data.declareid"
+                  placeholder=""
+                  style="width: 100%"
+                  disabled
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="申报时间" prop="declaretime">
+                <el-date-picker
+                  v-model="dialog.editorBox.form.data.declaretime"
+                  type="date"
+                  disabled
+                  placeholder="选择日期"
+                  value-format="yyyy-MM-dd"
+                  format="yyyy-MM-dd"
+                  :formatter="declaretime"
+                >
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="申请单位" prop="applayer">
+                <el-input
+                  clearable
+                  v-model="dialog.editorBox.form.data.applayer"
+                  placeholder=""
+                  style="width: 100%"
+                  disabled
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="检修类型" prop="equipmentname">
+                <el-select
+                  clearable
+                  disabled
+                  v-model="dialog.editorBox.form.data.equipmentname"
+                  placeholder=""
+                  style="width: 100%"
+                >
+                  <el-option
+                    v-for="item of nameObj.equipmentname.arr"
+                    :key="item.id"
+                    :value="item.id"
+                    :label="item.name"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="申请负责人" prop="chargeman">
+                <el-input
+                  clearable
+                  v-model="dialog.editorBox.form.data.chargeman"
+                  placeholder=""
+                  style="width: 100%"
+                  disabled
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="设备名称">
+                <el-select
+                disabled
+                  filterable
+                  clearable
+                  v-model="dialog.editorBox.form.data.devicename"
+                  placeholder="设备名称"
+                  style="width: 100%"
+                >
+                  <el-option
+                    v-for="item of nameObj.devicename.arr"
+                    :key="item.id"
+                    :value="item.name"
+                    :label="item.name"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="设备分类">
+                <el-select
+                  filterable
+                  disabled
+                  clearable
+                  v-model="dialog.editorBox.form.data.equipment"
+                  placeholder="设备名称"
+                  style="width: 100%"
+                >
+                  <el-option
+                    v-for="item of nameObj.equipment.arr"
+                    :key="item.id"
+                    :value="item.name"
+                    :label="item.name"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="施工单位" prop="constructionunits">
+                <el-input
+                disabled
+                  clearable
+                  v-model="dialog.editorBox.form.data.constructionunits"
+                  placeholder=""
+                  style="width: 100%"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="施工人数" prop="construpeople">
+                <el-input
+                  clearable
+                  disabled
+                  v-model="dialog.editorBox.form.data.construpeople"
+                  placeholder=""
+                  style="width: 100%"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-container>
+            <el-main style="padding: 0">
+              <el-form-item label="申请内容" prop="reasoncontent">
+                <el-input
+                  clearable
+                  disabled
+                  class="nr-textarea"
+                  type="textarea"
+                  v-model="dialog.editorBox.form.data.reasoncontent"
+                  placeholder=""
+                  style="width: 100%"
+                ></el-input>
+              </el-form-item>
+            </el-main>
+            <el-aside width="200px" style="padding-left: 15px">
+              <zj-fileUploadBox
+                class="fileUploadBox"
+                :files="dialog.editorBox.files"
+              ></zj-fileUploadBox>
+            </el-aside>
+          </el-container>
+          <el-form-item label="备注" prop="bz">
+            <el-input
+              clearable
+              type="textarea"
+              disabled
+              v-model="dialog.editorBox.form.data.bz"
+              placeholder=""
+              style="width: 100%"
+            ></el-input>
+          </el-form-item>
+        </el-form>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="but_edit()">同意</el-button>
+        <el-button type="primary" @click="reject()">驳回</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import fileUploadBox from "~/components/zg/fileUploadBox.vue";
+import { formatDate } from "@/utils/util.js";
+import store from "@/store/index.js";
+export default {
+  name: "MaintenanceApplication",
+  components: {
+    "zj-fileUploadBox": fileUploadBox,
+  },
+  data() {
+    return {
+      declaretime: "",
+      leixin: "add",
+      multipleSelection: [],
+      pickerOptions: {
+        shortcuts: [
+          {
+            text: "最近一周",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+          {
+            text: "最近一个月",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+          {
+            text: "最近三个月",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+        ],
+      },
+      store,
+      userInfo: {
+        data: null,
+      },
+      activeMenu: "",
+      filterForm: {
+        show: true,
+        data: {
+          billstatus: "", //审核状态
+          equipmentname: "", //检修类型
+          chargeman: "", //申请人
+          applayer: "一烧结", //申请单位
+          reasoncontent: "", //申请内容
+          bz: "", //备注
+          signtime: "", //审批时间
+          approver: "", //审批人
+          chargetime: "", //申请时间
+          declaretime: "", //申报日期
+          declareid: "", //申报序号
+          filename: "", //文件名
+        },
+      },
+      pageNum: 1,
+      pageSize: 20,
+      total: 0,
+      singleTableHeight: 100,
+      tableData: [],
+      nameObj: {
+        equipment: {
+          obj: {},
+          arr: [],
+        },
+        devicename: {
+          obj: {},
+          arr: [],
+        },
+        id: {
+          obj: {},
+          arr: [],
+        },
+        name: {
+          obj: {},
+          arr: [],
+        },
+        billstatus: {
+          obj: {
+            end: "已通过",
+            start: "已驳回",
+            check: "审核中",
+          },
+          arr: [
+            {
+              id: "end",
+              name: "已通过",
+            },
+            {
+              id: "start",
+              name: "已驳回",
+            },
+            {
+              id: "check",
+              name: "审核中",
+            },
+          ],
+        },
+        equipmentname: {
+          obj: {
+            value1: "委外",
+            value2: "自检",
+          },
+          arr: [
+            {
+              id: "value1",
+              name: "委外",
+            },
+            {
+              id: "value2",
+              name: "自检",
+            },
+          ],
+        },
+      },
+      loading: false,
+      tableLoading: false,
+      dialog: {
+        editorBox: {
+          show: false,
+          type: "",
+          form: {
+            data: {
+              billstatus: "", //审核状态
+              equipmentname: "", //检修类型
+              chargeman: "", //申请人
+              applayer: "", //申请单位
+              reasoncontent: "", //申请内容
+              bz: "", //备注
+              signtime: "", //审批时间
+              approver: "", //审批人
+              chargetime: "", //申请时间
+              declaretime: "", //申报日期
+              declareid: "", //申报序号
+              filename: "",
+              devicename: "", //设备名称
+              equipment: "", //设备分类
+              constructionunits: "", //施工单位
+              construpeople: "", //施工人数
+            },
+            rules: {
+              // billsno: [
+              //     { required: true, message: '该项不能为空', trigger: 'change' }
+              // ],
+              creattime: [
+                { required: true, message: "该项不能为空", trigger: "change" },
+              ],
+              applyer: [
+                { required: true, message: "该项不能为空", trigger: "change" },
+              ],
+              equipmentname: [
+                { required: true, message: "该项不能为空", trigger: "change" },
+              ],
+              chargeman: [
+                { required: true, message: "该项不能为空", trigger: "change" },
+              ],
+            },
+          },
+          files: [
+            // {
+            //     name: '测试',
+            //     url: '',
+            //     file: null,
+            //     operation: '' // add or del
+            // }
+          ],
+        },
+      },
+    };
+  },
+  created() {
+    this.activeMenu = window.localStorage.getItem("activeMenu");
+    this.getselect();
+  },
+  mounted() {
+    let that = this;
+    window.PEDataObj = {
+      // 将数据绑定到window上,供main页面使用
+      vm: that,
+      // tableArr:用于导出成Excel的表格的信息
+      tableArr: [
+        {
+          name: "",
+          id: "singleTable",
+        },
+      ],
+    };
+    that.$nextTick(() => {
+      // 立即获取的height有一定偏差,通过setTimeout延迟来解决
+      setTimeout(() => {
+        that.singleTableHeight =
+          that.getRoleHeight(that.$refs["singleTable"].$el) - 45;
+      }, 1);
+    });
+    that.store.dispatch("getUserInfo").then((res) => {
+      that.userInfo.data = res.data;
+    });
+    that.getselect();
+    that.getNodeData();
+    that.getNodeDataa();
+  },
+  methods: {
+    getNodeDataa() {
+      let that = this;
+      let node = "4";
+      let url = "pass/ems/v1/tprocessinfors/getmeuns/";
+      that.axios.get(url + "?" + "node=" + node).then(function (res) {
+        if (res.code === "0") {
+          let arr = [];
+          let obj = {};
+          for (let item of res.data) {
+            arr.push({
+              id: item.id,
+              name: item.name,
+            });
+            obj[item.id] = {
+              name: item.name,
+              node: item.node,
+            };
+          }
+          that.nameObj.equipment.arr = arr;
+          that.nameObj.equipment.obj = obj;
+        } else {
+          that.$message.error(res.message);
+        }
+      });
+    },
+    // 获取工序列表
+    getNodeData() {
+      let that = this;
+      let node = "3";
+      let url = "pass/ems/v1/tprocessinfors/getmeuns/";
+      that.axios.get(url + "?" + "node=" + node).then(function (res) {
+        if (res.code === "0") {
+          let arr = [];
+          let obj = {};
+          for (let item of res.data) {
+            arr.push({
+              id: item.id,
+              name: item.name,
+            });
+            obj[item.id] = {
+              name: item.name,
+              node: item.node,
+            };
+          }
+          that.nameObj.devicename.arr = arr;
+          that.nameObj.devicename.obj = obj;
+        } else {
+          that.$message.error(res.message);
+        }
+      });
+    },
+    //  计算树区域高度
+    getRoleHeight(dom) {
+      return window.innerHeight - dom.offsetTop;
+    },
+    getselect(pageNum) {
+      let that = this;
+      let params = {
+        declaretime: that.filterForm.data.declaretime,
+        applayer: that.filterForm.data.applayer,
+        declareid: that.filterForm.data.declareid,
+        billstatus: that.filterForm.data.billstatus,
+        record: !0,
+      };
+      that.pageNum = pageNum || that.pageNum;
+      that.tableLoading = true;
+      let url =
+        "pass/ems/v1/tmaintenances/likeapproval/?pageNum=" +
+        that.pageNum +
+        "&pageSize=" +
+        that.pageSize;
+      this.axios
+        .get(url, {
+          params: params,
+        })
+        .then(function (res) {
+          if (res.code === "0") {
+            let arr = [];
+            for (let item of res.data.list) {
+              arr.push({
+                billstatus: item.billstatus, //审核状态
+                equipmentname: item.equipmentname, //检修类型
+                applayer: item.applayer, //申请单位
+                signtime: item.signtime, //审批时间
+                approver: item.approver, //审批人
+                chargetime: item.chargetime, //申请时间
+                declaretime: item.declaretime, //申报日期
+                declareid: item.declareid, //申报序号
+                chargeman: item.chargeman,
+                reasoncontent: item.reasoncontent, //申请内容
+                bz: item.bz, //备注
+                filename: item.filename,
+                devicename: item.devicename,
+                equipment: item.equipment,
+                constructionunits: item.constructionunits,
+                construpeople: item.construpeople,
+              });
+            }
+   
+            that.tableData = arr;
+                     console.log("测试" + arr);
+            that.total = res.data.total;
+            that.tableLoading = false;
+          } else {
+            this.$message.error(res.message);
+          }
+        });
+    },
+    // 改变表格显示条数
+    tableSizeChange(val) {
+      let that = this;
+      that.pageSize = val;
+      that.getselect(1);
+    },
+    // 重置搜索
+    tableDataCancel() {
+      let that = this;
+      for (let key in that.filterForm.data) {
+        if (that.filterForm.data[key] instanceof Array) {
+          that.filterForm.data[key] = [];
+        } else {
+          that.filterForm.data[key] = "";
+        }
+      }
+      that.getselect(1);
+    },
+    but_add() {
+      let that = this;
+      that.dialog.editorBox.files = [];
+      for (let key in that.dialog.editorBox.form.data) {
+        that.dialog.editorBox.form.data[key] = "";
+      }
+      let nowDate = formatDate(new Date(), "yyyy-MM-dd");
+      that.dialog.editorBox.form.data.signtime = nowDate;
+      that.dialog.editorBox.form.data.chargetime = nowDate;
+      that.dialog.editorBox.form.data.declaretime = nowDate;
+      that.dialog.editorBox.form.data.chargeman = that.userInfo.data.userName;
+      that.dialog.editorBox.type = "add";
+      that.dialog.editorBox.show = true;
+      setTimeout(() => {
+        that.$refs["dialog_form"].clearValidate();
+      }, 100);
+    },
+    submitBut() {
+      let that = this;
+      if (that.dialog.editorBox.type === "put") {
+        that
+          .$confirm("是否同意审批?", "提示", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+          .then(() => {
+            that.dataSave();
+          })
+          .catch(() => {});
+      } else {
+        that
+          .$confirm("是否驳回?", "提示", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+          .then(() => {
+            that.dataSaves();
+          })
+          .catch(() => {});
+      }
+    },
+    // 批量删除
+    but_del_plural() {
+      let that = this;
+      if (that.multipleSelection.length > 0) {
+        let ids = [];
+        for (let item of that.multipleSelection) {
+          ids.push(item.declareid);
+        }
+        that
+          .$confirm("是否删除已选数据?", "提示", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            state: "warning",
+          })
+          .then(() => {
+            this.axios
+              .put("pass/ems/v1/tmaintenances/del/" + ids)
+              .then(function (res) {
+                if (res.code === "0") {
+                  that.$message({
+                    message: "删除成功",
+                    type: "success",
+                  });
+                  that.getselect();
+                } else {
+                  if (res.code === "51") {
+                  }
+                  that.$message.error(res.message);
+                }
+              })
+              .catch(function () {});
+          });
+      } else {
+        this.$message.error("至少要选择一条数据");
+      }
+    },
+    // 通过审核
+    but_edit() {
+      let that = this;
+      that.dialog.editorBox.form.data.approver = that.userInfo.data.approver;
+      if (that.multipleSelection.length > 0) {
+        let parmas = [];
+        for (let item of that.multipleSelection) {
+          parmas.push({
+            declareid: item.declareid,
+            billstatus: "已通过",
+            approver: that.userInfo.data.userName,
+            signtime: "",
+          });
+        }
+        that.loading = true;
+        that.axios
+          .put("pass/ems/v1/tmaintenances/pusAlla/", parmas)
+          .then(function (res) {
+            if (res.code === "0") {
+              let msg = res.message;
+              if (!msg || msg === "操作成功") {
+                that.$message({
+                  message: "操作成功",
+                  type: "success",
+                });
+              } else {
+                that.$message.warning("修改成功,注意:" + msg);
+              }
+              that.getselect();
+              that.dialog.editorBox.show = false;
+            } else {
+              that.$message.error(res.message);
+            }
+            that.loading = false;
+          })
+          .catch(function () {
+            that.loading = false;
+          });
+      } else {
+        this.$message.error("至少要选择一条数据");
+      }
+    },
+    //驳回
+    reject() {
+      let that = this;
+      if (that.multipleSelection.length > 0) {
+        let parmas = [];
+        for (let item of that.multipleSelection) {
+          parmas.push({ declareid: item.declareid, billstatus: "已驳回" });
+        }
+        that.loading = true;
+        that.axios
+          .put("pass/ems/v1/tmaintenances/pusAlla/", parmas)
+          .then(function (res) {
+            if (res.code === "0") {
+              let msg = res.message;
+              if (!msg || msg === "操作成功") {
+                that.$message({
+                  message: "驳回成功",
+                  type: "success",
+                });
+              } else {
+                that.$message.warning("修改成功,注意:" + msg);
+              }
+              that.getselect();
+              that.dialog.editorBox.show = false;
+            } else {
+              that.$message.error(res.message);
+            }
+            that.loading = false;
+          })
+          .catch(function () {
+            that.loading = false;
+          });
+      } else {
+        this.$message.error("至少要选择一条数据");
+      }
+    },
+    // 表格中多选按钮的相关方法
+    handleSelectionChange(val) {
+      this.multipleSelection = val;
+    },
+    //点击行触发,选中或不选中复选框
+    handleRowClick(row, column, event) {
+      this.$refs.singleTable.toggleRowSelection(row);
+      console.log(row);
+    },
+    // 修改
+    but_edit_plural() {
+      let that = this;
+      that.leixin = "PUT";
+      that.dialog.editorBox.type = "PUT";
+      that.dialog.editorBox.show = true;
+      if (that.multipleSelection.length > 0) {
+        let ids = [];
+        for (let item of that.multipleSelection) {
+          ids.push(
+            item.equipmentname,
+            item.bz,
+            item.reasoncontent,
+            item.declaretime,
+            item.chargeman,
+            item.declareid,
+            item.filename,
+            item.devicename,
+            item.equipment,
+            item.constructionunits,
+            item.construpeople
+          );
+        }
+        that.dialog.editorBox.form.data.equipmentname = ids[0];
+        that.dialog.editorBox.form.data.bz = ids[1];
+        that.dialog.editorBox.form.data.reasoncontent = ids[2];
+        that.dialog.editorBox.form.data.declaretime = ids[3];
+        that.dialog.editorBox.form.data.chargeman = ids[4];
+        that.dialog.editorBox.form.data.declareid = ids[5];
+        that.dialog.editorBox.form.data.devicename = ids[6];
+        that.dialog.editorBox.form.data.equipment = ids[7];
+        that.dialog.editorBox.form.data.constructionunits = ids[8];
+        that.dialog.editorBox.form.data.construpeople = ids[9];
+      }
+    },
+    submitUpload() {
+      let that = this;
+      this.$refs.upload1.submit();
+    },
+    dataSaves(billstatus) {
+      let that = this;
+      that.dialog.editorBox.type = "PUT";
+      let SubmitData = {
+        billstatus: "编辑中",
+        declareid: that.dialog.editorBox.form.data.declareid,
+        chargetime: that.dialog.editorBox.form.data.chargetime,
+        applayer: "一烧结",
+        equipmentname: that.dialog.editorBox.form.data.equipmentname,
+        chargeman: that.dialog.editorBox.form.data.chargeman,
+        reasoncontent: that.dialog.editorBox.form.data.reasoncontent,
+        bz: that.dialog.editorBox.form.data.bz,
+        declaretime: that.dialog.editorBox.form.data.declaretime,
+        record: null,
+      };
+      let message = "保存成功";
+      if (billstatus && billstatus !== "编辑中") {
+        SubmitData.billstatus = billstatus;
+        message = "操作成功";
+      }
+      that.$refs["dialog_form"].validate((valid) => {
+        if (valid) {
+          that.loading = true;
+          let url = "pass/ems/v1/tmaintenances/pus/";
+          let fileData = new FormData();
+          for (let key in SubmitData) {
+            fileData.append(key, SubmitData[key] ? SubmitData[key] : "");
+          }
+          let del = "";
+          // 保存的文件名
+          let filename = "";
+          for (let item of that.dialog.editorBox.files) {
+            if (item.operation === "add" && item.file && item.name) {
+              fileData.append("file", item.file);
+            }
+            if (item.operation === "del" && item.name) {
+              del += item.name + ";";
+            }
+            if (item.operation !== "del" && item.name) {
+              filename += item.name + ";";
+            }
+          }
+          fileData.set("filename", filename);
+          fileData.set("del", del);
+          that.axios
+            .put(url, fileData, {
+              headers: { "Content-Type": "multipart/form-data" },
+            })
+            .then(function (res) {
+              if (res.code === "0") {
+                that.$message({
+                  message: message,
+                  type: "success",
+                });
+                that.getselect();
+                that.dialog.editorBox.show = false;
+              } else {
+                that.$message.error(res.message);
+              }
+              that.loading = false;
+            })
+            .catch(function () {
+              that.loading = false;
+            });
+        }
+      });
+    },
+    dataSave(billstatus) {
+      let that = this;
+      let SubmitData = {
+        billstatus: "编辑中",
+        declareid: "1sj_" + that.dialog.editorBox.form.data.declareid,
+        chargetime: that.dialog.editorBox.form.data.chargetime,
+        applayer: "一烧结",
+        equipmentname: that.dialog.editorBox.form.data.equipmentname,
+        chargeman: that.dialog.editorBox.form.data.chargeman,
+        reasoncontent: that.dialog.editorBox.form.data.reasoncontent,
+        bz: that.dialog.editorBox.form.data.bz,
+        declaretime: that.dialog.editorBox.form.data.declaretime,
+        record: null,
+      };
+      let message = "保存成功";
+      if (billstatus && billstatus !== "编辑中") {
+        SubmitData.billstatus = billstatus;
+        message = "操作成功";
+      }
+      that.$refs["dialog_form"].validate((valid) => {
+        if (valid) {
+          that.loading = true;
+          let url = "pass/ems/v1/tmaintenances/submit/";
+          let fileData = new FormData();
+          for (let key in SubmitData) {
+            fileData.append(key, SubmitData[key] ? SubmitData[key] : "");
+          }
+          let del = "";
+          // 保存的文件名
+          let filename = "";
+          for (let item of that.dialog.editorBox.files) {
+            if (item.operation === "add" && item.file && item.name) {
+              fileData.append("file", item.file);
+            }
+            if (item.operation === "del" && item.name) {
+              del += item.name + ";";
+            }
+            if (item.operation !== "del" && item.name) {
+              filename += item.name + ";";
+            }
+          }
+          fileData.set("filename", filename);
+          fileData.set("del", del);
+          that.axios
+            .put(url, fileData, {
+              headers: { "Content-Type": "multipart/form-data" },
+            })
+            .then(function (res) {
+              if (res.code === "0") {
+                that.$message({
+                  message: message,
+                  type: "success",
+                });
+                that.getselect();
+                that.dialog.editorBox.show = false;
+              } else {
+                that.$message.error(res.message);
+              }
+              that.loading = false;
+            })
+            .catch(function () {
+              that.loading = false;
+            });
+        }
+      });
+    },
+    but_edita(row) {
+      let that = this;
+      that.dialog.editorBox.type = "PUT";
+      that.dialog.editorBox.files = [];
+      for (let key in that.dialog.editorBox.form.data) {
+        if (typeof row[key] !== "undefined") {
+          that.dialog.editorBox.form.data[key] = row[key];
+        } else {
+          console.log("key:" + key);
+        }
+      }
+      if (row.filename) {
+        let fn = (row.filename + "").trim().split(";");
+        if (fn && fn.length > 0) {
+          let declareid = row.declareid;
+          for (let i = 0; i < fn.length; i++) {
+            if (fn[i]) {
+              let fname = {
+                name: fn[i],
+                url:
+                  "/icore.icp.web/pass/ems/static/" + declareid + "/" + fn[i],
+                file: null,
+                operation: "",
+              };
+              that.dialog.editorBox.files.push(fname);
+            }
+          }
+        }
+      }
+      that.dialog.editorBox.show = true;
+    },
+  },
+};
+</script>
+
+<style lang="less">
+.SSDCompile {
+  min-width: 700px;
+  height: 100%;
+  .box {
+    height: 100%;
+    padding: 15px 15px 0 15px;
+    .box-top {
+      .el-form-item {
+        margin-bottom: 7px;
+      }
+      .box-top-gjl {
+        overflow: hidden;
+        padding: 7px 0;
+        border-top: 1px solid #ccc;
+      }
+    }
+  }
+  .nr-textarea {
+    .el-textarea__inner {
+      min-height: 130px !important;
+    }
+  }
+  .fileUploadBox {
+    height: 130px;
+    min-height: 130px !important;
+    margin-bottom: 18px;
+  }
+}
+</style>

+ 1725 - 0
src/views/energyOperationSupport/components/MaintenanceStopService/submitted.vue

@@ -0,0 +1,1725 @@
+<template>
+  <!-- 检修停复役检修审批 -->
+  <div class="SSDCompile">
+    <div class="box">
+      <div class="box-top">
+        <el-form
+          style="overflow: hidden"
+          :style="filterForm.show ? null : { height: '0px' }"
+          size="mini"
+          label-width="85px"
+        >
+          <el-row>
+            <el-col :span="5">
+              <el-form-item label="申报时间">
+                <el-date-picker
+                  v-model="filterForm.data.declaretime"
+                  type="date"
+                  placeholder="选择日期"
+                  value-format="yyyy-MM-dd"
+                  format="yyyy-MM-dd"
+                  :formatter="declaretime"
+                >
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :span="4">
+              <el-form-item label="申请单位">
+                <el-input
+                  clearable
+                  v-model="filterForm.data.applyer"
+                  placeholder=""
+                  style="width: 100%"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="4">
+              <el-form-item label="申报序号">
+                <el-input
+                  clearable
+                  v-model="filterForm.data.declareid"
+                  placeholder=""
+                  style="width: 100%"
+                >
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="4">
+              <el-form-item label="设备名称">
+                <el-select
+                  filterable
+                  clearable
+                  v-model="filterForm.data.billstatus"
+                  placeholder=""
+                  style="width: 100%"
+                >
+                  <el-option
+                    v-for="item of nameObj.billstatus.arr"
+                    :key="item.name"
+                    :value="item.name"
+                    :label="item.name"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+        <div class="box-top-gjl">
+          <div style="float: right; text-align: right">
+            <el-button
+              class="button"
+              type="primary"
+              size="mini"
+              icon="el-icon-search"
+              v-privilege="activeMenu + 'QUERY'"
+              @click="getselect(1)"
+              >查询</el-button
+            >
+            <el-button
+              class="button"
+              type="primary"
+              size="mini"
+              icon="el-icon-refresh"
+              v-privilege="activeMenu + 'QUERY'"
+              @click="tableDataCancel()"
+              >重置</el-button
+            >
+            <el-button
+              size="mini"
+              :icon="
+                filterForm.show ? 'el-icon-caret-top' : 'el-icon-caret-bottom'
+              "
+              :title="filterForm.show ? '收起搜索区' : '展开搜索区'"
+              @click="
+                filterForm.show = !filterForm.show;
+                $nextTick(() => {
+                  singleTableHeight =
+                    getRoleHeight($refs['singleTable'].$el) - 45;
+                });
+              "
+              >{{ filterForm.show ? "收起" : "展开" }}</el-button
+            >
+          </div>
+        </div>
+      </div>
+      <div class="box-bottom">
+        <el-table
+          :default-sort="{ prop: 'declareid', order: 'descending' }"
+          stripe
+          id="singleTable"
+          ref="singleTable"
+          :data="tableData"
+          v-loading="tableLoading"
+          style="width: 100%"
+          :height="singleTableHeight"
+          border
+          size="mini"
+          highlight-current-row
+          @selection-change="handleSelectionChange"
+          @row-click="handleRowClick"
+          row-key="id"
+        >
+          <el-table-column
+            sortable
+            prop="declareid"
+            label="申报序号"
+            min-width="180px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="declaretime"
+            label="申报日期"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="billstatus"
+            label="申报状态"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="equipmentname"
+            label="检修类型"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          >
+            <template slot-scope="scope">
+              <span>{{
+                nameObj.equipmentname.obj[scope.row.equipmentname]
+                  ? nameObj.equipmentname.obj[scope.row.equipmentname]
+                  : scope.row.equipmentname
+              }}</span>
+            </template></el-table-column
+          >
+          <el-table-column
+            sortable
+            prop="devicename"
+            label="设备名称"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="equipment"
+            label="设备分类"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="constructionunits"
+            label="施工单位"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="construpeople"
+            label="施工人数"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="applayer"
+            label="申请单位"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="chargeman"
+            label="申请人"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="chargetime"
+            label="申请时间"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="approver"
+            label="审批人"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="signtime"
+            label="审批时间"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="filename"
+            label="附件"
+            width="240px"
+            :show-overflow-tooltip="true"
+          >
+          </el-table-column>
+          <el-table-column
+            class-name="gn-TableDownloadExcel-none"
+            label="操作"
+            align="center"
+            width="140px"
+            fixed="right"
+          >
+            <template slot-scope="scope">
+              <div>
+                <el-button
+                  type="primary"
+                  size="mini"
+                  @click="but_edita(scope.row)"
+                  >报工申请</el-button
+                >
+              </div>
+            </template>
+          </el-table-column>
+          >
+        </el-table>
+        <el-pagination
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="total"
+          :page-sizes="[10, 20, 50, 100, 500, 1000]"
+          :page-size="pageSize"
+          :current-page.sync="pageNum"
+          @size-change="tableSizeChange"
+          @current-change="getselect()"
+          style="text-align: right; margin-top: 10px"
+        ></el-pagination>
+      </div>
+    </div>
+    <el-dialog
+      :title="'报工申请单'"
+      :visible.sync="dialog.editorBox.show"
+      width="1000px"
+      :close-on-click-modal="false"
+      :show-close="!loading"
+      fullscreen
+      append-to-body
+    >
+      <el-divider content-position="center">申请单审批</el-divider>
+      <div>
+        <el-table
+          :default-sort="{ prop: 'declareid', order: 'descending' }"
+          stripe
+          id="singleTable"
+          ref="singleTable"
+          :data="tableDatae"
+          v-loading="tableLoading"
+          style="width: 100%"
+          :height="80"
+          border
+          size="mini"
+          highlight-current-row
+          @selection-change="handleSelectionChange"
+          @row-click="handleRowClick"
+          row-key="id"
+        >
+          <el-table-column
+            sortable
+            prop="declareid"
+            label="申报序号"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="declaretime"
+            label="申报日期"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="billstatus"
+            label="申报状态"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="equipmentname"
+            label="检修类型"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          >
+            <template slot-scope="scope">
+              <span>{{
+                nameObj.equipmentname.obj[scope.row.equipmentname]
+                  ? nameObj.equipmentname.obj[scope.row.equipmentname]
+                  : scope.row.equipmentname
+              }}</span>
+            </template></el-table-column
+          >
+          <el-table-column
+            sortable
+            prop="applayer"
+            label="申请单位"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="chargeman"
+            label="申请人"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="chargetime"
+            label="申请时间"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="approver"
+            label="审批人"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="signtime"
+            label="审批时间"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="filename"
+            label="附件"
+            width="240px"
+            :show-overflow-tooltip="true"
+          >
+          </el-table-column>
+          <el-table-column
+            class-name="gn-TableDownloadExcel-none"
+            label="操作"
+            align="center"
+            width="140px"
+            fixed="right"
+          >
+            <template slot-scope="scope">
+              <div>
+                <el-button
+                  type="primary"
+                  size="mini"
+                  v-privilege="activeMenu + 'PUT'"
+                  @click="but_editab(scope.row)"
+                  >查看</el-button
+                >
+              </div>
+            </template>
+          </el-table-column>
+          >
+        </el-table>
+      </div>
+      <el-divider content-position="center">报工信息</el-divider>
+      <div>
+        <el-table
+          :default-sort="{ prop: 'construid', order: 'descending' }"
+          stripe
+          id="singleTable"
+          ref="singleTable"
+          :data="tableDataa"
+          v-loading="tableLoading"
+          style="width: 100%"
+          :height="180"
+          border
+          size="mini"
+          highlight-current-row
+          @selection-change="handleSelectionChange"
+          row-key="id"
+          @row-click="handleRowClickaa"
+        >
+          <el-table-column
+            type="index"
+            :index="indexMethod"
+            label="序号"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="construid"
+            label="报工序号"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="signtime"
+            label="报工日期"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="bz"
+            label="报工人"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="constructionunits"
+            label="施工单位"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="construpeople"
+            label="施工人数"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="construcontent"
+            label="报工内容"
+            min-width="100px"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            sortable
+            prop="construfile"
+            label="附件"
+            width="240px"
+            :show-overflow-tooltip="true"
+          >
+          </el-table-column>
+          <el-table-column
+            class-name="gn-TableDownloadExcel-none"
+            label="操作"
+            align="center"
+            width="140px"
+            fixed="right"
+          >
+            <template slot-scope="scope">
+              <div>
+                <el-button
+                  type="primary"
+                  size="mini"
+                  @click="but_editaa(scope.row)"
+                  >查看</el-button
+                >
+                <el-button
+                  type="primary"
+                  size="mini"
+                  @click="but_delect(scope.row)"
+                  >撤销</el-button
+                >
+              </div>
+            </template>
+          </el-table-column>
+          >
+        </el-table>
+      </div>
+      <el-divider content-position="center">报工申请</el-divider>
+      <div>
+        <el-form>
+          <el-form
+            ref="dialog_form"
+            :model="dialog.editorBox.form.data"
+            :rules="dialog.editorBox.form.rules"
+            size="mini"
+            label-width="100px"
+            ><el-row>
+              <el-col :span="8">
+                <el-form-item label="设备名称" prop="devicename">
+                  <el-input
+                    clearable
+                    v-model="dialog.editorBox.form.data.devicename"
+                    placeholder=""
+                    style="width: 100%"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="设备分类" prop="equipment">
+                  <el-input
+                    clearable
+                    v-model="dialog.editorBox.form.data.equipment"
+                    placeholder=""
+                    style="width: 100%"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="施工方" prop="constructionunits">
+                  <el-input
+                    clearable
+                    v-model="dialog.editorBox.form.data.constructionunits"
+                    placeholder=""
+                    style="width: 100%"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="报工人员" prop="bz">
+                  <el-input
+                    clearable
+                    v-model="dialog.editorBox.form.dataa.bz"
+                    placeholder=""
+                    style="width: 100%"
+                  ></el-input>
+                </el-form-item> </el-col
+            ></el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="施工人数" prop="construpeople">
+                  <el-input
+                    clearable
+                    v-model="dialog.editorBox.form.data.construpeople"
+                    placeholder=""
+                    style="width: 100%"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="报工时间">
+                  <el-date-picker
+                    v-model="filterForm.dataa.signtime"
+                    type="date"
+                    placeholder="选择日期"
+                    value-format="yyyy-MM-dd"
+                    format="yyyy-MM-dd"
+                    :formatter="signtime"
+                  >
+                  </el-date-picker>
+                </el-form-item>
+              </el-col>
+            </el-row>
+
+            <el-container>
+              <el-main style="padding: 0">
+                <el-form-item label="过程记录" prop="construcontent">
+                  <el-input
+                    clearable
+                    class="nr-textarea"
+                    type="textarea"
+                    v-model="dialog.editorBox.form.dataa.construcontent"
+                    placeholder=""
+                    style="width: 100%"
+                    autosize
+                  ></el-input>
+                </el-form-item>
+              </el-main>
+              <el-aside width="200px" style="padding-left: 15px">
+                <zj-fileUploadBox
+                  class="fileUploadBox"
+                  :files="dialog.editorBox.files"
+                ></zj-fileUploadBox>
+              </el-aside>
+            </el-container>
+            <el-form-item label="现场图片">
+              <el-upload
+                ref="upload"
+                action=""
+                list-type="picture-card"
+                :on-preview="handlePictureCardPreview"
+                :on-remove="handleRemove"
+                accept="gif,bmp,jpg,jpeg,png"
+                multiple
+                :http-request="handleUpload"
+                file-list="fileList"
+                :on-change="imagechange"
+              >
+                <i class="el-icon-plus"></i>
+              </el-upload>
+            </el-form-item>
+          </el-form>
+        </el-form>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="construdataSave()">提交</el-button>
+        <el-button type="primary" @click="reject()">取消</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog
+      :title="'检修停复役申请单 - 报工明细'"
+      :visible.sync="newdialog.editorBox.show"
+      width="940px"
+      :close-on-click-modal="false"
+      :show-close="!loading"
+    >
+      <div>
+        <el-form
+          ref="dialog_form"
+          :model="dialog.editorBox.form.data"
+          :rules="dialog.editorBox.form.rules"
+          size="mini"
+          label-width="120px"
+        >
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="报工序号" prop="construid">
+                <el-input
+                  clearable
+                  v-model="dialog.editorBox.form.data.construid"
+                  placeholder=""
+                  style="width: 100%"
+                  disabled
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="设备名称" prop="devicename">
+                <el-input
+                  clearable
+                  v-model="dialog.editorBox.form.data.devicename"
+                  placeholder=""
+                  style="width: 100%"
+                  disabled
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="设备分类" prop="equipment">
+                <el-input
+                  clearable
+                  v-model="dialog.editorBox.form.data.equipment"
+                  placeholder=""
+                  style="width: 100%"
+                  disabled
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="报工时间" prop="signtime">
+                <el-input
+                  clearable
+                  v-model="dialog.editorBox.form.data.signtime"
+                  placeholder=""
+                  style="width: 100%"
+                  disabled
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="报工人员" prop="bz">
+                <el-input
+                  clearable
+                  v-model="dialog.editorBox.form.dataa.bz"
+                  placeholder=""
+                  style="width: 100%"
+                  disabled
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="施工单位" prop="constructionunits">
+                <el-input
+                  disabled
+                  clearable
+                  v-model="dialog.editorBox.form.data.constructionunits"
+                  placeholder=""
+                  style="width: 100%"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="施工人数" prop="construpeople">
+                <el-input
+                  clearable
+                  disabled
+                  v-model="dialog.editorBox.form.data.construpeople"
+                  placeholder=""
+                  style="width: 100%"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-container>
+            <el-main style="padding: 0">
+              <el-form-item label="报工内容" prop="construcontent">
+                <el-input
+                  clearable
+                  disabled
+                  class="nr-textarea"
+                  type="textarea"
+                  v-model="dialog.editorBox.form.dataa.construcontent"
+                  placeholder=""
+                  style="width: 100%"
+                ></el-input>
+              </el-form-item>
+            </el-main>
+            <el-aside width="200px" style="padding-left: 15px">
+              <zj-fileUploadBox
+                class="fileUploadBox"
+                :files="dialog.editorBox.files"
+              ></zj-fileUploadBox>
+            </el-aside>
+          </el-container>
+          <el-form-item label="现场图片" prop="">
+            <el-input
+              clearable
+              type="textarea"
+              disabled
+              placeholder=""
+              style="width: 100%"
+            ></el-input>
+          </el-form-item>
+        </el-form>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="datesave()">确认</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog
+      :title="'检修停复役审批单 '"
+      :visible.sync="adialog.editorBox.show"
+      width="940px"
+      :close-on-click-modal="false"
+      :show-close="!loading"
+    >
+      <div>
+        <el-form
+          ref="dialog_form"
+          :model="dialog.editorBox.form.data"
+          :rules="dialog.editorBox.form.rules"
+          size="mini"
+          label-width="120px"
+        >
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="申报序号" prop="declareid">
+                <el-input
+                  clearable
+                  v-model="dialog.editorBox.form.data.declareid"
+                  placeholder=""
+                  style="width: 100%"
+                  disabled
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="申报时间" prop="declaretime">
+                <el-date-picker
+                  v-model="dialog.editorBox.form.data.declaretime"
+                  type="date"
+                  placeholder="选择日期"
+                  value-format="yyyy-MM-dd"
+                  format="yyyy-MM-dd"
+                  :formatter="declaretime"
+                >
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="申请单位" prop="applayer">
+                <el-input
+                  clearable
+                  v-model="dialog.editorBox.form.data.applayer"
+                  placeholder=""
+                  style="width: 100%"
+                  disabled
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="检修类型" prop="equipmentname">
+                <el-select
+                  clearable
+                  v-model="dialog.editorBox.form.data.equipmentname"
+                  placeholder=""
+                  style="width: 100%"
+                >
+                  <el-option
+                    v-for="item of nameObj.equipmentname.arr"
+                    :key="item.id"
+                    :value="item.id"
+                    :label="item.name"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="申请负责人" prop="chargeman">
+                <el-input
+                  clearable
+                  v-model="dialog.editorBox.form.data.chargeman"
+                  placeholder=""
+                  style="width: 100%"
+                  disabled
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="设备名称">
+                <el-select
+                  filterable
+                  clearable
+                  v-model="dialog.editorBox.form.data.devicename"
+                  placeholder="设备名称"
+                  style="width: 100%"
+                >
+                  <el-option
+                    v-for="item of nameObj.devicename.arr"
+                    :key="item.id"
+                    :value="item.name"
+                    :label="item.name"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="设备分类">
+                <el-select
+                  filterable
+                  clearable
+                  v-model="dialog.editorBox.form.data.equipment"
+                  placeholder="设备名称"
+                  style="width: 100%"
+                >
+                  <el-option
+                    v-for="item of nameObj.equipment.arr"
+                    :key="item.id"
+                    :value="item.name"
+                    :label="item.name"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="施工单位" prop="constructionunits">
+                <el-input
+                  clearable
+                  v-model="dialog.editorBox.form.data.constructionunits"
+                  placeholder=""
+                  style="width: 100%"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="施工人数" prop="construpeople">
+                <el-input
+                  clearable
+                  v-model="dialog.editorBox.form.data.construpeople"
+                  placeholder=""
+                  style="width: 100%"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-container>
+            <el-main style="padding: 0">
+              <el-form-item label="申请内容" prop="reasoncontent">
+                <el-input
+                  clearable
+                  class="nr-textarea"
+                  type="textarea"
+                  v-model="dialog.editorBox.form.data.reasoncontent"
+                  placeholder=""
+                  style="width: 100%"
+                ></el-input>
+              </el-form-item>
+            </el-main>
+            <el-aside width="200px" style="padding-left: 15px">
+              <zj-fileUploadBox
+                class="fileUploadBox"
+                :files="dialog.editorBox.files"
+              ></zj-fileUploadBox>
+            </el-aside>
+          </el-container>
+          <el-form-item label="备注" prop="bz">
+            <el-input
+              clearable
+              type="textarea"
+              v-model="dialog.editorBox.form.data.bz"
+              placeholder=""
+              style="width: 100%"
+            ></el-input>
+          </el-form-item>
+        </el-form>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="adialog.editorBox.show = false" :loading="loading"
+          >确认</el-button
+        >
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import fileUploadBox from "~/components/zg/fileUploadBox.vue";
+import { formatDate } from "@/utils/util.js";
+import store from "@/store/index.js";
+export default {
+  name: "MaintenanceApplication",
+  components: {
+    "zj-fileUploadBox": fileUploadBox,
+  },
+  data() {
+    return {
+      dialogImagename: "",
+      dialogVisible: false,
+      fileList: "",
+      declaretime: "",
+      leixin: "add",
+      multipleSelection: [],
+      pickerOptions: {
+        shortcuts: [
+          {
+            text: "最近一周",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+          {
+            text: "最近一个月",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+          {
+            text: "最近三个月",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+        ],
+      },
+      store,
+      userInfo: {
+        data: null,
+      },
+      activeMenu: "",
+      filterForm: {
+        show: true,
+        dataa: {
+          devicename: "", //设备名称
+          equipment: "", //设备分类
+          constructionunits: "", //施工单位
+          construpeople: "", //施工人数
+          construcontent: "", //施工内容
+          signtime: "", //报工时间
+          construid: "", //报工序号
+          construfile: "", //报工文件
+          imagename: "", //图片名称
+          imageurl: "", //图片路径
+          bz: "", //报工人员
+        },
+        data: {
+          billstatus: "", //审核状态
+          equipmentname: "", //检修类型
+          chargeman: "", //申请人
+          applayer: "一烧结", //申请单位
+          reasoncontent: "", //申请内容
+          bz: "", //备注
+          signtime: "", //审批时间
+          approver: "", //审批人
+          chargetime: "", //申请时间
+          declaretime: "", //申报日期
+          declareid: "", //申报序号
+          filename: "", //文件名
+        },
+      },
+      pageNum: 1,
+      pageSize: 20,
+      total: 0,
+      singleTableHeight: 100,
+      tableData: [],
+      tableDataa: [],
+      tableDatae: [],
+      nameObj: {
+        medias: {},
+        equipment: {
+          obj: {},
+          arr: [],
+        },
+        devicename: {
+          obj: {},
+          arr: [],
+        },
+        id: {
+          obj: {},
+          arr: [],
+        },
+        name: {
+          obj: {},
+          arr: [],
+        },
+        billstatus: {
+          obj: {
+            end: "已通过",
+            start: "已驳回",
+            check: "审核中",
+          },
+          arr: [
+            {
+              id: "end",
+              name: "已通过",
+            },
+            {
+              id: "start",
+              name: "已驳回",
+            },
+            {
+              id: "check",
+              name: "审核中",
+            },
+          ],
+        },
+        equipmentname: {
+          obj: {
+            value1: "委外",
+            value2: "自检",
+          },
+          arr: [
+            {
+              id: "value1",
+              name: "委外",
+            },
+            {
+              id: "value2",
+              name: "自检",
+            },
+          ],
+        },
+      },
+      loading: false,
+      tableLoading: false,
+      adialog: {
+        editorBox: {
+          show: false,
+          type: "",
+        },
+      },
+      newdialog: {
+        editorBox: {
+          show: false,
+          type: "",
+        },
+      },
+      dialog: {
+        editorBox: {
+          show: false,
+          type: "",
+          form: {
+            dataa: {
+              devicename: "", //设备名称
+              equipment: "", //设备分类
+              constructionunits: "", //施工单位
+              construpeople: "", //施工人数
+              construcontent: "", //施工内容
+              signtime: "", //报工时间
+              construid: "", //报工序号
+              construfile: "", //报工文件
+              imagename: "", //图片名称
+              imageurl: "", //图片路径
+              bz: "", //报工人员
+            },
+            data: {
+              billstatus: "", //审核状态
+              equipmentname: "", //检修类型
+              chargeman: "", //申请人
+              applayer: "", //申请单位
+              reasoncontent: "", //申请内容
+              bz: "", //备注
+              signtime: "", //审批时间
+              approver: "", //审批人
+              chargetime: "", //申请时间
+              declaretime: "", //申报日期
+              declareid: "", //申报序号
+              filename: "",
+              devicename: "", //设备名称
+              equipment: "", //设备分类
+              constructionunits: "", //施工单位
+              construpeople: "", //施工人数
+            },
+            rules: {
+              // billsno: [
+              //     { required: true, message: '该项不能为空', trigger: 'change' }
+              // ],
+              creattime: [
+                { required: true, message: "该项不能为空", trigger: "change" },
+              ],
+              applyer: [
+                { required: true, message: "该项不能为空", trigger: "change" },
+              ],
+              equipmentname: [
+                { required: true, message: "该项不能为空", trigger: "change" },
+              ],
+              chargeman: [
+                { required: true, message: "该项不能为空", trigger: "change" },
+              ],
+            },
+          },
+          files: [
+            // {
+            //     name: '测试',
+            //     url: '',
+            //     file: null,
+            //     operation: '' // add or del
+            // }
+          ],
+        },
+      },
+    };
+  },
+  created() {
+    this.activeMenu = window.localStorage.getItem("activeMenu");
+    this.getselect();
+  },
+  mounted() {
+    let that = this;
+    window.PEDataObj = {
+      // 将数据绑定到window上,供main页面使用
+      vm: that,
+      // tableArr:用于导出成Excel的表格的信息
+      tableArr: [
+        {
+          name: "",
+          id: "singleTable",
+        },
+      ],
+    };
+    that.$nextTick(() => {
+      // 立即获取的height有一定偏差,通过setTimeout延迟来解决
+      setTimeout(() => {
+        that.singleTableHeight =
+          that.getRoleHeight(that.$refs["singleTable"].$el) - 45;
+      }, 1);
+    });
+    that.store.dispatch("getUserInfo").then((res) => {
+      that.userInfo.data = res.data;
+    });
+    that.getselect();
+  },
+  methods: {
+    //接收上传的图片
+    imagechange(file, fileList) {
+      let that = this;
+      that.fileList = fileList;
+      that.files = file;
+      console.log("file" + file + "fileList" + fileList);
+    },
+    but_delect(row) {
+      let that = this;
+      for (let key in that.dialog.editorBox.form.dataa) {
+        if (typeof row[key] !== "undefined") {
+          that.dialog.editorBox.form.dataa[key] = row[key];
+        } else {
+          console.log("key:" + key);
+        }
+      }
+      let construid = row.construid;
+      that
+        .$confirm("是否撤销已选数据?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          state: "warning",
+        })
+        .then(() => {
+          that.axios
+            .delete("pass/ems/v1/tsubmitteds/del/" + construid)
+            .then(function (res) {
+              if (res.code === "0") {
+                that.$message({
+                  message: "删除成功",
+                  type: "success",
+                });
+                that.getselect1();
+                that.loading = false;
+              } else {
+                if (res.code === "51") {
+                }
+                that.$message.error(res.message);
+              }
+              that.loading = false;
+            })
+            .catch(function () {
+              that.loading = false;
+            });
+        })
+        .catch(() => {
+          that.loading = false;
+        });
+    },
+
+    handleRemove(file, fileList) {
+      console.log(file, fileList);
+    },
+    handleUpload(val) {
+      let file = val.file;
+      this.dialogImagename = file.name;
+      console.log(this.dialogImagename);
+    },
+    indexMethod(index) {
+      return index * 1;
+    },
+    //  计算树区域高度
+    getRoleHeight(dom) {
+      return window.innerHeight - dom.offsetTop;
+    },
+    //查询报工信息
+    getselect1(pageNum) {
+      let that = this;
+      that.pageNum = pageNum || that.pageNum;
+      let params = {
+        declareid: that.dialog.editorBox.form.data.declareid,
+      };
+      that.tableLoading = true;
+      let url =
+        "pass/ems/v1/tsubmitteds/like/?pageNum=" +
+        that.pageNum +
+        "&pageSize=" +
+        that.pageSize;
+      this.axios
+        .get(url, {
+          params: params,
+        })
+        .then(function (res) {
+          if (res.code === "0") {
+            let arr = [];
+            for (let item of res.data.list) {
+              arr.push({
+                bz: item.bz,
+                signtime: item.signtime,
+                devicename: item.devicename,
+                equipment: item.equipment,
+                construcontent: item.construcontent,
+                construid: item.construid,
+                equipment: item.equipment,
+                constructionunits: item.constructionunits,
+                construpeople: item.construpeople,
+                construfile: item.construfile,
+              });
+            }
+            that.tableDataa = arr;
+            that.total = res.data.total;
+            that.tableLoading = false;
+          } else {
+            this.$message.error(res.message);
+          }
+        });
+    },
+    //查询申报信息
+    getselect(pageNum) {
+      let that = this;
+      let params = {
+        declaretime: that.filterForm.data.declaretime,
+        applayer: that.filterForm.data.applayer,
+        declareid: that.filterForm.data.declareid,
+        billstatus: "已通过",
+        record: !0,
+      };
+      that.pageNum = pageNum || that.pageNum;
+      that.tableLoading = true;
+      let url =
+        "pass/ems/v1/tmaintenances/likeapproval/?pageNum=" +
+        that.pageNum +
+        "&pageSize=" +
+        that.pageSize;
+      this.axios
+        .get(url, {
+          params: params,
+        })
+        .then(function (res) {
+          if (res.code === "0") {
+            let arr = [];
+            for (let item of res.data.list) {
+              arr.push({
+                billstatus: item.billstatus, //审核状态
+                equipmentname: item.equipmentname, //检修类型
+                applayer: item.applayer, //申请单位
+                signtime: item.signtime, //审批时间
+                approver: item.approver, //审批人
+                chargetime: item.chargetime, //申请时间
+                declaretime: item.declaretime, //申报日期
+                declareid: item.declareid, //申报序号
+                chargeman: item.chargeman,
+                reasoncontent: item.reasoncontent, //申请内容
+                bz: item.bz, //备注
+                filename: item.filename,
+                devicename: item.devicename,
+                equipment: item.equipment,
+                constructionunits: item.constructionunits,
+                construpeople: item.construpeople,
+              });
+            }
+            that.tableData = arr;
+            that.total = res.data.total;
+            that.tableLoading = false;
+          } else {
+            this.$message.error(res.message);
+          }
+        });
+    },
+    datesave(){
+      this.newdialog.editorBox.show = false;
+    },
+    // 改变表格显示条数
+    tableSizeChange(val) {
+      let that = this;
+      that.pageSize = val;
+      that.getselect(1);
+    },
+    // 重置搜索
+    tableDataCancel() {
+      let that = this;
+      for (let key in that.filterForm.data) {
+        if (that.filterForm.data[key] instanceof Array) {
+          that.filterForm.data[key] = [];
+        } else {
+          that.filterForm.data[key] = "";
+        }
+      }
+      that.getselect(1);
+    },
+    but_add() {
+      let that = this;
+      that.dialog.editorBox.files = [];
+      for (let key in that.dialog.editorBox.form.data) {
+        that.dialog.editorBox.form.data[key] = "";
+      }
+      let nowDate = formatDate(new Date(), "yyyy-MM-dd");
+      that.dialog.editorBox.form.data.signtime = nowDate;
+      that.dialog.editorBox.form.data.chargetime = nowDate;
+      that.dialog.editorBox.form.data.declaretime = nowDate;
+      that.dialog.editorBox.form.data.chargeman = that.userInfo.data.userName;
+      that.dialog.editorBox.type = "add";
+      that.dialog.editorBox.show = true;
+      setTimeout(() => {
+        that.$refs["dialog_form"].clearValidate();
+      }, 100);
+    },
+    submitBut() {
+      let that = this;
+      if (that.dialog.editorBox.type === "add") {
+        that
+          .$confirm("是否同意审批?", "提示", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+          .then(() => {
+            that.dataSave();
+          })
+          .catch(() => {});
+      } else {
+        that
+          .$confirm("是否?", "提示", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+          .then(() => {
+            that.dialog.editorBox.show = false;
+          })
+          .catch(() => {});
+      }
+    },
+    // 表格中多选按钮的相关方法
+    handleSelectionChange(val) {
+      this.multipleSelection = val;
+    },
+    //点击行触发,选中或不选中复选框
+    handleRowClick(row, column, event) {
+      let that = this;
+      this.$refs.singleTable.toggleRowSelection(row);
+      if (this.multipleSelection.length > 0) {
+        let parmas = [];
+        for (let item of this.multipleSelection) {
+          parmas.push({
+            declareid: item.declareid,
+            billstatus: "已通过",
+            approver: this.userInfo.data.userName,
+            signtime: item.signtime,
+            equipmentname: item.equipmentname,
+            applayer: item.applayer,
+            bz: item.bz,
+            reasoncontent: item.reasoncontent,
+            declaretime: item.declaretime,
+            chargeman: item.chargeman,
+            declareid: item.declareid,
+            filename: item.filename,
+            devicename: item.devicename,
+            equipment: item.equipment,
+            constructionunits: item.constructionunits,
+            construpeople: item.construpeople,
+            chargetime: item.chargetime,
+          });
+        }
+        that.tableDatae = parmas;
+      }
+    },
+    // 修改
+    but_edit_plural() {
+      let that = this;
+      that.leixin = "PUT";
+      that.dialog.editorBox.type = "PUT";
+      that.newdialog.editorBox.show = true;
+      if (that.multipleSelection.length > 0) {
+        let ids = [];
+        for (let item of that.multipleSelection) {
+          ids.push(
+            item.equipmentname,
+            item.bz,
+            item.reasoncontent,
+            item.declaretime,
+            item.chargeman,
+            item.declareid,
+            item.filename,
+            item.devicename,
+            item.equipment,
+            item.constructionunits,
+            item.construpeople
+          );
+        }
+        that.dialog.editorBox.form.data.equipmentname = ids[0];
+        that.dialog.editorBox.form.data.bz = ids[1];
+        that.dialog.editorBox.form.data.reasoncontent = ids[2];
+        that.dialog.editorBox.form.data.declaretime = ids[3];
+        that.dialog.editorBox.form.data.chargeman = ids[4];
+        that.dialog.editorBox.form.data.declareid = ids[5];
+        that.dialog.editorBox.form.data.devicename = ids[6];
+        that.dialog.editorBox.form.data.equipment = ids[7];
+        that.dialog.editorBox.form.data.constructionunits = ids[8];
+        that.dialog.editorBox.form.data.construpeople = ids[9];
+      }
+    },
+    submitUpload() {
+      let that = this;
+      this.$refs.upload1.submit();
+    },
+    getimage() {
+      let that = this;
+    },
+    //报工提交
+    construdataSave() {
+      let that = this;
+      that.dialog.editorBox.type = "PUT";
+      let SubmitData = {
+        declareid: that.dialog.editorBox.form.data.declareid,
+        equipment: that.dialog.editorBox.form.data.equipment,
+        constructionunits: that.dialog.editorBox.form.data.constructionunits,
+        construpeople: that.dialog.editorBox.form.data.construpeople,
+        signtime: that.filterForm.dataa.signtime,
+        construcontent: that.dialog.editorBox.form.dataa.construcontent,
+        bz: that.dialog.editorBox.form.dataa.bz,
+        devicename: that.dialog.editorBox.form.data.devicename,
+        imagename: that.dialogImagename,
+      };
+      let message = "保存成功";
+      that.$refs["dialog_form"].validate((valid) => {
+        if (valid) {
+          that.loading = true;
+          let url = "pass/ems/v1/tsubmitteds/pus/";
+          let fileData = new FormData();
+          for (let key in SubmitData) {
+            fileData.append(key, SubmitData[key] ? SubmitData[key] : "");
+          }
+          let del = "";
+          // 保存的文件名
+          let filename = "";
+          for (let item of that.dialog.editorBox.files) {
+            if (item.operation === "add" && item.file && item.name) {
+              fileData.append("file", item.file);
+            }
+            if (item.operation === "del" && item.name) {
+              del += item.name + ";";
+            }
+            if (item.operation !== "del" && item.name) {
+              filename += item.name + ";";
+            }
+          }
+          fileData.set("pageNum", that.pageNum);
+          fileData.set("construfile", filename);
+          fileData.set("del", del);
+          that.axios
+            .post(url, fileData, {
+              headers: { "Content-Type": "multipart/form-data" },
+            })
+            .then(function (res) {
+              if (res.code === "0") {
+                that.tableLoading = false;
+                that.$message({
+                  message: message,
+                  type: "success",
+                });
+              } else {
+                that.$message.error(res.message);
+              }
+              that.getselect1();
+              that.loading = false;
+            })
+            .catch(function () {
+              that.loading = false;
+            });
+        }
+      });
+    },
+    dataSaves(billstatus) {
+      let that = this;
+      that.dialog.editorBox.type = "PUT";
+      let SubmitData = {
+        billstatus: "编辑中",
+        declareid: that.dialog.editorBox.form.data.declareid,
+        chargetime: that.dialog.editorBox.form.data.chargetime,
+        applayer: "一烧结",
+        equipmentname: that.dialog.editorBox.form.data.equipmentname,
+        chargeman: that.dialog.editorBox.form.data.chargeman,
+        reasoncontent: that.dialog.editorBox.form.data.reasoncontent,
+        bz: that.dialog.editorBox.form.data.bz,
+        declaretime: that.dialog.editorBox.form.data.declaretime,
+        record: null,
+      };
+      let message = "保存成功";
+      if (billstatus && billstatus !== "编辑中") {
+        SubmitData.billstatus = billstatus;
+        message = "操作成功";
+      }
+      that.$refs["dialog_form"].validate((valid) => {
+        if (valid) {
+          that.loading = true;
+          let url = "pass/ems/v1/tmaintenances/pus/";
+          let fileData = new FormData();
+          for (let key in SubmitData) {
+            fileData.append(key, SubmitData[key] ? SubmitData[key] : "");
+          }
+          let del = "";
+          // 保存的文件名
+          let filename = "";
+          for (let item of that.dialog.editorBox.files) {
+            if (item.operation === "add" && item.file && item.name) {
+              fileData.append("file", item.file);
+            }
+            if (item.operation === "del" && item.name) {
+              del += item.name + ";";
+            }
+            if (item.operation !== "del" && item.name) {
+              filename += item.name + ";";
+            }
+          }
+          fileData.set("filename", filename);
+          fileData.set("del", del);
+          that.axios
+            .put(url, fileData, {
+              headers: { "Content-Type": "multipart/form-data" },
+            })
+            .then(function (res) {
+              if (res.code === "0") {
+                that.$message({
+                  message: message,
+                  type: "success",
+                });
+                that.getselect();
+                that.dialog.editorBox.show = false;
+              } else {
+                that.$message.error(res.message);
+              }
+              that.loading = false;
+            })
+            .catch(function () {
+              that.loading = false;
+            });
+        }
+      });
+    },
+    but_edita(row) {
+      let that = this;
+      that.dialog.editorBox.show = true;
+      that.dialog.editorBox.form.dataa.bz = that.userInfo.data.userName;
+      for (let key in that.dialog.editorBox.form.data) {
+        if (typeof row[key] !== "undefined") {
+          that.dialog.editorBox.form.data[key] = row[key];
+        } else {
+          console.log("key:" + key);
+        }
+      }
+      that.getselect1();
+    },
+    but_editaa(row) {
+      let that = this;
+      that.dialog.editorBox.files = [];
+      that.dialog.editorBox.form.dataa.bz = that.userInfo.data.userName;
+      for (let key in that.dialog.editorBox.form.dataa) {
+        if (typeof row[key] !== "undefined") {
+          that.dialog.editorBox.form.dataa[key] = row[key];
+        } else {
+          console.log("key:" + key);
+        }
+      }
+      if (row.construfile) {
+        console.log("在这里");
+        let fn = (row.construfile + "").trim().split(";");
+        if (fn && fn.length > 0) {
+          let construid = row.construid;
+          for (let i = 0; i < fn.length; i++) {
+            if (fn[i]) {
+              let fname = {
+                name: fn[i],
+                url:
+                  "/icore.icp.web/pass/ems/static/" + construid + "/" + fn[i],
+                file: null,
+                operation: "",
+              };
+              that.dialog.editorBox.files.push(fname);
+            }
+          }
+        }
+      }
+      that.newdialog.editorBox.show = true;
+    },
+    but_editab(row) {
+      let that = this;
+      that.dialog.editorBox.files = [];
+      that.dialog.editorBox.form.dataa.bz = that.userInfo.data.userName;
+      for (let key in that.dialog.editorBox.form.dataa) {
+        if (typeof row[key] !== "undefined") {
+          that.dialog.editorBox.form.data[key] = row[key];
+        } else {
+          console.log("key:" + key);
+        }
+      }
+      if (row.filename) {
+        let fn = (row.filename + "").trim().split(";");
+        if (fn && fn.length > 0) {
+          let declareid = row.declareid;
+          for (let i = 0; i < fn.length; i++) {
+            if (fn[i]) {
+              let fname = {
+                name: fn[i],
+                url:
+                  "/icore.icp.web/pass/ems/static/" + declareid + "/" + fn[i],
+                file: null,
+                operation: "",
+              };
+              that.dialog.editorBox.files.push(fname);
+            }
+          }
+        }
+      }
+      that.adialog.editorBox.show = true;
+    },
+  },
+};
+</script>
+
+<style lang="less">
+.SSDCompile {
+  min-width: 700px;
+  height: 100%;
+  .box {
+    height: 100%;
+    padding: 15px 15px 0 15px;
+    .box-top {
+      .el-form-item {
+        margin-bottom: 7px;
+      }
+      .box-top-gjl {
+        overflow: hidden;
+        padding: 7px 0;
+        border-top: 1px solid #ccc;
+      }
+    }
+  }
+  .nr-textarea {
+    .el-textarea__inner {
+      min-height: 130px !important;
+    }
+  }
+  .fileUploadBox {
+    height: 130px;
+    min-height: 130px !important;
+    margin-bottom: 18px;
+  }
+}
+</style>