Procházet zdrojové kódy

原材料消耗和产品实绩增加修改人,修改时间

zhangy před 2 roky
rodič
revize
430d58a0b8

+ 33 - 1
src/views/energyBalance/components/processAndRawMaterials.vue

@@ -334,6 +334,34 @@
                             label="备注"
                             min-width="100px"
                             :show-overflow-tooltip="true"
+                        ></el-table-column>
+                        <el-table-column
+                              sortable
+                              prop="USERID"
+                              label="创建人"
+                              min-width="100px"
+                              :show-overflow-tooltip="true"
+                          ></el-table-column>
+                         <el-table-column
+                            sortable
+                            prop="UPDATETIME"
+                            label="创建时间"
+                            min-width="100px"
+                            :show-overflow-tooltip="true"
+                        ></el-table-column>
+                         <el-table-column
+                              sortable
+                              prop="UPMAN"
+                              label="更新人"
+                              min-width="100px"
+                              :show-overflow-tooltip="true"
+                          ></el-table-column>
+                         <el-table-column
+                            sortable
+                            prop="UPTIME"
+                            label="更新时间"
+                            min-width="100px"
+                            :show-overflow-tooltip="true"
                         ></el-table-column>
                         <!-- <el-table-column
                             class-name="gn-TableDownloadExcel-none"
@@ -671,7 +699,11 @@ export default {
                                 ucvalue: item.UCVALUE,
                                 sumucvalue: item.SUMUCVALUE,
                                 unitid: item.UNITID,
-                                bz: item.BZ
+                                bz: item.BZ,
+                                USERID: item.USERID,
+                                UPDATETIME: item.UPDATETIME,
+                                UPTIME: item.UPTIME,
+                                UPMAN: item.UPMAN
                             })
                         }
                         that.tableData = arr;

+ 1028 - 996
src/views/energyBalance/components/production.vue

