Bläddra i källkod

2021-07-27 -lrl

lirl 3 år sedan
förälder
incheckning
96270e971b

+ 8 - 0
config/index.js

@@ -78,6 +78,14 @@ module.exports = {
           '^/zhongsteel.pass.web/pass/ems': '/'
         }
       },
+      '/zhongsteel.pass.web/pass/product': {
+         target: 'http://localhost:8888',
+       // target: '172.16.90.238:8089',
+        changeOrigin: true,
+        pathRewrite: {
+          '^/zhongsteel.pass.web/pass/product': '/'
+        }
+      },
       '/zhongsteel.pass.web/pass/localhost': {
         target: 'http://localhost:8888',
         changeOrigin: true,

+ 1271 - 0
src/views/energyOperationSupport/components/securitys/SecurityFile.vue

@@ -0,0 +1,1271 @@
+<template>
+    <!-- 工序与原材料关联 -->
+    <div class="processAndMaterial">
+        <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.workprocid === 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="60px"
+                    >
+                        <el-row>
+                            <el-col :span="8">
+                                <el-form-item label="原材料">
+                                    <el-select
+                                        filterable
+                                        clearable
+                                        v-model="filterForm.data.materialid"
+                                        placeholder="原材料"
+                                        style="width: 100%;"
+                                    >
+                                        <el-option
+                                            v-for="item of nameObj.materialid.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="工序">
+                                    <el-select
+                                        filterable
+                                        clearable
+                                        v-model="filterForm.data.workprocid"
+                                        placeholder="工序"
+                                        style="width: 100%;"
+                                    >
+                                        <el-option
+                                            v-for="item of nameObj.workprocid.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="公式版本">
+                                    <el-date-picker
+                                        type="month"
+                                        v-model="filterForm.data.version"
+                                        placeholder="公式版本"
+                                        style="width: 100%;"
+                                        format="yyyyMM"
+                                        value-format="yyyyMM00"
+                                    ></el-date-picker>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="8">
+                                <el-form-item label="关联ID">
+                                    <el-input clearable
+                                        v-model="filterForm.data.aid"
+                                        placeholder="关联ID"
+                                        style="width: 100%;"
+                                    ></el-input>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="8">
+                                <el-form-item label="物料编码">
+                                    <el-input clearable
+                                        v-model="filterForm.data.materialCode"
+                                        placeholder="MES物料编码"
+                                        style="width: 100%;"
+                                    ></el-input>
+                                </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
+                            @selection-change="handleSelectionChange"
+                        >
+                            <el-table-column
+                                type="selection"
+                                width="40"
+                                align="center"
+                                fixed="left"
+                            ></el-table-column>
+                            <el-table-column
+                                sortable
+                                prop="itemid"
+                                label="关联ID"
+                                min-width="100px"
+                                :show-overflow-tooltip="true"
+                            ></el-table-column>
+                            <el-table-column
+                                sortable
+                                prop="materialid"
+                                label="原材料"
+                                min-width="100px"
+                                :show-overflow-tooltip="true"
+                            >
+                                <template slot-scope="scope">
+                                    <span>{{ nameObj.materialid.obj[scope.row.materialid] ? nameObj.materialid.obj[scope.row.materialid] : scope.row.materialid }}</span>
+                                </template>
+                            </el-table-column>
+                            <el-table-column
+                                sortable
+                                prop="workprocid"
+                                label="工序"
+                                min-width="100px"
+                                :show-overflow-tooltip="true"
+                            >
+                                <template slot-scope="scope">
+                                    <span>{{ nameObj.workprocid.obj[scope.row.workprocid] ? nameObj.workprocid.obj[scope.row.workprocid] : scope.row.workprocid }}</span>
+                                </template>
+                            </el-table-column>
+                            <el-table-column
+                                sortable
+                                prop="unitid"
+                                label="单位"
+                                min-width="100px"
+                                :show-overflow-tooltip="true"
+                            > <template slot-scope="scope">
+                                    <el-form-item
+                                        v-if="scope.row.isSelection"
+                                        :prop="scope.row.itemid + '.unitid'"
+                                        :rules="dialog.editorBox.form.rules.unitid"
+                                    >
+                                        <el-select
+                                            filterable
+                                            clearable
+                                            style="width: 100%;"
+                                            v-model="tableFormDataObj[scope.row.itemid].unitid"
+                                        >
+                                            <el-option
+                                                v-for="item of nameObj.unitid.arr"
+                                                :key="item.id"
+                                                :value="item.id"
+                                                :label="item.name"
+                                            ></el-option>
+                                        </el-select>
+                                        <template
+                                            slot="error"
+                                            slot-scope="scope"
+                                        >
+                                            <p
+                                                class="error"
+                                                :title="scope.error"
+                                            >{{ scope.error }}</p>
+                                        </template>
+                                    </el-form-item>
+                                    <span v-else>{{ nameObj.unitid.obj[scope.row.unitid] ? nameObj.unitid.obj[scope.row.unitid] : scope.row.unitid }}</span>
+                                </template>
+                            </el-table-column>
+                            <el-table-column
+                                sortable
+                                prop="seqno"
+                                label="顺序号"
+                                min-width="100px"
+                                :show-overflow-tooltip="true"
+                            > <template slot-scope="scope">
+                                    <el-form-item
+                                        v-if="scope.row.isSelection"
+                                        :prop="scope.row.itemid + '.seqno'"
+                                        :rules="dialog.editorBox.form.rules.seqno"
+                                    >
+                                        <el-input
+                                            clearable
+                                            style="width: 100%;"
+                                            v-model.trim="tableFormDataObj[scope.row.itemid].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-column
+                                sortable
+                                prop="mes_materialcode"
+                                label="MES物料编码"
+                                min-width="100px"
+                                :show-overflow-tooltip="true"
+                            ></el-table-column>
+                            <el-table-column
+                                sortable
+                                prop="isFinanceData"
+                                label="财务物料"
+                                min-width="100px"
+                                :show-overflow-tooltip="true"
+                            >
+                                <template slot-scope="scope">
+                                    <el-form-item
+                                        v-if="scope.row.isSelection"
+                                        :prop="scope.row.itemid + '.isFinanceData'"
+                                        :rules="dialog.editorBox.form.rules.isFinanceData"
+                                    >
+                                        <el-select
+                                            filterable
+                                            clearable
+                                            style="width: 100%;"
+                                            v-model="tableFormDataObj[scope.row.itemid].isFinanceData"
+                                        >
+                                            <el-option
+                                                label="是"
+                                                value="1"
+                                            ></el-option>
+                                            <el-option
+                                                label="否"
+                                                value="0"
+                                            ></el-option>
+                                        </el-select>
+                                        <template
+                                            slot="error"
+                                            slot-scope="scope"
+                                        >
+                                            <p
+                                                class="error"
+                                                :title="scope.error"
+                                            >{{ scope.error }}</p>
+                                        </template>
+                                    </el-form-item>
+                                    <span
+                                        v-else
+                                        :class="{color_yes:  scope.row.isFinanceData === '1', color_no:  scope.row.isFinanceData === '0'}"
+                                    >{{ scope.row.isFinanceData === '0' ? '否' : scope.row.isFinanceData === '1' ? '是' : '' }}</span>
+                                </template>
+                            </el-table-column>
+                            <el-table-column
+                                sortable
+                                prop="mes_prodline"
+                                label="MES产线"
+                                min-width="100px"
+                                :show-overflow-tooltip="true"
+                            > <template slot-scope="scope">
+                                    <el-form-item
+                                        v-if="scope.row.isSelection"
+                                        :prop="scope.row.itemid + '.mes_prodline'"
+                                        :rules="dialog.editorBox.form.rules.mes_prodline"
+                                    >
+                                        <el-input
+                                            clearable
+                                            style="width: 100%;"
+                                            v-model.trim="tableFormDataObj[scope.row.itemid].mes_prodline"
+                                        ></el-input>
+                                    </el-form-item>
+                                    <span v-else>{{scope.row.mes_prodline}}</span>
+                                </template>
+                            </el-table-column>
+                              <el-table-column
+                                sortable
+                                prop="digits"
+                                label="精度"
+                                width="90px"
+                                :show-overflow-tooltip="true"
+                            ><template slot-scope="scope">
+                                    <el-form-item
+                                        v-if="scope.row.isSelection"
+                                        :prop="scope.row.itemid + '.digits'"
+                                        :rules="dialog.editorBox.form.rules.digits"
+                                    >
+                                        <el-input
+                                            clearable
+                                            style="width: 100%;"
+                                            v-model.trim="tableFormDataObj[scope.row.itemid].digits"
+                                        ></el-input>
+                                    </el-form-item>
+                                    <span v-else>{{scope.row.digits}}</span>
+                                </template></el-table-column>
+                            <el-table-column
+                                sortable
+                                prop="code"
+                                label="使用公式编辑"
+                                min-width="100px"
+                                :show-overflow-tooltip="true"
+                            > <template slot-scope="scope">
+                                    <el-form-item
+                                        v-if="scope.row.isSelection"
+                                        :prop="scope.row.itemid + '.code'"
+                                        :rules="dialog.editorBox.form.rules.code"
+                                    >
+                                        <el-select
+                                            filterable
+                                            clearable
+                                            style="width: 100%;"
+                                            v-model="tableFormDataObj[scope.row.itemid].code"
+                                        >
+                                            <el-option
+                                                label="是"
+                                                value="1"
+                                            ></el-option>
+                                            <el-option
+                                                label="否"
+                                                value="0"
+                                            ></el-option>
+                                        </el-select>
+                                        <template
+                                            slot="error"
+                                            slot-scope="scope"
+                                        >
+                                            <p
+                                                class="error"
+                                                :title="scope.error"
+                                            >{{ scope.error }}</p>
+                                        </template>
+                                    </el-form-item>
+                                    <span
+                                        v-else
+                                        :class="{color_yes:  scope.row.code === '1', color_no:  scope.row.code === '0'}"
+                                    >{{ scope.row.code === '0' ? '否' : scope.row.code === '1' ? '是' : '' }}</span>
+                                </template>
+                            </el-table-column>
+                            <el-table-column
+                                sortable
+                                prop="createman"
+                                label="创建人"
+                                width="60px"
+                                :show-overflow-tooltip="true"
+                            ></el-table-column>
+                            <el-table-column
+                                sortable
+                                prop="createtime"
+                                label="创建时间"
+                                width="125px"
+                                :show-overflow-tooltip="true"
+                            ></el-table-column>
+                            <el-table-column
+                                sortable
+                                prop="updateman"
+                                label="修改人"
+                                width="60px"
+                                :show-overflow-tooltip="true"
+                            ></el-table-column>
+                            <el-table-column
+                                sortable
+                                prop="updatetime"
+                                label="修改时间"
+                                width="125px"
+                                :show-overflow-tooltip="true"
+                            ></el-table-column>
+                            <el-table-column
+                                class-name="gn-TableDownloadExcel-none"
+                                label="操作"
+                                align="center"
+                                width="90px"
+                                fixed="right"
+                            >
+                                <template slot-scope="scope">
+                                    <div>
+                                        <el-button
+                                            type="primary"
+                                            size="mini"
+                                            @click="but_equationEditing(scope.row)"
+                                            :disabled="scope.row.code === '0'"
+                                        >公式编辑</el-button>
+                                        <!-- <el-button
+                                        type="primary"
+                                        size="mini"
+                                        v-privilege="activeMenu + 'PUT'"
+                                        @click="but_edit(scope.row)"
+                                    >修改</el-button>
+                                    <el-button
+                                        type="danger"
+                                        size="mini"
+                                        v-privilege="activeMenu + 'DELETE'"
+                                        @click="but_del(scope.row)"
+                                    >删除</el-button> -->
+                                    </div>
+                                </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="95px"
+                >
+                    <el-row>
+                        <el-col :span="12">
+                            <el-form-item
+                                label="原材料"
+                                prop="materialid"
+                            >
+                                <el-select
+                                    filterable
+                                    clearable
+                                    style="width: 100%;"
+                                    v-model="dialog.editorBox.form.data.materialid"
+                                    :disabled="dialog.editorBox.type !== 'add'"
+                                >
+                                    <el-option
+                                        v-for="item of nameObj.materialid.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="workprocid"
+                            >
+                                <el-select
+                                    filterable
+                                    clearable
+                                    style="width: 100%;"
+                                    v-model="dialog.editorBox.form.data.workprocid"
+                                    disabled
+                                >
+                                    <el-option
+                                        v-for="item of nameObj.workprocid.arr"
+                                        :key="item.id"
+                                        :value="item.id"
+                                        :label="item.name"
+                                    ></el-option>
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                    <el-row>
+                        <el-col :span="12">
+                            <el-form-item
+                                label="单位"
+                                prop="unitid"
+                            >
+                                <el-select
+                                    filterable
+                                    clearable
+                                    style="width: 100%;"
+                                    v-model="dialog.editorBox.form.data.unitid"
+                                >
+                                    <el-option
+                                        v-for="item of nameObj.unitid.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="seqno"
+                            >
+                                <el-input
+                                    clearable
+                                    style="width: 100%;"
+                                    v-model="dialog.editorBox.form.data.seqno"
+                                ></el-input>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                    <el-row>
+                        <el-col :span="12">
+                            <el-form-item
+                                label="使用公式编辑"
+                                prop="code"
+                            >
+                                <el-select
+                                    filterable
+                                    clearable
+                                    style="width: 100%;"
+                                    v-model="dialog.editorBox.form.data.code"
+                                >
+                                    <el-option
+                                        value="0"
+                                        label="否"
+                                    ></el-option>
+                                    <el-option
+                                        value="1"
+                                        label="是"
+                                    ></el-option>
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item
+                                label="MES产线"
+                                prop="mes_prodline"
+                            >
+                                <el-input
+                                    clearable
+                                    style="width: 100%;"
+                                    :maxlength="40"
+                                    v-model="dialog.editorBox.form.data.mes_prodline"
+                                ></el-input>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                    <el-row>
+                           <el-col :span="12">
+                            <el-form-item
+                                label="精度"
+                                prop="digits"
+                            >
+                                <el-input
+                                    clearable
+                                    style="width: 100%;"
+                                    :maxlength="40"
+                                    v-model="dialog.editorBox.form.data.digits"
+                                ></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>
+        <zj-formulaEditor :equationEditing="dialog.equationEditing"></zj-formulaEditor>
+    </div>
+</template>
+
+<script>
+import formulaEditor from '@/components/zg/formulaEditor.vue';
+import { zCheckNumber1 } from '@/utils/validator.js';
+import { formatDate } from '@/utils/util.js';
+export default {
+    name: 'processAndMaterial',
+    components: {
+        'zj-formulaEditor': formulaEditor
+    },
+    data () {
+        return {
+            multipleSelection: [],
+            tableFormDataObj: {},
+            activeMenu: '',
+            filterForm: {
+                show: true,
+                data: {
+                    materialid: '',
+                    workprocid: '',
+                    version: formatDate(new Date(), 'yyyyMM00'),
+                    aid: '',
+                    materialCode: ''
+                },
+                rules: {
+
+                }
+            },
+            listTopicTree: {
+                show: true,
+                loading: false,
+                data: [],
+                defaultProps: {
+                    children: 'children',
+                    label: 'name'
+                }
+            },
+            pageNum: 1,
+            pageSize: 20,
+            total: 0,
+            singleTableHeight: 100,
+            tableData: [
+                // {
+                //     itemid: '010000C001R',
+                //     materialid: '混合矿',
+                //     workprocid: '球团',
+                //     unitid: '吨',
+                //     seqno: '1'
+                // }
+            ],
+            nameObj: {
+                workprocid: {
+                    obj: {},
+                    arr: []
+                },
+                materialid: {
+                    obj: {},
+                    arr: []
+                },
+                unitid: {
+                    obj: {},
+                    arr: []
+                }
+            },
+            loading: false,
+            tableLoading: false,
+            dialog: {
+                editorBox: {
+                    show: false,
+                    type: '',
+                    form: {
+                        default: {
+                            workprocid: ''
+                        },
+                        data: {
+                            itemid: '',
+                            materialid: '',
+                            workprocid: '',
+                            unitid: '',
+                            seqno: '',
+                            mes_prodline: '',
+                            code: '',
+                            digits: ''
+                        },
+                        rules: {
+                            materialid: [
+                                { required: true, message: '该项不能为空', trigger: 'change' }
+                            ],
+                            workprocid: [
+                                { required: true, message: '该项不能为空', trigger: 'change' }
+                            ],
+                            seqno: [
+                                { validator: zCheckNumber1, trigger: 'change' }
+                            ],
+                            mes_prodline: [
+                            ],
+                            digits: []
+                        }
+                    }
+                },
+                equationEditing: {
+                    show: false,
+                    form: {
+                        data: {
+                            clock: '',
+                            code: ''
+                        }
+                    }
+                }
+            }
+        }
+    },
+    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.getMaterialIdData();
+        that.getUnitIdData();
+        that.getTableData();
+    },
+    methods: {
+        //  计算树区域高度
+        getRoleHeight (dom) {
+            return window.innerHeight - dom.offsetTop;
+        },
+        // 获取工序列表
+        getNodeData () {
+            let that = this
+            let url = 'pass/ems/v1/trmworkprocs/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] = item.name;
+                        }
+                        that.nameObj.workprocid.arr = arr;
+                        that.nameObj.workprocid.obj = obj;
+                    } else {
+                        that.$message.error(res.message);
+                    }
+                });
+        },
+        // 获取工序节点树
+        getNodeTreeData () {
+            let that = this
+            let url = 'pass/ems/v1/trmworkprocs/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;
+                });
+        },
+        // 获取原材料
+        getMaterialIdData () {
+            let that = this
+            let url = 'pass/ems/v1/trmmaterials/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] = item.name;
+                        }
+                        that.nameObj.materialid.arr = arr;
+                        that.nameObj.materialid.obj = obj;
+                    } else {
+                        that.$message.error(res.message);
+                    }
+                });
+        },
+        // 获取标准计量单位
+        getUnitIdData () {
+            let that = this
+            let url = 'pass/ems/v1/trmunits/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] = item.name;
+                            if (item.name === '吨') {
+                                that.nameObj.unitid.defaults = that.nameObj.unitid.defaults ? that.nameObj.unitid.defaults : item.id;
+                            }
+                        }
+                        that.nameObj.unitid.arr = arr;
+                        that.nameObj.unitid.obj = obj;
+                    } else {
+                        that.$message.error(res.message);
+                    }
+                });
+        },
+        // 获取表格中的数据
+        getTableData (pageNum) {
+            let that = this,
+                params = {
+                    materialid: that.filterForm.data.materialid,
+                    workprocid: that.filterForm.data.workprocid,
+                    version: that.filterForm.data.version,
+                    itemid: that.filterForm.data.aid,
+                    mes_materialcode: that.filterForm.data.materialCode
+                };
+            that.pageNum = pageNum || that.pageNum;
+            that.tableLoading = true;
+            that.dialog.editorBox.form.default.workprocid = that.filterForm.data.workprocid;
+            let url = 'pass/ems/v1/trmworkprocmaterials/like/?pageNum=' + that.pageNum + '&pageSize=' + that.pageSize + '&itemtype=R';
+            that.axios.get(url, {
+                params: params
+            })
+                .then(function (res) {
+                    if (res.code === '0') {
+                        let arr = [];
+                        for (let item of res.data.list) {
+                            arr.push({
+                                itemid: item.itemid,
+                                materialid: item.materialid,
+                                workprocid: item.workprocid,
+                                unitid: item.unitid,
+                                seqno: item.seqno,
+                                mes_materialcode: item.mesMaterialcode,
+                                isFinanceData: item.isfinancedata,
+                                mes_prodline: item.mesProdline,
+                                code: item.code,
+                                createman: item.createman,
+                                createtime: item.createtime,
+                                updateman: item.updateman,
+                                updatetime: item.updatetime,
+                                digits: item.digits
+                            })
+                        }
+                        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.materialid = '';
+            that.filterForm.data.workprocid = '';
+            that.filterForm.data.version = '';
+            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.itemid;
+                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_add () {
+            let that = this;
+            if (!that.dialog.editorBox.form.default.workprocid) {
+                that.$message.error('请先选择左侧的详细工序');
+                return;
+            }
+            that.dialog.editorBox.form.data.itemid = '';
+            that.dialog.editorBox.form.data.materialid = '';
+            that.dialog.editorBox.form.data.mes_prodline = '';
+            that.dialog.editorBox.form.data.workprocid = that.dialog.editorBox.form.default.workprocid;
+            that.dialog.editorBox.form.data.unitid = that.nameObj.unitid.defaults ? that.nameObj.unitid.defaults : '';
+            that.dialog.editorBox.form.data.seqno = '';
+            that.dialog.editorBox.form.data.code = '0';
+            that.dialog.editorBox.type = 'add';
+            that.dialog.editorBox.show = true;
+            setTimeout(() => {
+                that.$refs['dialog_form'].clearValidate();
+            }, 100);
+        },
+        // 批量修改
+        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({
+                                itemid: that.tableFormDataObj[key].itemid,
+                                unitid: that.tableFormDataObj[key].unitid,
+                                seqno: that.tableFormDataObj[key].seqno,
+                                code: that.tableFormDataObj[key].code,
+                                isFinanceData: that.tableFormDataObj[key].isFinanceData,
+                                mes_prodline: that.tableFormDataObj[key].mes_prodline,
+                                digits: that.tableFormDataObj[key].digits
+                            });
+                        }
+                        that.loading = true;
+                        that.axios.put('pass/ems/v1/trmworkprocmaterials/', 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.itemid);
+                }
+                that.$confirm('是否删除已选数据?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    state: 'warning'
+                }).then(() => {
+                    that.axios.delete('pass/ems/v1/trmworkprocmaterials/' + 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('至少要选择一条数据');
+            }
+        },
+        // but_edit (row) {
+        //     let that = this;
+        //     that.dialog.editorBox.form.data.itemid = row.itemid;
+        //     that.dialog.editorBox.form.data.materialid = row.materialid;
+        //     that.dialog.editorBox.form.data.workprocid = row.workprocid;
+        //     that.dialog.editorBox.form.data.unitid = row.unitid;
+        //     that.dialog.editorBox.form.data.seqno = row.seqno;
+        //     that.dialog.editorBox.form.data.code = row.code;
+        //     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/trmworkprocmaterials/' + row.itemid)
+        //             .then(function (res) {
+        //                 if (res.code === '0') {
+        //                     that.$message({
+        //                         message: '删除成功',
+        //                         type: 'success'
+        //                     });
+        //                     that.getTableData();
+        //                 } else {
+        //                     that.$message.error(res.message);
+        //                 }
+        //             }).catch(function () {
+        //             });
+        //     }).catch(() => {
+        //     });
+        // },
+        dataSave () {
+            let that = this;
+            let SubmitData = {
+                itemid: that.dialog.editorBox.form.data.itemid,
+                materialid: that.dialog.editorBox.form.data.materialid,
+                workprocid: that.dialog.editorBox.form.data.workprocid,
+                unitid: that.dialog.editorBox.form.data.unitid,
+                seqno: that.dialog.editorBox.form.data.seqno,
+                code: that.dialog.editorBox.form.data.code,
+                mes_prodline: that.dialog.editorBox.form.data.mes_prodline,
+                digits: that.dialog.editorBox.form.data.digits,
+                itemtype: 'R'
+            };
+            that.$refs['dialog_form'].validate((valid) => {
+                if (valid) {
+                    if (that.dialog.editorBox.type === 'add') {
+                        that.loading = true;
+                        that.axios.post('pass/ems/v1/trmworkprocmaterials/', SubmitData, {
+                            contentType: 'application/json'
+                        })
+                            .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 {
+                        that.loading = true;
+                        that.axios.put('pass/ems/v1/trmworkprocmaterials/' + SubmitData.itemid, 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;
+                            });
+                    }
+                }
+            });
+        },
+        but_equationEditing (row) {
+            let that = this;
+            that.dialog.equationEditing.form.data.clock = that.filterForm.data.version;
+            that.dialog.equationEditing.form.data.code = row.itemid;
+            that.dialog.equationEditing.show = true;
+        },
+        selectByTopicId (data) {
+            let that = this;
+            that.filterForm.data.workprocid = data.id;
+            that.getTableData(1);
+        }
+    }
+}
+</script>
+
+<style lang="less">
+.processAndMaterial {
+    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>

+ 0 - 0
src/views/energyOperationSupport/components/securitys/Securitys.vue