|
|
@@ -0,0 +1,1443 @@
|
|
|
+<template>
|
|
|
+ <div class="mergePutMesh-container">
|
|
|
+ <div class="title" style="margin-left: 0px">
|
|
|
+ <div class="item">
|
|
|
+ <span class="font subWorkNameBox">合并挂网</span>
|
|
|
+ </div>
|
|
|
+ <div class="item">
|
|
|
+ <span class="font"
|
|
|
+ >{{ riqi }} {{ days }} {{ shijian }}</span
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ <div class="item">
|
|
|
+ <img class="top-bar__img" :src="info.avatar" />
|
|
|
+ <span class="font">
|
|
|
+ {{ info.name }}
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <div class="item">
|
|
|
+ <div class="back" @click="$router.back()">
|
|
|
+ <i class="icon-mes-fanhui"></i>
|
|
|
+ <!-- <span class="font">返回</span> -->
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <basic-container
|
|
|
+ v-loading="pageLoading"
|
|
|
+ element-loading-text="数据加载中..."
|
|
|
+ element-loading-spinner="el-icon-loading"
|
|
|
+ >
|
|
|
+ <!-- 板材计划未合并挂网详情列表 -->
|
|
|
+ <div class="unMerge-list">
|
|
|
+ <div class="table-header-row">
|
|
|
+ <el-button
|
|
|
+ size="small"
|
|
|
+ icon="el-icon-search"
|
|
|
+ type="primary"
|
|
|
+ class="screen"
|
|
|
+ @click="searchDialogVisible = true"
|
|
|
+ >筛选</el-button
|
|
|
+ >
|
|
|
+ <span class="table-title">板材计划未合并挂网详情列表</span>
|
|
|
+ </div>
|
|
|
+ <el-table
|
|
|
+ :data="unMergeTableData"
|
|
|
+ style="max-height: 300px"
|
|
|
+ border
|
|
|
+ v-loading="unMergeTableLoading"
|
|
|
+ :header-row-style="headerRowStyle"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ label="计划编号"
|
|
|
+ align="center"
|
|
|
+ prop="code"
|
|
|
+ width="170"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column label="等级" align="center" width="60">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{ scope.row.weight | weightFilter }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="规格型号"
|
|
|
+ align="center"
|
|
|
+ prop="specification"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="productName"
|
|
|
+ width="110"
|
|
|
+ align="center"
|
|
|
+ label="产品名称"
|
|
|
+ ></el-table-column>
|
|
|
+ <!-- <el-table-column
|
|
|
+ label="是否开槽"
|
|
|
+ align="center"
|
|
|
+ prop="isSlotting"
|
|
|
+ ></el-table-column> -->
|
|
|
+ <el-table-column label="开槽类型" align="center" prop="slottingType">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{
|
|
|
+ getDictValue('开槽类型', scope.row.slottingType+"")
|
|
|
+ }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="未排程块数"
|
|
|
+ align="center"
|
|
|
+ prop="noWordCount"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="计划块数"
|
|
|
+ align="center"
|
|
|
+ prop="blockCount"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column label="计划日期" align="center" prop="startTime">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{ scope.row.planDeliveryTime | subTime }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="交货期" align="center" prop="deliveryDate">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{ scope.row.reqMoldTime | subTime }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="项目名称"
|
|
|
+ align="center"
|
|
|
+ prop="projectName"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column label="首次排程" align="center" prop="createTime">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{ scope.row.createTime | subTime }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="备注"
|
|
|
+ align="center"
|
|
|
+ prop="remark"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column label="操作" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <div>
|
|
|
+ <el-tooltip
|
|
|
+ class="item"
|
|
|
+ effect="dark"
|
|
|
+ content="挂网"
|
|
|
+ placement="bottom"
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ size="small"
|
|
|
+ class="handle-btn"
|
|
|
+ icon="el-icon-guide"
|
|
|
+ @click="handlePutMesh(scope.row)"
|
|
|
+ ></el-button>
|
|
|
+ </el-tooltip>
|
|
|
+ <el-tooltip
|
|
|
+ class="item"
|
|
|
+ effect="dark"
|
|
|
+ content="删除"
|
|
|
+ placement="bottom"
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ size="small"
|
|
|
+ class="handle-btn"
|
|
|
+ icon="el-icon-delete"
|
|
|
+ @click="handleDeleteSchedule(scope.row)"
|
|
|
+ ></el-button>
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <!-- 筛选弹窗 -->
|
|
|
+ <el-dialog
|
|
|
+ :visible.sync="searchDialogVisible"
|
|
|
+ width="600px"
|
|
|
+ append-to-body
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ :close-on-press-escape="false"
|
|
|
+ >
|
|
|
+ <span slot="title">查询条件</span>
|
|
|
+ <el-form class="search-form" :model="searchForm" label-width="120px">
|
|
|
+ <el-form-item label="项目名称:">
|
|
|
+ <el-select v-model="searchForm.projectName" :clearable="true">
|
|
|
+ <el-option
|
|
|
+ v-for="(item, index) in projectNameList"
|
|
|
+ :key="index"
|
|
|
+ :value="item"
|
|
|
+ :label="item"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="产品名称:">
|
|
|
+ <el-select v-model="searchForm.productName" :clearable="true">
|
|
|
+ <el-option
|
|
|
+ v-for="(item, index) in materialNameList"
|
|
|
+ :key="index"
|
|
|
+ :value="item"
|
|
|
+ :label="item"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="规格型号:">
|
|
|
+ <el-input
|
|
|
+ v-model="searchForm.specification"
|
|
|
+ placeholder="请输入规格型号"
|
|
|
+ style="width: 200px"
|
|
|
+ >
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="是否开槽:">
|
|
|
+ <el-select v-model="searchForm.isSlotting" :clearable="true">
|
|
|
+ <el-option value="1" label="是"></el-option>
|
|
|
+ <el-option value="2" label="否"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="等级:">
|
|
|
+ <el-select v-model="searchForm.weight" :clearable="true">
|
|
|
+ <el-option :value="1" label="A"></el-option>
|
|
|
+ <el-option :value="2" label="B"></el-option>
|
|
|
+ <el-option :value="3" label="C"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div class="searchForm-btns">
|
|
|
+ <el-button size="small" @click="reset">重置</el-button>
|
|
|
+ <el-button size="small" type="success" @click="search"
|
|
|
+ >查询</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 合并挂网(并模)图示 -->
|
|
|
+ <div class="merge-pic-table-title">合并组网</div>
|
|
|
+ <div class="merge-pic-table">
|
|
|
+ <!-- 左边图示 -->
|
|
|
+ <div class="merge-pic">
|
|
|
+ <div
|
|
|
+ v-for="(item, index) in editTableData"
|
|
|
+ :key="index"
|
|
|
+ class="pic-item"
|
|
|
+ :style="{
|
|
|
+ width: Number(item.specification.split('*')[0]) / 6 + '%'
|
|
|
+ }"
|
|
|
+ >
|
|
|
+ <div>{{ item.specification }}</div>
|
|
|
+ <div>{{ item.productName }}</div>
|
|
|
+ <div>块数:{{ item.blockCount }}</div>
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ :style="{
|
|
|
+ width: `${(surplusLength / 6.1).toFixed(2)}` + '%'
|
|
|
+ }"
|
|
|
+ >
|
|
|
+ <span>剩余:</span>
|
|
|
+ <span>{{ surplusLength }}</span>
|
|
|
+ <div>{{ Number((surplusLength / 6.1).toFixed(2)) }}%</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div style="flex: 1; display: flex">
|
|
|
+ <!-- 中间表格 -->
|
|
|
+ <div class="merge-table">
|
|
|
+ <el-table
|
|
|
+ :data="editTableData"
|
|
|
+ border
|
|
|
+ :header-row-style="headerRowStyle"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ label="规格"
|
|
|
+ align="center"
|
|
|
+ width="120"
|
|
|
+ prop="specification"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="productName"
|
|
|
+ width="110"
|
|
|
+ align="center"
|
|
|
+ label="产品名称"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="块数"
|
|
|
+ align="center"
|
|
|
+ prop="blockCount"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column label="等级" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{ scope.row.weight | weightFilter }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="剩余模数"
|
|
|
+ align="center"
|
|
|
+ prop="surplusModulus"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="附加工艺"
|
|
|
+ align="center"
|
|
|
+ prop="slottingType"
|
|
|
+ >
|
|
|
+
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{
|
|
|
+ getDictValue('开槽类型', scope.row.slottingType+'')
|
|
|
+ }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <div class="merge-btns">
|
|
|
+ <el-button size="small" type="primary" @click="updateMerge"
|
|
|
+ >确定</el-button
|
|
|
+ >
|
|
|
+ <el-button size="small" type="primary" @click="resetEditTable"
|
|
|
+ >重置</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 右边统计表 -->
|
|
|
+ <div class="info-message">
|
|
|
+ <div class="info-item">
|
|
|
+ <span :style="headerRowStyle">班组</span>
|
|
|
+ <span>*模数</span>
|
|
|
+ <span>合计模数</span>
|
|
|
+ <span>允许模数</span>
|
|
|
+ </div>
|
|
|
+ <div class="info-item">
|
|
|
+ <span :style="headerRowStyle">网A</span>
|
|
|
+ <el-input
|
|
|
+ v-model="modulusNum1"
|
|
|
+ placeholder="输入模数"
|
|
|
+ oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"
|
|
|
+ @input="modulsNumInput"
|
|
|
+ ></el-input>
|
|
|
+ <span>{{ modulusSum }}</span>
|
|
|
+ <span>{{ allowModulus }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="info-item">
|
|
|
+ <span :style="headerRowStyle">网B</span>
|
|
|
+ <el-input
|
|
|
+ v-model="modulusNum2"
|
|
|
+ oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"
|
|
|
+ placeholder="输入模数"
|
|
|
+ @input="modulsNumInput"
|
|
|
+ ></el-input>
|
|
|
+ <span>*任务日期</span>
|
|
|
+ <el-date-picker
|
|
|
+ v-model="taskDate"
|
|
|
+ type="date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择日期"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 任务未下发列表操作 && 下发未报工列表 -->
|
|
|
+ <div class="task-distribution">
|
|
|
+ <!-- 任务未下发列表 -->
|
|
|
+ <div class="task-dist">
|
|
|
+ <div class="task-btns">
|
|
|
+ <div>
|
|
|
+ <el-button
|
|
|
+ size="small"
|
|
|
+ @click="seletAll(taskDistTableData, 'taskDistTableData')"
|
|
|
+ >全选</el-button
|
|
|
+ >
|
|
|
+ <!-- <el-button size="small">排序</el-button> -->
|
|
|
+ <!-- <el-button size="small">筛选</el-button> -->
|
|
|
+ </div>
|
|
|
+ <div class="task-dist-title">组网过渡表</div>
|
|
|
+ <div>
|
|
|
+ <el-button
|
|
|
+ size="small"
|
|
|
+ @click="handleDeleteWorkOrder('取消', '0')"
|
|
|
+ :disabled="taskDistSelection.length == 0"
|
|
|
+ >取消</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ size="small"
|
|
|
+ :disabled="taskDistSelection.length == 0"
|
|
|
+ @click="taskDistribute"
|
|
|
+ >任务下发</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-table
|
|
|
+ ref="taskDistTableData"
|
|
|
+ :data="taskDistTableData"
|
|
|
+ v-loading="taskDistTableLoading"
|
|
|
+ style="max-height: 300px"
|
|
|
+ border
|
|
|
+ @selection-change="taskDistTableSelectionChange"
|
|
|
+ >
|
|
|
+ <el-table-column type="selection" width="45" align="center">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="等级"
|
|
|
+ align="center"
|
|
|
+ width="70"
|
|
|
+ prop="weight"
|
|
|
+ filterable
|
|
|
+ :filters="[
|
|
|
+ { text: 'A', value: 1 },
|
|
|
+ { text: 'B', value: 2 },
|
|
|
+ { text: 'C', value: 3 }
|
|
|
+ ]"
|
|
|
+ :filter-method="filterWeightMethod1"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{ scope.row.weight | weightFilter }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ align="center"
|
|
|
+ width="70"
|
|
|
+ label="高度"
|
|
|
+ prop="height"
|
|
|
+ filterable
|
|
|
+ :filters="heightFilterArr1"
|
|
|
+ :filter-method="filterHeightMethod1"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="长1+长2+长3"
|
|
|
+ align="center"
|
|
|
+ width="120"
|
|
|
+ prop="length"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="productName"
|
|
|
+ width="110"
|
|
|
+ align="center"
|
|
|
+ label="产品名称"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="模数"
|
|
|
+ align="center"
|
|
|
+ width="70"
|
|
|
+ prop="moCount"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="片1+片2+片3"
|
|
|
+ align="center"
|
|
|
+ width="120"
|
|
|
+ prop="blockCount"
|
|
|
+ >
|
|
|
+
|
|
|
+ </el-table-column>
|
|
|
+ <!-- <el-table-column label="是否开槽" align="center"></el-table-column> -->
|
|
|
+ <el-table-column
|
|
|
+ align="center"
|
|
|
+ width="115"
|
|
|
+ prop="slottingType"
|
|
|
+ filterable
|
|
|
+ label="开槽类型"
|
|
|
+ :filters="[
|
|
|
+ { text: '开槽', value: '开槽' },
|
|
|
+ { text: '不开槽', value: '不开槽' }
|
|
|
+ ]"
|
|
|
+ :filter-method="filterSlottingMethod1"
|
|
|
+ >
|
|
|
+
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{
|
|
|
+ getDictValue('开槽类型', scope.row.slottingType+"")
|
|
|
+ }}</span>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="日期" align="center" prop="taskTime">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{ scope.row.taskTime}}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ align="center"
|
|
|
+ width="85"
|
|
|
+ prop="teamName"
|
|
|
+ label="班组"
|
|
|
+ filterable
|
|
|
+ :filters="[
|
|
|
+ { text: '班组A', value: '班组A' },
|
|
|
+ { text: '班组B', value: '班组B' }
|
|
|
+ ]"
|
|
|
+ :filter-method="filterJobMethod1"
|
|
|
+ ></el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ <!-- 任务下发未报工列表 -->
|
|
|
+ <div class="work-unreport">
|
|
|
+ <div class="unreport-btns">
|
|
|
+ <div>
|
|
|
+ <el-button
|
|
|
+ size="small"
|
|
|
+ @click="
|
|
|
+ seletAll(workUnreportTableData, 'workUnreportTableData')
|
|
|
+ "
|
|
|
+ >全选</el-button
|
|
|
+ >
|
|
|
+ <!-- <el-button size="small">排序</el-button> -->
|
|
|
+ <!-- <el-button size="small">筛选</el-button> -->
|
|
|
+ </div>
|
|
|
+ <div class="work-unreport-title">组网任务表</div>
|
|
|
+ <div>
|
|
|
+ <el-button
|
|
|
+ size="small"
|
|
|
+ @click="handleDeleteWorkOrder('删除', '1')"
|
|
|
+ :disabled="workUnreportSelection.length == 0"
|
|
|
+ >删除</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ size="small"
|
|
|
+ :disabled="workUnreportSelection.length == 0"
|
|
|
+ @click="handleDeleteWorkOrder('撤回', '0')"
|
|
|
+ >撤回</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-table
|
|
|
+ :data="workUnreportTableData"
|
|
|
+ ref="workUnreportTableData"
|
|
|
+ style="max-height: 300px"
|
|
|
+ v-loading="workUnreportTableLoading"
|
|
|
+ border
|
|
|
+ @selection-change="workUnreportTableSelectionChange"
|
|
|
+ >
|
|
|
+ <el-table-column type="selection" width="45" align="center">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="等级"
|
|
|
+ align="center"
|
|
|
+ width="70"
|
|
|
+ prop="weight"
|
|
|
+ filterable
|
|
|
+ :filters="[
|
|
|
+ { text: 'A', value: 1 },
|
|
|
+ { text: 'B', value: 2 },
|
|
|
+ { text: 'C', value: 3 }
|
|
|
+ ]"
|
|
|
+ :filter-method="filterWeightMethod1"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{ scope.row.weight | weightFilter }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ align="center"
|
|
|
+ width="70"
|
|
|
+ label="高度"
|
|
|
+ prop="height"
|
|
|
+ filterable
|
|
|
+ :filters="heightFilterArr2"
|
|
|
+ :filter-method="filterHeightMethod1"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="长1+长2+长3"
|
|
|
+ align="center"
|
|
|
+ prop="length"
|
|
|
+ width="120"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="productName"
|
|
|
+ width="110"
|
|
|
+ align="center"
|
|
|
+ label="产品名称"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="余量"
|
|
|
+ align="center"
|
|
|
+ width="70"
|
|
|
+ prop="moCount"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="模数"
|
|
|
+ align="center"
|
|
|
+ prop="moCount"
|
|
|
+ width="120"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="片1+片2+片3"
|
|
|
+ align="center"
|
|
|
+ prop="blockCount"
|
|
|
+ width="120"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{ scope.row.blockCount}}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <!-- <el-table-column label="是否开槽" align="center"></el-table-column> -->
|
|
|
+ <el-table-column
|
|
|
+ align="center"
|
|
|
+ width="115"
|
|
|
+ prop="slottingType"
|
|
|
+ filterable
|
|
|
+ label="开槽类型"
|
|
|
+ :filters="[
|
|
|
+ { text: '开槽', value: '开槽' },
|
|
|
+ { text: '不开槽', value: '不开槽' }
|
|
|
+ ]"
|
|
|
+ :filter-method="filterSlottingMethod1"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{
|
|
|
+ getDictValue('开槽类型', scope.row.slottingType+'')
|
|
|
+ }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="任务日期"
|
|
|
+ prop="taskTime"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{ scope.row.taskTime }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="下发日期"
|
|
|
+ align="center"
|
|
|
+ prop="issuedTime"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{ scope.row.issuedTime }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ align="center"
|
|
|
+ width="85"
|
|
|
+ prop="teamName"
|
|
|
+ label="班组"
|
|
|
+ filterable
|
|
|
+ :filters="[
|
|
|
+ { text: '班组A', value: '班组A' },
|
|
|
+ { text: '班组B', value: '班组B' }
|
|
|
+ ]"
|
|
|
+ :filter-method="filterJobMethod1"
|
|
|
+ ></el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </basic-container>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import basicContainer from '@/components/basic-container/main';
|
|
|
+import {
|
|
|
+ getScheduleWorkOrderByPage,
|
|
|
+ updateMergeV2,
|
|
|
+ getPutMeshWorkOrderByPage,
|
|
|
+ issuedPutMeshWorkOrder,
|
|
|
+ deletePutMeshWorkOrder,
|
|
|
+ deleteScheduleWorkOrder
|
|
|
+} from '@/api/mergePutMesh/mergePutMesh';
|
|
|
+import {mapState } from 'vuex';
|
|
|
+import dictMixins from '@/mixins/dictMixins';
|
|
|
+
|
|
|
+export default {
|
|
|
+ components: {
|
|
|
+ basicContainer
|
|
|
+ },
|
|
|
+ mixins: [dictMixins],
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ permission: {},
|
|
|
+ pageLoading: false,
|
|
|
+ unMergeTableData: [], // 未合并挂网详情列表
|
|
|
+ editTableData: [], // 合并挂网任务编辑详情列表
|
|
|
+ taskDistTableData: [], // 任务未下发列表
|
|
|
+ workUnreportTableData: [], // 任务已下发未报工列表
|
|
|
+ taskDistSelection: [],
|
|
|
+ workUnreportSelection: [],
|
|
|
+ unMergeTableLoading: false,
|
|
|
+ taskDistTableLoading: false,
|
|
|
+ workUnreportTableLoading: false,
|
|
|
+ searchDialogVisible: false, // 筛选弹窗
|
|
|
+ headerRowStyle: {
|
|
|
+ backgroundColor: ' #d0e4d5'
|
|
|
+ },
|
|
|
+ // 筛选弹窗表单
|
|
|
+ searchForm: {
|
|
|
+ projectName: '', // 项目名称下拉
|
|
|
+ productName: '', // 产品名称下拉
|
|
|
+ specification: '', // 规格型号
|
|
|
+ weight: '', // 等级
|
|
|
+ isSlotting:""
|
|
|
+ },
|
|
|
+ projectNameList: [],
|
|
|
+ materialNameList: [],
|
|
|
+ modulusNum1: 0,
|
|
|
+ modulusNum2: 0,
|
|
|
+ taskDate: '', // 任务日期
|
|
|
+ modulusLength: '',
|
|
|
+ surplusLength: 610, // 剩余长度
|
|
|
+ allowModulus: 0, // 允许模数
|
|
|
+ modulusSum: 0, // 合计模数
|
|
|
+ heightFilterArr1: [], // 高度筛选1表格
|
|
|
+ heightFilterArr2: [], // 高度筛选2表格
|
|
|
+ riqi: '',
|
|
|
+ days: '',
|
|
|
+ shijian: ''
|
|
|
+ };
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ ...mapState({
|
|
|
+ info: (store) => store.user.info //用户数据
|
|
|
+ })
|
|
|
+ },
|
|
|
+ filters: {
|
|
|
+ weightFilter(value) {
|
|
|
+ let weight = '';
|
|
|
+ switch (value) {
|
|
|
+ case 1:
|
|
|
+ weight = 'A';
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ weight = 'B';
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ weight = 'C';
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return weight;
|
|
|
+ },
|
|
|
+ subTime(value) {
|
|
|
+ if (!value) return;
|
|
|
+ let date = value.substr(0, value.indexOf(' '));
|
|
|
+ return date;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.requestDict('开槽类型');
|
|
|
+ this.getScheduleWorkOrder({});
|
|
|
+ this.getPutMeshWorkOrder();
|
|
|
+ this.getWorkUnreport();
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ this.gettime();
|
|
|
+ this.newtime();
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ gettime() {
|
|
|
+ var date = new Date();
|
|
|
+ let year = date.getFullYear();
|
|
|
+ let mou = date.getMonth() + 1;
|
|
|
+ let day = date.getDate();
|
|
|
+ let days = date.getDay();
|
|
|
+ switch (days) {
|
|
|
+ case 1:
|
|
|
+ days = '星期一';
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ days = '星期二';
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ days = '星期三';
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ days = '星期四';
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ days = '星期五';
|
|
|
+ break;
|
|
|
+ case 6:
|
|
|
+ days = '星期六';
|
|
|
+ break;
|
|
|
+ case 0:
|
|
|
+ days = '星期日';
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ let hou = date.getHours(); //获取当前小时数(0-23)
|
|
|
+ let min = date.getMinutes(); //获取当前分钟数(0-59)
|
|
|
+ let sec = date.getSeconds(); //获取当前秒数(0-59)
|
|
|
+ if (mou < 10) mou = '0' + mou;
|
|
|
+ if (day < 10) day = '0' + day;
|
|
|
+ if (hou < 10) hou = '0' + hou;
|
|
|
+ if (min < 10) min = '0' + min;
|
|
|
+ if (sec < 10) sec = '0' + sec;
|
|
|
+ this.riqi = year + '/' + mou + '/' + day;
|
|
|
+ this.days = days;
|
|
|
+ this.shijian = hou + ':' + min + ':' + sec;
|
|
|
+ },
|
|
|
+ newtime() {
|
|
|
+ setInterval(() => {
|
|
|
+ this.gettime();
|
|
|
+ }, 1000);
|
|
|
+ },
|
|
|
+ // 获取未合并挂网数据列表
|
|
|
+ getScheduleWorkOrder(params) {
|
|
|
+ this.unMergeTableLoading = true;
|
|
|
+ this.projectNameList = [];
|
|
|
+ this.materialNameList = [];
|
|
|
+ let pages = {
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 100
|
|
|
+ };
|
|
|
+ let query = Object.assign(pages, params, {
|
|
|
+ status: ['3', '2']
|
|
|
+ });
|
|
|
+ getScheduleWorkOrderByPage(query)
|
|
|
+ .then((res) => {
|
|
|
+ this.unMergeTableLoading = false;
|
|
|
+ console.log('未合并挂网数据列表:', res.data.data.list);
|
|
|
+ this.unMergeTableData = res.data.data.list.filter((item) =>
|
|
|
+ item.productName.includes('板材')
|
|
|
+ );
|
|
|
+ console.log(this.unMergeTableData, 'unMergeTableData');
|
|
|
+ this.unMergeTableData.map((item) => {
|
|
|
+ if (!this.projectNameList.includes(item.projectName)&&item.projectName) {
|
|
|
+ this.projectNameList.push(item.projectName);
|
|
|
+ }
|
|
|
+ if (!this.materialNameList.includes(item.productName)) {
|
|
|
+ this.materialNameList.push(item.productName);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.unMergeTableLoading = false;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 获取任务未下发数据列表
|
|
|
+ async getPutMeshWorkOrder() {
|
|
|
+ this.taskDistTableLoading = true;
|
|
|
+ this.heightFilterArr1 = [];
|
|
|
+ let pages = {
|
|
|
+ // pageNum: 1,
|
|
|
+ // pageSize: 100,
|
|
|
+ status: '0',
|
|
|
+ // artisanStatus: '0'
|
|
|
+ };
|
|
|
+ const res = await getPutMeshWorkOrderByPage(pages);
|
|
|
+ console.log('任务未下发数据列表:', res.data.data.list);
|
|
|
+ this.taskDistTableLoading = false;
|
|
|
+ this.taskDistTableData = res.data.data.list;
|
|
|
+
|
|
|
+ let tempHeight = [];
|
|
|
+ this.taskDistTableData.map((item) => {
|
|
|
+ tempHeight.push(item.height);
|
|
|
+ });
|
|
|
+ tempHeight = [...new Set(tempHeight)];
|
|
|
+ tempHeight.map((item) => {
|
|
|
+ this.heightFilterArr1.push({
|
|
|
+ value: item,
|
|
|
+ text: item
|
|
|
+ });
|
|
|
+ });
|
|
|
+ // console.log(this.heightFilterArr1);
|
|
|
+ },
|
|
|
+ // 获取已下发未报工列表数据
|
|
|
+ async getWorkUnreport() {
|
|
|
+ this.workUnreportTableLoading = true;
|
|
|
+ this.heightFilterArr2 = [];
|
|
|
+ let pages = {
|
|
|
+ // pageNum: 1,
|
|
|
+ // pageSize: 100,
|
|
|
+ status: '1',
|
|
|
+ // artisanStatus: '0'
|
|
|
+ };
|
|
|
+ const res = await getPutMeshWorkOrderByPage(pages);
|
|
|
+ console.log('任务已下发数据列表:',res.data.data.list);
|
|
|
+ // this.taskDistTableLoading = false
|
|
|
+ this.workUnreportTableData = res.data.data.list;
|
|
|
+ this.workUnreportTableLoading = false;
|
|
|
+
|
|
|
+ let tempHeight = [];
|
|
|
+ this.workUnreportTableData.map((item) => {
|
|
|
+ tempHeight.push(item.height);
|
|
|
+ });
|
|
|
+ tempHeight = [...new Set(tempHeight)];
|
|
|
+ tempHeight.map((item) => {
|
|
|
+ this.heightFilterArr2.push({
|
|
|
+ value: item,
|
|
|
+ text: item
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 重置筛选表单
|
|
|
+ reset() {
|
|
|
+ this.searchForm = {
|
|
|
+ projectName: '',
|
|
|
+ productName: '',
|
|
|
+ specification: '',
|
|
|
+ weight: '',
|
|
|
+ isSlotting:""
|
|
|
+ };
|
|
|
+ this.searchDialogVisible = false;
|
|
|
+ this.getScheduleWorkOrder({});
|
|
|
+ },
|
|
|
+ // 按表单查询
|
|
|
+ search() {
|
|
|
+ this.searchDialogVisible = false;
|
|
|
+ this.getScheduleWorkOrder(this.searchForm);
|
|
|
+ },
|
|
|
+ // 挂网报工按钮操作
|
|
|
+ handlePutMesh(row) {
|
|
|
+ // 挂网判断
|
|
|
+ // 1,只允许添加相同高度的计划
|
|
|
+ // 2,只允许添加相同宽度的计划
|
|
|
+ // 3,只允许添加相同工艺的计划
|
|
|
+ // 4,长度加起来不能大610
|
|
|
+ // 5,最多只能添加3条
|
|
|
+ let rowModelArr = row.specification.split('*');
|
|
|
+ // 要添加的规格的高度
|
|
|
+ let addWide = Number(rowModelArr[1]);
|
|
|
+ let addHeight = Number(
|
|
|
+ rowModelArr[2].substr(0, rowModelArr[2].indexOf('cm'))
|
|
|
+ );
|
|
|
+ let allowSlotting = ''; // 已添加计划的工艺
|
|
|
+ let allowWide = 0; // 已添加计划的高度
|
|
|
+ let allowHeight = 0; // 已添加计划的高度
|
|
|
+ let allowLong = 0; // 已添加计划的长度
|
|
|
+ let addLong = Number(rowModelArr[0]); // 要添加计划的长度
|
|
|
+ if (this.editTableData.length > 0) {
|
|
|
+ allowSlotting = this.editTableData[0].slottingType
|
|
|
+ let modelArr = this.editTableData[0].specification.split('*');
|
|
|
+ allowWide = Number(modelArr[1]);
|
|
|
+ allowHeight = Number(modelArr[2].substr(0, modelArr[2].indexOf('cm')));
|
|
|
+
|
|
|
+ // 计算已添加的长度的总和是否大610
|
|
|
+ this.editTableData.map((item) => {
|
|
|
+ allowLong += Number(item.specification.split('*')[0]);
|
|
|
+ });
|
|
|
+ if (this.editTableData.length == 3) {
|
|
|
+ return this.$alert('最多只能添加三条计划!');
|
|
|
+ }
|
|
|
+ if (allowLong + addLong > 610) {
|
|
|
+ return this.$alert('挂网并模总长度不能大于610!');
|
|
|
+ }
|
|
|
+ if (row.slottingType != allowSlotting) {
|
|
|
+ return this.$alert(`请添加${this.getDictValue('开槽类型',allowSlotting+"")}工艺的计划!`);
|
|
|
+ }
|
|
|
+ if (addHeight != allowHeight) {
|
|
|
+ return this.$alert(`请添加高度为${allowHeight}cm的计划!`);
|
|
|
+ }
|
|
|
+ if (addWide != allowWide) {
|
|
|
+ return this.$alert(`请添加宽度为${allowWide}的计划!`);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.editTableData.push(JSON.parse(JSON.stringify(row)));
|
|
|
+
|
|
|
+ let equalIdObj = {};
|
|
|
+ this.editTableData.map((item) => {
|
|
|
+ if (equalIdObj[item.id]) {
|
|
|
+ equalIdObj[item.id]++;
|
|
|
+ } else {
|
|
|
+ this.$set(equalIdObj, item.id, 1);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ let longSum = 0;
|
|
|
+ let surplusModulusArr = []; // 允许模数
|
|
|
+ this.editTableData.map((item) => {
|
|
|
+ item.equalIdNum = equalIdObj[item.id];
|
|
|
+ let modelArr = item.specification.split('*');
|
|
|
+ let modelHeight = modelArr[2];
|
|
|
+ modelHeight = Number(modelHeight.substr(0, modelHeight.indexOf('cm')));
|
|
|
+ longSum += Number(modelArr[0]);
|
|
|
+ // 块数
|
|
|
+ item.blockCount = Number(Math.floor(120 / modelHeight));
|
|
|
+ // 剩余模数
|
|
|
+ item.surplusModulus = Number(
|
|
|
+ Math.ceil(item.noWordCount / item.blockCount / item.equalIdNum)
|
|
|
+ );
|
|
|
+ console.log(item, 'sss');
|
|
|
+
|
|
|
+ surplusModulusArr.push(item.surplusModulus);
|
|
|
+ });
|
|
|
+ // console.log(this.editTableData,'editTableData')
|
|
|
+ // 获取允许模数 allowModulus
|
|
|
+ this.allowModulus = Math.min(...surplusModulusArr);
|
|
|
+
|
|
|
+ this.surplusLength = 610 - longSum;
|
|
|
+ // 计算模数长度
|
|
|
+ this.modulusLength =
|
|
|
+ (100 - (this.surplusLength / 6.1).toFixed(2)) /
|
|
|
+ this.editTableData.length +
|
|
|
+ '%';
|
|
|
+ },
|
|
|
+ // 输入模数
|
|
|
+ modulsNumInput() {
|
|
|
+ this.modulusSum = Number(this.modulusNum1) + Number(this.modulusNum2);
|
|
|
+ if (this.modulusSum > this.allowModulus) {
|
|
|
+ this.$alert('合计模数不能大于允许模数!');
|
|
|
+ this.modulusSum = 0;
|
|
|
+ this.modulusNum1 = 0;
|
|
|
+ this.modulusNum2 = 0;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ },
|
|
|
+ // 重置合并挂网
|
|
|
+ resetEditTable() {
|
|
|
+ this.editTableData = [];
|
|
|
+ this.modulusSum = 0;
|
|
|
+ this.modulusNum1 = 0;
|
|
|
+ this.modulusNum2 = 0;
|
|
|
+ this.allowModulus = 0;
|
|
|
+ this.taskDate = '';
|
|
|
+ this.surplusLength = 610;
|
|
|
+ this.modulusLength = '';
|
|
|
+ },
|
|
|
+ // 确定添加挂网并模
|
|
|
+ updateMerge() {
|
|
|
+ if (this.editTableData.length == 0)
|
|
|
+ return this.$alert('请选择要挂网的计划列表!');
|
|
|
+ if (Number(this.modulusNum1) + Number(this.modulusNum2) == 0)
|
|
|
+ return this.$alert('请输入班组模数!');
|
|
|
+ if (!this.taskDate) return this.$alert('请选择任务日期!');
|
|
|
+ if (!this.modulsNumInput()) return;
|
|
|
+
|
|
|
+ this.pageLoading = true;
|
|
|
+ let ids = [];
|
|
|
+ let meshSpecs = [];
|
|
|
+ let meshNumber = [];
|
|
|
+ let meshSpecsTwo = [];
|
|
|
+ let meshNumberTwo = [];
|
|
|
+ let numbersArr = [];
|
|
|
+ // for (let i = 0; i < this.editTableData.length; i++) {
|
|
|
+ // ids.push(this.editTableData[i].id);
|
|
|
+ // meshSpecs.push(this.editTableData[i].model);
|
|
|
+ // meshNumber.push(this.editTableData[i].moCount);
|
|
|
+ // meshSpecsTwo.push('+');
|
|
|
+ // meshNumberTwo.push('+');
|
|
|
+ // numbersArr.push('1');
|
|
|
+ // }
|
|
|
+
|
|
|
+ let data = {
|
|
|
+ mergeIds: this.editTableData.map(item=>item.id).toString(),
|
|
|
+ meshNumber: this.editTableData.map(item=>item.blockCount).join('+'),
|
|
|
+ modulus:this.modulusNum1&&this.modulusNum2?this.modulusNum1+','+this.modulusNum2:this.modulusNum1||this.modulusNum2,
|
|
|
+ job:this.modulusNum1&&this.modulusNum2?2:1,
|
|
|
+ endTime:this.taskDate
|
|
|
+ // mergeId: ids.join(','),
|
|
|
+ // numbers: numbersArr.join(','),
|
|
|
+ // moduls: String(this.modulusSum), // 合计模数
|
|
|
+ // meshSpecs: meshSpecs.join(','), // 网片尺寸
|
|
|
+ // meshNumber: meshNumber.join(','), // 网片数量
|
|
|
+ // meshSpecsTwo: meshSpecsTwo.join(','), // 网片尺寸2
|
|
|
+ // meshNumberTwo: meshNumberTwo.join(','), // 网片数量2
|
|
|
+ // meshType: '单网', // 网片类型
|
|
|
+ // joba: '班组A',
|
|
|
+ // jobb: '班组B',
|
|
|
+ // endTime: this.taskDate + ' 00:00:00', // 任务日期
|
|
|
+ // jobaModulus: Number(this.modulusNum1), // 网A数量
|
|
|
+ // jobbModulus: Number(this.modulusNum2) // 网B数量
|
|
|
+ };
|
|
|
+
|
|
|
+ updateMergeV2(data)
|
|
|
+ .then((res) => {
|
|
|
+ this.pageLoading = false;
|
|
|
+ this.$message.success('任务添加成功!');
|
|
|
+ this.resetEditTable();
|
|
|
+ this.getScheduleWorkOrder({});
|
|
|
+ this.getPutMeshWorkOrder();
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ this.pageLoading = false;
|
|
|
+ this.$message.success('任务添加失败!');
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 筛选等级1
|
|
|
+ filterWeightMethod1(value, row, column) {
|
|
|
+ const property = column['property'];
|
|
|
+ return row[property] === value;
|
|
|
+ },
|
|
|
+ // 筛选高度1
|
|
|
+ filterHeightMethod1(value, row, column) {
|
|
|
+ const property = column['property'];
|
|
|
+ return row[property] === value;
|
|
|
+ },
|
|
|
+ // 筛选班组1
|
|
|
+ filterJobMethod1(value, row, column) {
|
|
|
+ const property = column['property'];
|
|
|
+ return row[property] === value;
|
|
|
+ },
|
|
|
+ // 筛选开槽1
|
|
|
+ filterSlottingMethod1(value, row, column) {
|
|
|
+ if (value == '开槽') {
|
|
|
+ return row['isSlotting'] == '1';
|
|
|
+ } else {
|
|
|
+ return row['isSlotting'] == '2';
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 任务未下发列表多选
|
|
|
+ taskDistTableSelectionChange(val) {
|
|
|
+ this.taskDistSelection = val;
|
|
|
+ },
|
|
|
+ // 任务下发按钮操作
|
|
|
+ taskDistribute() {
|
|
|
+ this.$confirm('确认下发选中的任务吗?', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancleButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ })
|
|
|
+ .then(async () => {
|
|
|
+ let ids = this.taskDistSelection.map((item) => item.id)
|
|
|
+ const res = await issuedPutMeshWorkOrder({ id:ids,status:1 });
|
|
|
+ this.$message.success('任务下发成功!');
|
|
|
+ this.getPutMeshWorkOrder();
|
|
|
+ this.getWorkUnreport();
|
|
|
+ })
|
|
|
+ .catch(() => {});
|
|
|
+ },
|
|
|
+ // 任务下发未报工列表多选
|
|
|
+ workUnreportTableSelectionChange(val) {
|
|
|
+ this.workUnreportSelection = val;
|
|
|
+ },
|
|
|
+ // 按钮全选
|
|
|
+ seletAll(data, tableName) {
|
|
|
+ if (data) {
|
|
|
+ data.forEach((row) => {
|
|
|
+ this.$refs[tableName].toggleRowSelection(row, true);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 批量删除挂网工单信息(取消、删除、撤回)
|
|
|
+ handleDeleteWorkOrder(btnType, type) {
|
|
|
+ this.$confirm(`确定${btnType}选中的任务吗?`, '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancleButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ this.pageLoading = true;
|
|
|
+ let ids = '';
|
|
|
+ if (btnType == '取消') {
|
|
|
+ ids = this.taskDistSelection.map((item) => item.id);
|
|
|
+ } else if (btnType == '撤回' || btnType == '删除') {
|
|
|
+ ids = this.workUnreportSelection.map((item) => item.id);
|
|
|
+ }
|
|
|
+ // let params = { type, ids };
|
|
|
+ deletePutMeshWorkOrder({id:ids},type)
|
|
|
+ .then((res) => {
|
|
|
+ this.pageLoading = false;
|
|
|
+ this.$message.success(res.data.msg);
|
|
|
+ this.getScheduleWorkOrder({});
|
|
|
+ this.getPutMeshWorkOrder();
|
|
|
+ this.getWorkUnreport();
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.pageLoading = false;
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch(() => {});
|
|
|
+ },
|
|
|
+ // 未合并挂网列表删除
|
|
|
+ handleDeleteSchedule(row) {
|
|
|
+ this.$confirm('确定删除选中的任务吗?', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancleButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ this.pageLoading = true;
|
|
|
+ let ids = row.id;
|
|
|
+ deleteScheduleWorkOrder({ ids })
|
|
|
+ .then((res) => {
|
|
|
+ this.pageLoading = false;
|
|
|
+ this.$message.success(res.data.msg);
|
|
|
+ this.getScheduleWorkOrder({});
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.pageLoading = false;
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch(() => {});
|
|
|
+ }
|
|
|
+ }
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+.avue-view {
|
|
|
+ height: 100vh;
|
|
|
+}
|
|
|
+.title {
|
|
|
+ display: flex;
|
|
|
+ justify-content: flex-start;
|
|
|
+ align-items: center;
|
|
|
+ margin-left: 0;
|
|
|
+ padding: 0 20px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ // color: #000;
|
|
|
+ height: 60px;
|
|
|
+ width: 100%;
|
|
|
+ background-color: #fff;
|
|
|
+ font-size: 16px;
|
|
|
+ .item:nth-child(1) {
|
|
|
+ flex: 1;
|
|
|
+ }
|
|
|
+ .item:nth-child(2) {
|
|
|
+ flex: 2;
|
|
|
+ text-align: left;
|
|
|
+ }
|
|
|
+ .item:nth-child(3) {
|
|
|
+ flex: 2;
|
|
|
+ text-align: left;
|
|
|
+ }
|
|
|
+ .item:nth-child(4) {
|
|
|
+ flex: 2;
|
|
|
+ text-align: right;
|
|
|
+ }
|
|
|
+ .item:nth-child(5) {
|
|
|
+ flex: 1;
|
|
|
+ }
|
|
|
+ .subWorkNameBox {
|
|
|
+ font-size: 24px;
|
|
|
+ }
|
|
|
+}
|
|
|
+:deep(.el-table) th.el-table__cell {
|
|
|
+ background: none;
|
|
|
+}
|
|
|
+:deep(.el-card.is-always-shadow),
|
|
|
+:deep(.el-table__empty-block),
|
|
|
+.basic-container {
|
|
|
+ // background-color: #fff;
|
|
|
+ height: calc(100% - 66px);
|
|
|
+}
|
|
|
+
|
|
|
+:deep(.el-table--border) {
|
|
|
+ overflow: auto;
|
|
|
+}
|
|
|
+
|
|
|
+:deep(.el-table::before) {
|
|
|
+ display: none;
|
|
|
+}
|
|
|
+
|
|
|
+:deep(.el-table) thead,
|
|
|
+:deep(.el-table) tbody {
|
|
|
+ // color: #000 !important;
|
|
|
+}
|
|
|
+
|
|
|
+:deep(.el-table) thead th,
|
|
|
+:deep(.el-table) tbody td {
|
|
|
+ // background-color: #080848 !important;
|
|
|
+ font-size: 16px;
|
|
|
+}
|
|
|
+
|
|
|
+// 全局修改滚动条样式
|
|
|
+:deep(::-webkit-scrollbar-thumb) {
|
|
|
+ // background-color: #666aa1;
|
|
|
+}
|
|
|
+
|
|
|
+:deep(.el-button) {
|
|
|
+ // background-color: #080848;
|
|
|
+ // color: #fff;
|
|
|
+}
|
|
|
+
|
|
|
+// 最上面一行
|
|
|
+.unMerge-list {
|
|
|
+ height: 50%;
|
|
|
+ margin-bottom: 8px;
|
|
|
+ // border: 1px solid #fff;
|
|
|
+ .table-header-row {
|
|
|
+ display: flex;
|
|
|
+ .screen {
|
|
|
+ padding: 9px 30px;
|
|
|
+ margin: 5px 0 5px 5px;
|
|
|
+ }
|
|
|
+ .table-title {
|
|
|
+ flex: 1;
|
|
|
+ // color: #fff;
|
|
|
+ text-align: center;
|
|
|
+ font-size: 20px;
|
|
|
+ padding-right: 10%;
|
|
|
+ line-height: 43px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .handle-btn {
|
|
|
+ font-size: 16px;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 筛选弹窗
|
|
|
+.search-form {
|
|
|
+ :deep(.el-input__inner) {
|
|
|
+ width: 300px;
|
|
|
+ }
|
|
|
+}
|
|
|
+// 筛选弹窗
|
|
|
+.searchForm-btns {
|
|
|
+ margin-top: 10px;
|
|
|
+ text-align: center;
|
|
|
+ padding-right: 30px;
|
|
|
+ :deep(.el-button) {
|
|
|
+ // background-color: #157a2c !important;
|
|
|
+ padding: 9px 30px;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 第二行
|
|
|
+.merge-pic-table-title {
|
|
|
+ color: #fff;
|
|
|
+ font-size: 20px;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 40px;
|
|
|
+ // border: 1px solid #fff;
|
|
|
+ border-bottom: 0;
|
|
|
+}
|
|
|
+.merge-pic-table {
|
|
|
+ display: flex;
|
|
|
+ height: 200px;
|
|
|
+ .merge-pic {
|
|
|
+ display: flex;
|
|
|
+ width: 610px;
|
|
|
+ height: 100%;
|
|
|
+ margin-right: 8px;
|
|
|
+ color: #fff;
|
|
|
+ // border: 1px solid #fff;
|
|
|
+ box-sizing: border-box;
|
|
|
+ font-size: 14px;
|
|
|
+ > div {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-around;
|
|
|
+ padding: 15px 0;
|
|
|
+ &:nth-child(1) {
|
|
|
+ background-color: #409eff;
|
|
|
+ }
|
|
|
+ &:nth-child(2) {
|
|
|
+ background-color: #e6a23c;
|
|
|
+ }
|
|
|
+ &:nth-child(3) {
|
|
|
+ background-color: #67c23a;
|
|
|
+ }
|
|
|
+ &:last-child {
|
|
|
+ background-color: #191a23;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .merge-table {
|
|
|
+ flex: 0.6;
|
|
|
+ height: 100%;
|
|
|
+ border: 1px solid #fff;
|
|
|
+ box-sizing: border-box;
|
|
|
+ :deep(.el-table__header-wrapper) {
|
|
|
+ background-color: #080848;
|
|
|
+ }
|
|
|
+ :deep(.el-table) {
|
|
|
+ // border: 0;
|
|
|
+ height: calc(100% - 45px);
|
|
|
+ // background-color: #080848;
|
|
|
+ }
|
|
|
+ :deep(.el-button--primary) {
|
|
|
+ padding: 9px 30px;
|
|
|
+ // border-color: #fff;
|
|
|
+ }
|
|
|
+ .merge-btns {
|
|
|
+ padding: 5px;
|
|
|
+ text-align: right;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .info-message {
|
|
|
+ flex: 0.4;
|
|
|
+ border-top: 1px solid #ededed;
|
|
|
+ border-left: 1px solid #ededed;
|
|
|
+ margin-left: 8px;
|
|
|
+ display: flex;
|
|
|
+ // color: #fff;
|
|
|
+ .info-item {
|
|
|
+ flex: 1;
|
|
|
+ border-right: 1px solid #ededed;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ font-size: 16px;
|
|
|
+ > span,
|
|
|
+ :deep(.el-input) {
|
|
|
+ flex: 1;
|
|
|
+ border-bottom: 1px solid #ededed;
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ }
|
|
|
+ :deep(.el-input__inner) {
|
|
|
+ padding: 0;
|
|
|
+ padding-left: 10px;
|
|
|
+ // border: 0;
|
|
|
+ border-radius: 0;
|
|
|
+ margin: 0 5px;
|
|
|
+ // background-color: #ccc;
|
|
|
+ // color: #fff;
|
|
|
+ }
|
|
|
+ :deep(.el-date-editor) {
|
|
|
+ width: 100%;
|
|
|
+ }
|
|
|
+ :deep(.el-input__icon) {
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 第三行 任务未下发列表 和下发未报工列表
|
|
|
+.task-distribution {
|
|
|
+ margin-top: 8px;
|
|
|
+ display: flex;
|
|
|
+ .task-dist {
|
|
|
+ width: 45%;
|
|
|
+ overflow: auto;
|
|
|
+ margin-right: 8px;
|
|
|
+ // border: 1px solid #fff;
|
|
|
+ box-sizing: border-box;
|
|
|
+ .task-btns {
|
|
|
+ // border-bottom: 1px solid #fff;
|
|
|
+ padding: 5px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ .task-dist-title {
|
|
|
+ font-size: 20px;
|
|
|
+ // color: #fff;
|
|
|
+ text-align: center;
|
|
|
+ flex: 1;
|
|
|
+ align-self: center;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .work-unreport {
|
|
|
+ width: 55%;
|
|
|
+ overflow: auto;
|
|
|
+ // border: 1px solid #fff;
|
|
|
+ box-sizing: border-box;
|
|
|
+ .unreport-btns {
|
|
|
+ padding: 5px;
|
|
|
+ // border-bottom: 1px solid #fff;
|
|
|
+ box-sizing: border-box;
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ .work-unreport-title {
|
|
|
+ flex: 1;
|
|
|
+ font-size: 20px;
|
|
|
+ // color: #fff;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 33px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+:deep(.el-dropdown-selfdefine) {
|
|
|
+ font-size: 16px;
|
|
|
+ // color: #fff;
|
|
|
+}
|
|
|
+:deep(.el-dropdown-menu) {
|
|
|
+ padding: 4px;
|
|
|
+ box-sizing: border-box;
|
|
|
+}
|
|
|
+:deep(.el-dropdown-menu__item) {
|
|
|
+ font-size: 16px !important;
|
|
|
+}
|
|
|
+:deep(.el-table__column-filter-trigger) i {
|
|
|
+ font-size: 14px;
|
|
|
+ // color: #fff;
|
|
|
+}
|
|
|
+// /deep/ .el-table__header tr,
|
|
|
+// /deep/ .el-table__header th {
|
|
|
+// height: 42px;
|
|
|
+// }
|
|
|
+</style>
|