@@ -1,996 +1,1028 @@
-<template>
-    <!-- 实绩产量管理 -->
-    <div class="production">
-        <div class="box">
-            <div class="box-top">
-                <el-form
-                    style="overflow: hidden;"
-                    :style="filterForm.show ? null : { height: '0px' }"
-                    size="mini"
-                    label-width="70px"
-                >
-                    <el-row>
-                        <el-col :span="6">
-                            <el-form-item label="时间粒度">
-                                <el-select
-                                    filterable clearable
-                                    v-model="filterForm.data.timegranid"
-                                    placeholder=""
-                                    style="width: 100%;"
-                                >
-                                    <el-option
-                                        v-for="item of nameObj.timegranid.arr"
-                                        :key="item.id"
-                                        :value="item.id"
-                                        :label="item.name"
-                                    ></el-option>
-                                </el-select>
-                            </el-form-item>
-                        </el-col>
-                        <el-col :span="6">
-                            <el-form-item label="时间范围">
-                                <!-- <el-date-picker
-                                    v-model="filterForm.data.clock"
-                                    type="daterange"
-                                    placeholder=""
-                                    style="width: 100%;"
-                                    :value-format="filterForm.data.timegranid === 'DAY' ? 'yyyy-MM-dd' : 'yyyy-MM'"
-                                    :format="filterForm.data.timegranid === 'DAY' ? 'yyyy-MM-dd' : 'yyyy-MM'"
-                                    :disabled="filterForm.data.timegranid === ''"
-                                ></el-date-picker> -->
-                                <zj-timegran-date
-                                    v-model="filterForm.data.clock"
-                                    type="daterange"
-                                    style="width: 100%;"
-                                    :timegranId="filterForm.data.timegranid"
-                                    :oneFoo="getTableData"
-                                    :defaultOffset="-1"
-                                ></zj-timegran-date>
-                            </el-form-item>
-                        </el-col>
-                        <el-col :span="6">
-                            <el-form-item label="产品">
-                                <el-select
-                                    filterable clearable
-                                    multiple
-                                    collapse-tags
-                                    v-model="filterForm.data.productid"
-                                    placeholder=""
-                                    style="width: 100%;"
-                                >
-                                    <el-option
-                                        v-for="item of nameObj.productid.arr"
-                                        :key="item.id"
-                                        :value="item.id"
-                                        :label="item.name"
-                                    ></el-option>
-                                </el-select>
-                            </el-form-item>
-                        </el-col>
-                        <el-col :span="6">
-                            <el-form-item label="工序">
-                                <el-select
-                                    filterable clearable
-                                    multiple
-                                    collapse-tags
-                                    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-row>
-                    <el-row>
-                        <el-col :span="6">
-                            <el-form-item label="主产品">
-                                <el-select
-                                    filterable clearable
-                                    v-model="filterForm.data.isprimary"
-                                    placeholder=""
-                                    style="width: 100%;"
-                                >
-                                    <el-option
-                                        value="0"
-                                        label="否"
-                                    ></el-option>
-                                    <el-option
-                                        value="1"
-                                        label="是"
-                                    ></el-option>
-                                </el-select>
-                            </el-form-item>
-                        </el-col>
-                        <el-col :span="6">
-                            <el-form-item label="项目编号">
-                                <el-input clearable
-                                    v-model.trim="filterForm.data.itemid"
-                                    placeholder="项目编号"
-                                    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-refresh"
-                    >重新计算</el-button> -->
-                        <el-button
-                        class="button"
-                        type="primary"
-                        size="mini"
-                        icon="el-icon-save"
-                        @click="but_more()"
-                    >修改</el-button>
-                        <el-button
-                        class="button"
-                        type="primary"
-                        size="mini"
-                        icon="el-icon-refresh"
-                        @click="but_re_compute()"
-                    >重新计算</el-button>
-                       <el-button
-                        class="button"
-                        type="primary"
-                        size="mini"
-                        v-privilege="activeMenu + 'PUT'"
-                        @click="but_redata()"
-                        :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
-                    show-summary
-                    :summary-method="getSummaries"
-                    @selection-change="handleSelectionChange"
-                >
-                 <el-table-column
-                            sortable
-                            type="selection"
-                            width="40"
-                            align="center"
-                            fixed="left"
-                        >
-                        </el-table-column>
-                    <el-table-column
-                        sortable
-                        prop="itemid"
-                        label="项目编号"
-                        min-width="100px"
-                        :show-overflow-tooltip="true"
-                    ></el-table-column>
-                    <el-table-column
-                        sortable
-                        prop="clock"
-                        label="时间"
-                        min-width="100px"
-                        :show-overflow-tooltip="true"
-                    ></el-table-column>
-                    <el-table-column
-                        sortable
-                        prop="WORKPROCNAME"
-                        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="PRODUCTNAME"
-                        label="产品"
-                        min-width="100px"
-                        :show-overflow-tooltip="true"
-                    >
-                        <!-- <template slot-scope="scope">
-                            <span>{{ nameObj.productid.obj[scope.row.productid] ? nameObj.productid.obj[scope.row.productid] : scope.row.productid }}</span>
-                        </template> -->
-                    </el-table-column>
-                    <el-table-column
-                        sortable
-                        prop="timegranid"
-                        label="时间粒度"
-                        min-width="100px"
-                        :show-overflow-tooltip="true"
-                    >
-                        <template slot-scope="scope">
-                            <span>{{ nameObj.timegranid.obj[scope.row.timegranid] ? nameObj.timegranid.obj[scope.row.timegranid] : scope.row.timegranid }}</span>
-                        </template>
-                    </el-table-column>
-                    <el-table-column
-                        sortable
-                        prop="isprimary"
-                        label="主产品"
-                        min-width="100px"
-                        :show-overflow-tooltip="true"
-                    >
-                        <template slot-scope="scope">
-                            <span :class="{color_yes:  scope.row.isprimary === '1', color_no:  scope.row.isprimary === '0'}">{{ scope.row.isprimary === '1' ? '是' :  scope.row.isprimary === '0' ? '否' :  scope.row.isprimary }}</span>
-                        </template>
-                    </el-table-column>
-                    <el-table-column
-                        sortable
-                        prop="actualvalue"
-                        label="计算值"
-                        min-width="80px"
-                        :show-overflow-tooltip="true"
-                    ></el-table-column>
-                    <el-table-column
-                        sortable
-                        prop="correctvalue"
-                        label="修正值"
-                        min-width="80px"
-                        :show-overflow-tooltip="true"
-                    >
-                      <template slot-scope="scope">
-                                <el-form-item
-                                    v-if="scope.row.isSelection"
-                                > <el-input clearable
-                                        style="width: 90%;"
-                                        v-model="tableFormDataObj[scope.row.itemid].correctvalue"
-                                        refcous="true"
-                                        @change="correctvalueChange(scope.row.itemid)"
-                                    ></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.correctvalue}}</span>
-                            </template>
-                            </el-table-column>
-                    <el-table-column
-                        sortable
-                        prop="apportvalue"
-                        label="最终值"
-                        min-width="80px"
-                        :show-overflow-tooltip="true"
-                    ><template slot-scope="scope">
-                                <el-form-item
-                                    v-if="scope.row.isSelection"
-                                > <el-input clearable
-                                        style="width: 90%;"
-                                        v-model="tableFormDataObj[scope.row.itemid].apportvalue"
-                                        refcous="true"
-                                        @change="apportvalueChange(scope.row.itemid)"
-                                    ></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.apportvalue}}</span>
-                            </template>
-                    </el-table-column>
-                   <!-- <el-table-column
-                        sortable
-                        prop="sumvalue"
-                        label="累计值"
-                        min-width="100px"
-                        :show-overflow-tooltip="true"
-                    ></el-table-column>-->
-                    <el-table-column
-                        sortable
-                        prop="UNITNAME"
-                        label="单位"
-                        min-width="100px"
-                        :show-overflow-tooltip="true"
-                    >
-                        <!-- <template slot-scope="scope">
-                            <span>{{ 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="bz"
-                        label="备注"
-                        min-width="100px"
-                        :show-overflow-tooltip="true"
-                    ></el-table-column>
-                    <!-- <el-table-column
-                        class-name="gn-TableDownloadExcel-none"
-                        label="操作"
-                        align="center"
-                        width="75px"
-                        fixed="right"
-                    >
-                        <template slot-scope="scope">
-                            <div>
-                                <el-button
-                                    type="primary"
-                                    size="mini"
-                                    v-privilege="activeMenu + 'PUT'"
-                                    @click="but_edit(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>
-        <el-dialog
-            :title="'实绩产量信息 - ' + (dialog.editorBox.type === 'add' ? '新增' : '修改')"
-            :visible.sync="dialog.editorBox.show"
-            width="300px"
-            :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="60px"
-                >
-                    <el-form-item label="计算值">
-                        <el-input clearable
-                            style="width: 100%;"
-                            v-model="dialog.editorBox.form.data.actualvalue"
-                            readonly
-                        ></el-input>
-                    </el-form-item>
-                    <el-form-item
-                        label="修正值"
-                        prop="correctvalue"
-                    >
-                        <el-input clearable
-                            style="width: 100%;"
-                            v-model="dialog.editorBox.form.data.correctvalue"
-                            @change="dialog.editorBox.form.data.apportvalue = floatComputed(dialog.editorBox.form.data.actualvalue, dialog.editorBox.form.data.correctvalue, '+')"
-                        ></el-input>
-                    </el-form-item>
-                    <el-form-item
-                        label="最终值"
-                        prop="apportvalue"
-                    >
-                        <el-input clearable
-                            style="width: 100%;"
-                            v-model="dialog.editorBox.form.data.apportvalue"
-                            @change="dialog.editorBox.form.data.correctvalue = floatComputed(dialog.editorBox.form.data.apportvalue, dialog.editorBox.form.data.actualvalue, '-')"
-                        ></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="dataSave"
-                    :loading="loading"
-                >保 存</el-button>
-            </span>
-        </el-dialog>
-    </div>
-</template>
-
-<script>
-import { zCheckNumber1 } from '~/utils/validator.js'
-import timegranDate from '~/components/zg/timegranDate.vue'
-import {formatDate, XtcommonSummaries} from '@/utils/util.js';
-export default {
-    name: 'production',
-    components: {
-        'zj-timegran-date': timegranDate
-    },
-    data () {
-        return {
-            activeMenu: '',
-            filterForm: {
-                show: true,
-                data: {
-                    timegranid: '',
-                    clock: '',
-                    productid: '',
-                    workprocid: '',
-                    isprimary: '',
-                    itemid: ''
-                },
-                rules: {
-
-                }
-            },
-            pageNum: 1,
-            pageSize: 50,
-            total: 0,
-            singleTableHeight: 100,
-            tableData: [
-                // {
-                //     itemid: '010000C001R',
-                //     clock: '2017-07-24',
-                //     workprocid: '球团', // ?
-                //     productid: '球团', // ?
-                //     timegranid: '日',
-                //     isprimary: '否', // ?
-                //     actualvalue: '0',
-                //     correctvalue: '0',
-                //     apportvalue: '0',
-                //     sumvalue: '0',
-                //     unitid: '吨', // ?
-                //     bz: '',
-                // }
-            ],
-            nameObj: {
-                timegranid: {
-                    obj: {},
-                    arr: []
-                },
-                productid: {
-                    obj: {},
-                    arr: []
-                },
-                workprocid: {
-                    obj: {},
-                    arr: []
-                },
-                unitid: {
-                    obj: {},
-                    arr: []
-                }
-            },
-            loading: false,
-            tableLoading: false,
-            dialog: {
-                editorBox: {
-                    show: false,
-                    type: '',
-                    form: {
-                        data: {
-                            itemid: '',
-                            itemtype: '',
-                            clock: '',
-                            timegranid: '',
-                            actualvalue: '',
-                            correctvalue: '',
-                            apportvalue: ''
-                        },
-                        rules: {
-                            correctvalue: [
-                                { required: true, message: '该项不能为空', trigger: 'change' },
-                                { validator: zCheckNumber1, trigger: 'change' }
-                            ],
-                            apportvalue: [
-                                { required: true, message: '该项不能为空', trigger: 'change' },
-                                { validator: zCheckNumber1, trigger: 'change' }
-                            ]
-                        }
-                    }
-                }
-            },
-            tableFormDataObj: {}
-        }
-    },
-    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.getTimeGranData();
-        that.getProductIdData();
-        that.getWorkprocIdData();
-        that.getUnitIdData();
-        // that.getTableData();
-    },
-    methods: {
-        //  计算树区域高度
-        getRoleHeight (dom) {
-            return window.innerHeight - dom.offsetTop;
-        },
-        // 自定义的表格合计方法:只给指定列进行合计
-        getSummaries (param) {
-            const prop = ['actualvalue', 'correctvalue', 'apportvalue', 'sumvalue']; // 合计列绑定的prop
-            return XtcommonSummaries(param, prop);
-        },
-        // 获取时间粒度(实绩产量管理)
-        getTimeGranData () {
-            let that = this
-            let url = 'pass/ems/v1/tcmdatasourcetimegrans/getTimegranRmWorkprocProductValue';
-            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.filterForm.data.timegranid = that.filterForm.data.timegranid ? that.filterForm.data.timegranid : item.ID;
-                        }
-                        that.nameObj.timegranid.arr = arr;
-                        that.nameObj.timegranid.obj = obj;
-                    } else {
-                        that.$message.error(res.message);
-                    }
-                });
-        },
-        // 获取产品
-        getProductIdData () {
-            let that = this
-            let url = 'pass/ems/v1/trmproducts/?pageSize=1000000';
-            that.axios.get(url)
-                .then(function (res) {
-                    if (res.code === '0') {
-                        let arr = [];
-                        let obj = {};
-                        for (let item of res.data.list) {
-                            arr.push({
-                                id: item.id,
-                                name: item.name
-                            })
-                            obj[item.id] = item.name;
-                        }
-                        that.nameObj.productid.arr = arr;
-                        that.nameObj.productid.obj = obj;
-                    } else {
-                        that.$message.error(res.message);
-                    }
-                });
-        },
-        // 获取工序(产出)
-        getWorkprocIdData () {
-            let that = this
-            let url = 'pass/ems/v1/trmworkprocs/getIdAndName?hasproduct=1';
-            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);
-                    }
-                });
-        },
-        // 获取标准计量单位
-        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 = {
-                    timegranid: that.filterForm.data.timegranid,
-                    clock: that.filterForm.data.clock[0],
-                    clocke: that.filterForm.data.clock[1],
-                    productid: that.filterForm.data.productid.toString(),
-                    workprocid: that.filterForm.data.workprocid.toString(),
-                    isprimary: that.filterForm.data.isprimary,
-                    itemid: that.filterForm.data.itemid
-                };
-            that.pageNum = pageNum || that.pageNum;
-            that.tableLoading = true;
-            let url = 'pass/ems/v1/trmworkprocproductvalues/?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,
-                                itemtype: item.ITEMTYPE,
-                                clock: item.CLOCK,
-                                workprocid: item.WORKPROCID, // ?
-                                productid: item.PRODUCTID, // ?
-                                timegranid: item.TIMEGRANID,
-                                isprimary: item.ISPRIMARY, // ?
-                                actualvalue: item.ACTUALVALUE,
-                                correctvalue: item.CORRECTVALUE,
-                                apportvalue: item.APPORTVALUE,
-                                sumvalue: item.SUMVALUE,
-                                unitid: item.UNITID, // ?
-                                bz: item.BZ,
-                                // 名称
-                                PRODUCTNAME: item.PRODUCTNAME,
-                                WORKPROCNAME: item.WORKPROCNAME,
-                                UNITNAME: item.UNITNAME
-                            })
-
-                            //                  {
-                            //     "CORRECTVALUE":0,
-                            //     "ACTUALVALUE":2662.821,
-                            //     "UNITID":"008",
-                            //     "ITEMTYPE":"R",
-                            //     "PRODUCTID":"CP67",
-                            //     "PRODUCTNAME":"二体系︱方坯HRB400EP2︱150*150︱11200",
-                            //     "TIMEGRANID":"DAY",
-                            //     "LOCKID":null,
-                            //     "ROW_ID":1,
-                            //     "UNITNAME":"吨",
-                            //     "WORKPROCID":"ZY8200",
-                            //     "ISLOCK":null,
-                            //     "SUMVALUE":0,
-                            //     "APPORTVALUE":0,
-                            //     "ISPRIMARY":"1",
-                            //     "WORKPROCNAME":"二炼钢",
-                            //     "BZ":"MES-2019/11/05 08:00:16 fid:201910170001",
-                            //     "ITEMID":"ZY8200CP67R",
-                            //     "CLOCK":"2019-10-17"
-                            // }
-                        }
-                        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.timegranid = '';
-            that.filterForm.data.clock = '';
-            that.filterForm.data.productid = '';
-            that.filterForm.data.workprocid = '';
-            that.getTableData(1);
-        },
-        but_edit (row) {
-            let that = this;
-            that.dialog.editorBox.form.data.itemid = row.itemid;
-            that.dialog.editorBox.form.data.itemtype = row.itemtype;
-            that.dialog.editorBox.form.data.clock = row.clock;
-            that.dialog.editorBox.form.data.timegranid = row.timegranid;
-            that.dialog.editorBox.form.data.actualvalue = row.actualvalue;
-            that.dialog.editorBox.form.data.correctvalue = row.correctvalue;
-            that.dialog.editorBox.form.data.apportvalue = row.apportvalue;
-            that.dialog.editorBox.type = 'edit';
-            that.dialog.editorBox.show = true;
-        },
-        dataSave () {
-            let that = this;
-            let SubmitData = {
-                itemid: that.dialog.editorBox.form.data.itemid,
-                itemtype: that.dialog.editorBox.form.data.itemtype,
-                clock: that.dialog.editorBox.form.data.clock,
-                timegranid: that.dialog.editorBox.form.data.timegranid,
-                correctvalue: that.dialog.editorBox.form.data.correctvalue,
-                apportvalue: that.dialog.editorBox.form.data.apportvalue
-            };
-            that.$refs['dialog_form'].validate((valid) => {
-                if (valid) {
-                    that.loading = true;
-                    that.axios.put('pass/ems/v1/trmworkprocproductvalues/updateForUKey/', 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_redata () {
-            let that = this;
-            if (!that.filterForm.data.clock) {
-                that.$message.warning('请选择日期');
-                return true;
-            }
-            if (!that.filterForm.data.timegranid) {
-                that.$message.warning('请选择时间粒度');
-                return true;
-            }
-            let params = {
-                    workprocid: that.filterForm.data.workprocid.toString(),
-                    timegranid: that.filterForm.data.timegranid,
-                    clock: that.filterForm.data.clock[0],
-                    clocke: that.filterForm.data.clock[1],
-                    correctvalue: that.filterForm.data.correctvalue,
-                    apportvalue: that.filterForm.data.apportvalue,
-                    itemid: that.filterForm.data.itemid
-            };
-            that.$confirm('是否重新生成数据?', '提示', {
-                confirmButtonText: '确定',
-                cancelButtonText: '取消',
-                state: 'warning'
-            }).then(() => {
-                that.loading = true;
-                let url = 'pass/ems/v1/trmworkprocproductvalues/restatWpv'
-                that.axios.get(url, {
-                    params: params
-                })
-                    .then(function (res) {
-                        if (res.code === '0') {
-                            if (res.message && res.message !== '操作成功') {
-                                that.$message.warning('重新生成数据成功, 其中【' + res.message + '】');
-                            } else {
-                                that.$message({
-                                    message: '重新生成数据成功',
-                                    type: 'success'
-                                });
-                            }
-                            that.getTableData();
-                        } else {
-                            that.$message.error(res.message);
-                        }
-                        that.loading = false;
-                    }).catch(function () {
-                        that.loading = false;
-                    });
-            }).catch(() => {
-            });
-        },
-          // 修改多条数据
-        but_more () {
-            let that = this;
-            let url = 'pass/ems/v1/trmworkprocproductvalues/batchUpdate/';
-            let submitData = [];
-            for (let item in that.tableFormDataObj) {
-                submitData.push({
-                    itemid: that.tableFormDataObj[item].itemid,
-                    clock: that.tableFormDataObj[item].clock,
-                    timegranid: that.tableFormDataObj[item].timegranid,
-                    correctvalue: that.tableFormDataObj[item].correctvalue,
-                    apportvalue: that.tableFormDataObj[item].apportvalue
-                })
-            }
-            that.axios.put(url, 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;
-                });
-        },
-        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;
-            console.log(that.tableFormDataObj)
-            this.multipleSelection = val;
-        },
-          // 修改修正值
-        correctvalueChange (id) {
-            let that = this;
-            let apportvalue = that.floatComputed(that.tableFormDataObj[id].correctvalue, that.tableFormDataObj[id].actualvalue, '+');
-            that.tableFormDataObj[id].apportvalue = apportvalue;
-        },
-        // 修改最终值
-        apportvalueChange (id) {
-            let that = this;
-            let correctvalue = that.floatComputed(that.tableFormDataObj[id].apportvalue, that.tableFormDataObj[id].actualvalue, '-');
-            that.tableFormDataObj[id].correctvalue = correctvalue;
-        },
-        // 批量重新计算
-        but_re_compute () {
-            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({
-                                clock: that.tableFormDataObj[key].clock,
-                                timegranid: that.tableFormDataObj[key].timegranid,
-                                itemid: that.tableFormDataObj[key].itemid
-                            });
-                        }
-                        that.loading = true;
-                        that.axios.put('pass/ems/v1/trmworkprocproductvalues/batchCompute', SubmitData)
-                            .then(function (res) {
-                                if (res.code === '0') {
-                                    that.$message({
-                                        message: '重新计算成功',
-                                        type: 'success'
-                                    });
-                                    that.getTableData();
-                                } else {
-                                    that.$message.error(res.message);
-                                }
-                                that.loading = false;
-                            }).catch(function () {
-                                that.loading = false;
-                            });
-                    }
-                });
-            } else {
-                this.$message.error('至少要选择一条数据');
-            }
-        }
-    }
-}
-</script>
-
-<style lang="less">
-.production {
-    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;
-                // margin-top: -7px;
-                padding: 7px 0;
-                border-top: 1px solid #ccc;
-                // border-bottom: 1px solid #ccc;
-                // margin-bottom: 6px;
-            }
-        }
-    }
-    .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>
+<template>
+    <!-- 实绩产量管理 -->
+    <div class="production">
+        <div class="box">
+            <div class="box-top">
+                <el-form
+                    style="overflow: hidden;"
+                    :style="filterForm.show ? null : { height: '0px' }"
+                    size="mini"
+                    label-width="70px"
+                >
+                    <el-row>
+                        <el-col :span="6">
+                            <el-form-item label="时间粒度">
+                                <el-select
+                                    filterable clearable
+                                    v-model="filterForm.data.timegranid"
+                                    placeholder=""
+                                    style="width: 100%;"
+                                >
+                                    <el-option
+                                        v-for="item of nameObj.timegranid.arr"
+                                        :key="item.id"
+                                        :value="item.id"
+                                        :label="item.name"
+                                    ></el-option>
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="6">
+                            <el-form-item label="时间范围">
+                                <!-- <el-date-picker
+                                    v-model="filterForm.data.clock"
+                                    type="daterange"
+                                    placeholder=""
+                                    style="width: 100%;"
+                                    :value-format="filterForm.data.timegranid === 'DAY' ? 'yyyy-MM-dd' : 'yyyy-MM'"
+                                    :format="filterForm.data.timegranid === 'DAY' ? 'yyyy-MM-dd' : 'yyyy-MM'"
+                                    :disabled="filterForm.data.timegranid === ''"
+                                ></el-date-picker> -->
+                                <zj-timegran-date
+                                    v-model="filterForm.data.clock"
+                                    type="daterange"
+                                    style="width: 100%;"
+                                    :timegranId="filterForm.data.timegranid"
+                                    :oneFoo="getTableData"
+                                    :defaultOffset="-1"
+                                ></zj-timegran-date>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="6">
+                            <el-form-item label="产品">
+                                <el-select
+                                    filterable clearable
+                                    multiple
+                                    collapse-tags
+                                    v-model="filterForm.data.productid"
+                                    placeholder=""
+                                    style="width: 100%;"
+                                >
+                                    <el-option
+                                        v-for="item of nameObj.productid.arr"
+                                        :key="item.id"
+                                        :value="item.id"
+                                        :label="item.name"
+                                    ></el-option>
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="6">
+                            <el-form-item label="工序">
+                                <el-select
+                                    filterable clearable
+                                    multiple
+                                    collapse-tags
+                                    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-row>
+                    <el-row>
+                        <el-col :span="6">
+                            <el-form-item label="主产品">
+                                <el-select
+                                    filterable clearable
+                                    v-model="filterForm.data.isprimary"
+                                    placeholder=""
+                                    style="width: 100%;"
+                                >
+                                    <el-option
+                                        value="0"
+                                        label="否"
+                                    ></el-option>
+                                    <el-option
+                                        value="1"
+                                        label="是"
+                                    ></el-option>
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="6">
+                            <el-form-item label="项目编号">
+                                <el-input clearable
+                                    v-model.trim="filterForm.data.itemid"
+                                    placeholder="项目编号"
+                                    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-refresh"
+                    >重新计算</el-button> -->
+                        <el-button
+                        class="button"
+                        type="primary"
+                        size="mini"
+                        icon="el-icon-save"
+                        @click="but_more()"
+                    >修改</el-button>
+                        <el-button
+                        class="button"
+                        type="primary"
+                        size="mini"
+                        icon="el-icon-refresh"
+                        @click="but_re_compute()"
+                    >重新计算</el-button>
+                       <el-button
+                        class="button"
+                        type="primary"
+                        size="mini"
+                        v-privilege="activeMenu + 'PUT'"
+                        @click="but_redata()"
+                        :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
+                    show-summary
+                    :summary-method="getSummaries"
+                    @selection-change="handleSelectionChange"
+                >
+                 <el-table-column
+                            sortable
+                            type="selection"
+                            width="40"
+                            align="center"
+                            fixed="left"
+                        >
+                        </el-table-column>
+                    <el-table-column
+                        sortable
+                        prop="itemid"
+                        label="项目编号"
+                        min-width="100px"
+                        :show-overflow-tooltip="true"
+                    ></el-table-column>
+                    <el-table-column
+                        sortable
+                        prop="clock"
+                        label="时间"
+                        min-width="100px"
+                        :show-overflow-tooltip="true"
+                    ></el-table-column>
+                    <el-table-column
+                        sortable
+                        prop="WORKPROCNAME"
+                        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="PRODUCTNAME"
+                        label="产品"
+                        min-width="100px"
+                        :show-overflow-tooltip="true"
+                    >
+                        <!-- <template slot-scope="scope">
+                            <span>{{ nameObj.productid.obj[scope.row.productid] ? nameObj.productid.obj[scope.row.productid] : scope.row.productid }}</span>
+                        </template> -->
+                    </el-table-column>
+                    <el-table-column
+                        sortable
+                        prop="timegranid"
+                        label="时间粒度"
+                        min-width="100px"
+                        :show-overflow-tooltip="true"
+                    >
+                        <template slot-scope="scope">
+                            <span>{{ nameObj.timegranid.obj[scope.row.timegranid] ? nameObj.timegranid.obj[scope.row.timegranid] : scope.row.timegranid }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                        sortable
+                        prop="isprimary"
+                        label="主产品"
+                        min-width="100px"
+                        :show-overflow-tooltip="true"
+                    >
+                        <template slot-scope="scope">
+                            <span :class="{color_yes:  scope.row.isprimary === '1', color_no:  scope.row.isprimary === '0'}">{{ scope.row.isprimary === '1' ? '是' :  scope.row.isprimary === '0' ? '否' :  scope.row.isprimary }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                        sortable
+                        prop="actualvalue"
+                        label="计算值"
+                        min-width="80px"
+                        :show-overflow-tooltip="true"
+                    ></el-table-column>
+                    <el-table-column
+                        sortable
+                        prop="correctvalue"
+                        label="修正值"
+                        min-width="80px"
+                        :show-overflow-tooltip="true"
+                    >
+                      <template slot-scope="scope">
+                                <el-form-item
+                                    v-if="scope.row.isSelection"
+                                > <el-input clearable
+                                        style="width: 90%;"
+                                        v-model="tableFormDataObj[scope.row.itemid].correctvalue"
+                                        refcous="true"
+                                        @change="correctvalueChange(scope.row.itemid)"
+                                    ></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.correctvalue}}</span>
+                            </template>
+                            </el-table-column>
+                    <el-table-column
+                        sortable
+                        prop="apportvalue"
+                        label="最终值"
+                        min-width="80px"
+                        :show-overflow-tooltip="true"
+                    ><template slot-scope="scope">
+                                <el-form-item
+                                    v-if="scope.row.isSelection"
+                                > <el-input clearable
+                                        style="width: 90%;"
+                                        v-model="tableFormDataObj[scope.row.itemid].apportvalue"
+                                        refcous="true"
+                                        @change="apportvalueChange(scope.row.itemid)"
+                                    ></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.apportvalue}}</span>
+                            </template>
+                    </el-table-column>
+                   <!-- <el-table-column
+                        sortable
+                        prop="sumvalue"
+                        label="累计值"
+                        min-width="100px"
+                        :show-overflow-tooltip="true"
+                    ></el-table-column>-->
+                    <el-table-column
+                        sortable
+                        prop="UNITNAME"
+                        label="单位"
+                        min-width="100px"
+                        :show-overflow-tooltip="true"
+                    >
+                        <!-- <template slot-scope="scope">
+                            <span>{{ 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="bz"
+                        label="备注"
+                        min-width="100px"
+                        :show-overflow-tooltip="true"
+                    ></el-table-column>
+                     <el-table-column
+                          sortable
+                          prop="USERID"
+                          label="创建人"
+                          min-width="100px"
+                          :show-overflow-tooltip="true"
+                      ></el-table-column>
+                     <el-table-column
+                        sortable
+                        prop="UPDATETIME"
+                        label="创建时间"
+                        min-width="100px"
+                        :show-overflow-tooltip="true"
+                    ></el-table-column>
+                     <el-table-column
+                          sortable
+                          prop="UPMAN"
+                          label="更新人"
+                          min-width="100px"
+                          :show-overflow-tooltip="true"
+                      ></el-table-column>
+                     <el-table-column
+                        sortable
+                        prop="UPTIME"
+                        label="更新时间"
+                        min-width="100px"
+                        :show-overflow-tooltip="true"
+                    ></el-table-column>
+                    <!-- <el-table-column
+                        class-name="gn-TableDownloadExcel-none"
+                        label="操作"
+                        align="center"
+                        width="75px"
+                        fixed="right"
+                    >
+                        <template slot-scope="scope">
+                            <div>
+                                <el-button
+                                    type="primary"
+                                    size="mini"
+                                    v-privilege="activeMenu + 'PUT'"
+                                    @click="but_edit(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>
+        <el-dialog
+            :title="'实绩产量信息 - ' + (dialog.editorBox.type === 'add' ? '新增' : '修改')"
+            :visible.sync="dialog.editorBox.show"
+            width="300px"
+            :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="60px"
+                >
+                    <el-form-item label="计算值">
+                        <el-input clearable
+                            style="width: 100%;"
+                            v-model="dialog.editorBox.form.data.actualvalue"
+                            readonly
+                        ></el-input>
+                    </el-form-item>
+                    <el-form-item
+                        label="修正值"
+                        prop="correctvalue"
+                    >
+                        <el-input clearable
+                            style="width: 100%;"
+                            v-model="dialog.editorBox.form.data.correctvalue"
+                            @change="dialog.editorBox.form.data.apportvalue = floatComputed(dialog.editorBox.form.data.actualvalue, dialog.editorBox.form.data.correctvalue, '+')"
+                        ></el-input>
+                    </el-form-item>
+                    <el-form-item
+                        label="最终值"
+                        prop="apportvalue"
+                    >
+                        <el-input clearable
+                            style="width: 100%;"
+                            v-model="dialog.editorBox.form.data.apportvalue"
+                            @change="dialog.editorBox.form.data.correctvalue = floatComputed(dialog.editorBox.form.data.apportvalue, dialog.editorBox.form.data.actualvalue, '-')"
+                        ></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="dataSave"
+                    :loading="loading"
+                >保 存</el-button>
+            </span>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+import { zCheckNumber1 } from '~/utils/validator.js'
+import timegranDate from '~/components/zg/timegranDate.vue'
+import {formatDate, XtcommonSummaries} from '@/utils/util.js';
+export default {
+    name: 'production',
+    components: {
+        'zj-timegran-date': timegranDate
+    },
+    data () {
+        return {
+            activeMenu: '',
+            filterForm: {
+                show: true,
+                data: {
+                    timegranid: '',
+                    clock: '',
+                    productid: '',
+                    workprocid: '',
+                    isprimary: '',
+                    itemid: ''
+                },
+                rules: {
+
+                }
+            },
+            pageNum: 1,
+            pageSize: 50,
+            total: 0,
+            singleTableHeight: 100,
+            tableData: [
+                // {
+                //     itemid: '010000C001R',
+                //     clock: '2017-07-24',
+                //     workprocid: '球团', // ?
+                //     productid: '球团', // ?
+                //     timegranid: '日',
+                //     isprimary: '否', // ?
+                //     actualvalue: '0',
+                //     correctvalue: '0',
+                //     apportvalue: '0',
+                //     sumvalue: '0',
+                //     unitid: '吨', // ?
+                //     bz: '',
+                // }
+            ],
+            nameObj: {
+                timegranid: {
+                    obj: {},
+                    arr: []
+                },
+                productid: {
+                    obj: {},
+                    arr: []
+                },
+                workprocid: {
+                    obj: {},
+                    arr: []
+                },
+                unitid: {
+                    obj: {},
+                    arr: []
+                }
+            },
+            loading: false,
+            tableLoading: false,
+            dialog: {
+                editorBox: {
+                    show: false,
+                    type: '',
+                    form: {
+                        data: {
+                            itemid: '',
+                            itemtype: '',
+                            clock: '',
+                            timegranid: '',
+                            actualvalue: '',
+                            correctvalue: '',
+                            apportvalue: ''
+                        },
+                        rules: {
+                            correctvalue: [
+                                { required: true, message: '该项不能为空', trigger: 'change' },
+                                { validator: zCheckNumber1, trigger: 'change' }
+                            ],
+                            apportvalue: [
+                                { required: true, message: '该项不能为空', trigger: 'change' },
+                                { validator: zCheckNumber1, trigger: 'change' }
+                            ]
+                        }
+                    }
+                }
+            },
+            tableFormDataObj: {}
+        }
+    },
+    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.getTimeGranData();
+        that.getProductIdData();
+        that.getWorkprocIdData();
+        that.getUnitIdData();
+        // that.getTableData();
+    },
+    methods: {
+        //  计算树区域高度
+        getRoleHeight (dom) {
+            return window.innerHeight - dom.offsetTop;
+        },
+        // 自定义的表格合计方法:只给指定列进行合计
+        getSummaries (param) {
+            const prop = ['actualvalue', 'correctvalue', 'apportvalue', 'sumvalue']; // 合计列绑定的prop
+            return XtcommonSummaries(param, prop);
+        },
+        // 获取时间粒度(实绩产量管理)
+        getTimeGranData () {
+            let that = this
+            let url = 'pass/ems/v1/tcmdatasourcetimegrans/getTimegranRmWorkprocProductValue';
+            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.filterForm.data.timegranid = that.filterForm.data.timegranid ? that.filterForm.data.timegranid : item.ID;
+                        }
+                        that.nameObj.timegranid.arr = arr;
+                        that.nameObj.timegranid.obj = obj;
+                    } else {
+                        that.$message.error(res.message);
+                    }
+                });
+        },
+        // 获取产品
+        getProductIdData () {
+            let that = this
+            let url = 'pass/ems/v1/trmproducts/?pageSize=1000000';
+            that.axios.get(url)
+                .then(function (res) {
+                    if (res.code === '0') {
+                        let arr = [];
+                        let obj = {};
+                        for (let item of res.data.list) {
+                            arr.push({
+                                id: item.id,
+                                name: item.name
+                            })
+                            obj[item.id] = item.name;
+                        }
+                        that.nameObj.productid.arr = arr;
+                        that.nameObj.productid.obj = obj;
+                    } else {
+                        that.$message.error(res.message);
+                    }
+                });
+        },
+        // 获取工序(产出)
+        getWorkprocIdData () {
+            let that = this
+            let url = 'pass/ems/v1/trmworkprocs/getIdAndName?hasproduct=1';
+            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);
+                    }
+                });
+        },
+        // 获取标准计量单位
+        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 = {
+                    timegranid: that.filterForm.data.timegranid,
+                    clock: that.filterForm.data.clock[0],
+                    clocke: that.filterForm.data.clock[1],
+                    productid: that.filterForm.data.productid.toString(),
+                    workprocid: that.filterForm.data.workprocid.toString(),
+                    isprimary: that.filterForm.data.isprimary,
+                    itemid: that.filterForm.data.itemid
+                };
+            that.pageNum = pageNum || that.pageNum;
+            that.tableLoading = true;
+            let url = 'pass/ems/v1/trmworkprocproductvalues/?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,
+                                itemtype: item.ITEMTYPE,
+                                clock: item.CLOCK,
+                                workprocid: item.WORKPROCID, // ?
+                                productid: item.PRODUCTID, // ?
+                                timegranid: item.TIMEGRANID,
+                                isprimary: item.ISPRIMARY, // ?
+                                actualvalue: item.ACTUALVALUE,
+                                correctvalue: item.CORRECTVALUE,
+                                apportvalue: item.APPORTVALUE,
+                                sumvalue: item.SUMVALUE,
+                                unitid: item.UNITID, // ?
+                                bz: item.BZ,
+                                // 名称
+                                PRODUCTNAME: item.PRODUCTNAME,
+                                WORKPROCNAME: item.WORKPROCNAME,
+                                USERID: item.USERID,
+                                UPDATETIME: item.UPDATETIME,
+                                UPTIME: item.UPTIME,
+                                UPMAN: item.UPMAN,
+                                UNITNAME: item.UNITNAME
+                            })
+
+                            //                  {
+                            //     "CORRECTVALUE":0,
+                            //     "ACTUALVALUE":2662.821,
+                            //     "UNITID":"008",
+                            //     "ITEMTYPE":"R",
+                            //     "PRODUCTID":"CP67",
+                            //     "PRODUCTNAME":"二体系︱方坯HRB400EP2︱150*150︱11200",
+                            //     "TIMEGRANID":"DAY",
+                            //     "LOCKID":null,
+                            //     "ROW_ID":1,
+                            //     "UNITNAME":"吨",
+                            //     "WORKPROCID":"ZY8200",
+                            //     "ISLOCK":null,
+                            //     "SUMVALUE":0,
+                            //     "APPORTVALUE":0,
+                            //     "ISPRIMARY":"1",
+                            //     "WORKPROCNAME":"二炼钢",
+                            //     "BZ":"MES-2019/11/05 08:00:16 fid:201910170001",
+                            //     "ITEMID":"ZY8200CP67R",
+                            //     "CLOCK":"2019-10-17"
+                            // }
+                        }
+                        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.timegranid = '';
+            that.filterForm.data.clock = '';
+            that.filterForm.data.productid = '';
+            that.filterForm.data.workprocid = '';
+            that.getTableData(1);
+        },
+        but_edit (row) {
+            let that = this;
+            that.dialog.editorBox.form.data.itemid = row.itemid;
+            that.dialog.editorBox.form.data.itemtype = row.itemtype;
+            that.dialog.editorBox.form.data.clock = row.clock;
+            that.dialog.editorBox.form.data.timegranid = row.timegranid;
+            that.dialog.editorBox.form.data.actualvalue = row.actualvalue;
+            that.dialog.editorBox.form.data.correctvalue = row.correctvalue;
+            that.dialog.editorBox.form.data.apportvalue = row.apportvalue;
+            that.dialog.editorBox.type = 'edit';
+            that.dialog.editorBox.show = true;
+        },
+        dataSave () {
+            let that = this;
+            let SubmitData = {
+                itemid: that.dialog.editorBox.form.data.itemid,
+                itemtype: that.dialog.editorBox.form.data.itemtype,
+                clock: that.dialog.editorBox.form.data.clock,
+                timegranid: that.dialog.editorBox.form.data.timegranid,
+                correctvalue: that.dialog.editorBox.form.data.correctvalue,
+                apportvalue: that.dialog.editorBox.form.data.apportvalue
+            };
+            that.$refs['dialog_form'].validate((valid) => {
+                if (valid) {
+                    that.loading = true;
+                    that.axios.put('pass/ems/v1/trmworkprocproductvalues/updateForUKey/', 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_redata () {
+            let that = this;
+            if (!that.filterForm.data.clock) {
+                that.$message.warning('请选择日期');
+                return true;
+            }
+            if (!that.filterForm.data.timegranid) {
+                that.$message.warning('请选择时间粒度');
+                return true;
+            }
+            let params = {
+                    workprocid: that.filterForm.data.workprocid.toString(),
+                    timegranid: that.filterForm.data.timegranid,
+                    clock: that.filterForm.data.clock[0],
+                    clocke: that.filterForm.data.clock[1],
+                    correctvalue: that.filterForm.data.correctvalue,
+                    apportvalue: that.filterForm.data.apportvalue,
+                    itemid: that.filterForm.data.itemid
+            };
+            that.$confirm('是否重新生成数据?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                state: 'warning'
+            }).then(() => {
+                that.loading = true;
+                let url = 'pass/ems/v1/trmworkprocproductvalues/restatWpv'
+                that.axios.get(url, {
+                    params: params
+                })
+                    .then(function (res) {
+                        if (res.code === '0') {
+                            if (res.message && res.message !== '操作成功') {
+                                that.$message.warning('重新生成数据成功, 其中【' + res.message + '】');
+                            } else {
+                                that.$message({
+                                    message: '重新生成数据成功',
+                                    type: 'success'
+                                });
+                            }
+                            that.getTableData();
+                        } else {
+                            that.$message.error(res.message);
+                        }
+                        that.loading = false;
+                    }).catch(function () {
+                        that.loading = false;
+                    });
+            }).catch(() => {
+            });
+        },
+          // 修改多条数据
+        but_more () {
+            let that = this;
+            let url = 'pass/ems/v1/trmworkprocproductvalues/batchUpdate/';
+            let submitData = [];
+            for (let item in that.tableFormDataObj) {
+                submitData.push({
+                    itemid: that.tableFormDataObj[item].itemid,
+                    clock: that.tableFormDataObj[item].clock,
+                    timegranid: that.tableFormDataObj[item].timegranid,
+                    correctvalue: that.tableFormDataObj[item].correctvalue,
+                    apportvalue: that.tableFormDataObj[item].apportvalue
+                })
+            }
+            that.axios.put(url, 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;
+                });
+        },
+        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;
+            console.log(that.tableFormDataObj)
+            this.multipleSelection = val;
+        },
+          // 修改修正值
+        correctvalueChange (id) {
+            let that = this;
+            let apportvalue = that.floatComputed(that.tableFormDataObj[id].correctvalue, that.tableFormDataObj[id].actualvalue, '+');
+            that.tableFormDataObj[id].apportvalue = apportvalue;
+        },
+        // 修改最终值
+        apportvalueChange (id) {
+            let that = this;
+            let correctvalue = that.floatComputed(that.tableFormDataObj[id].apportvalue, that.tableFormDataObj[id].actualvalue, '-');
+            that.tableFormDataObj[id].correctvalue = correctvalue;
+        },
+        // 批量重新计算
+        but_re_compute () {
+            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({
+                                clock: that.tableFormDataObj[key].clock,
+                                timegranid: that.tableFormDataObj[key].timegranid,
+                                itemid: that.tableFormDataObj[key].itemid
+                            });
+                        }
+                        that.loading = true;
+                        that.axios.put('pass/ems/v1/trmworkprocproductvalues/batchCompute', SubmitData)
+                            .then(function (res) {
+                                if (res.code === '0') {
+                                    that.$message({
+                                        message: '重新计算成功',
+                                        type: 'success'
+                                    });
+                                    that.getTableData();
+                                } else {
+                                    that.$message.error(res.message);
+                                }
+                                that.loading = false;
+                            }).catch(function () {
+                                that.loading = false;
+                            });
+                    }
+                });
+            } else {
+                this.$message.error('至少要选择一条数据');
+            }
+        }
+    }
+}
+</script>
+
+<style lang="less">
+.production {
+    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;
+                // margin-top: -7px;
+                padding: 7px 0;
+                border-top: 1px solid #ccc;
+                // border-bottom: 1px solid #ccc;
+                // margin-bottom: 6px;
+            }
+        }
+    }
+    .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>