|
@@ -0,0 +1,2589 @@
|
|
|
|
|
+<template>
|
|
|
|
|
+ <div style="margin-left: 0px;padding: 2px;">
|
|
|
|
|
+ <header>
|
|
|
|
|
+ </header>
|
|
|
|
|
+
|
|
|
|
|
+ <el-container>
|
|
|
|
|
+ <el-container>
|
|
|
|
|
+ <el-main style="padding: 0px;">
|
|
|
|
|
+
|
|
|
|
|
+ <div style="font-size: 1.5vh; font-weight: bold;color: red;">
|
|
|
|
|
+
|
|
|
|
|
+ <el-row :gutter="24" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-col :span="5" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-form-item label="车间名称" prop="workshop" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.cjmc"
|
|
|
|
|
+ id="车间名称"
|
|
|
|
|
+ placeholder="请选择车间"
|
|
|
|
|
+ style="width: 100%; margin-top:0px; margin-bottom: 3px;"
|
|
|
|
|
+ @change="handleWorkshopChange"
|
|
|
|
|
+ @keydown="ent($event, 'rate10', '车间名称', '产品名称')"
|
|
|
|
|
+ :loading="workshopLoading"
|
|
|
|
|
+ filterable
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in workshopOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="8" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-form-item label="机台名称" prop="machine" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.jtmc"
|
|
|
|
|
+ id="机台名称"
|
|
|
|
|
+ placeholder="请先选择车间"
|
|
|
|
|
+ style="width: 100%; margin-top:0px; margin-bottom: 3px;"
|
|
|
|
|
+ @keydown="ent($event, '车间名称', '机台名称', '工序名称')"
|
|
|
|
|
+ @change="handleMachineChange"
|
|
|
|
|
+ :disabled="!formData3.cjmc || machineOptions.length === 0"
|
|
|
|
|
+ :loading="machineLoading"
|
|
|
|
|
+ filterable
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in machineOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+ <el-row :gutter="24" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-col :span="5" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-form-item label="工单编号" prop="order" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.order"
|
|
|
|
|
+ id="工单编号"
|
|
|
|
|
+ placeholder="请输入或选择工单"
|
|
|
|
|
+ style="width: 100%; margin-top:0px; margin-bottom: 3px;"
|
|
|
|
|
+ @keydown="ent($event, 'rate10', '工单编号', '产品名称')"
|
|
|
|
|
+ @change="handleWorkOrderChange"
|
|
|
|
|
+ filterable
|
|
|
|
|
+ remote
|
|
|
|
|
+ :remote-method="searchWorkOrders"
|
|
|
|
|
+ :loading="workOrderLoading"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ :default-first-option="true"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in workOrderOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="10" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-form-item label="产品名称" prop="product_name" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ v-model="formData3.product_name"
|
|
|
|
|
+ id="产品名称"
|
|
|
|
|
+ disabled
|
|
|
|
|
+ style="margin-top:0px; margin-bottom: 3px;"
|
|
|
|
|
+ @keydown="ent($event, '工单编号', '产品名称', '工序名称')"
|
|
|
|
|
+ placeholder=""
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="5" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-form-item label="工序名称" prop="gxmc" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.gxmc"
|
|
|
|
|
+ id="工序名称"
|
|
|
|
|
+ placeholder="请先选择车间"
|
|
|
|
|
+ style="width: 100%; margin-top:0px; margin-bottom: 3px;"
|
|
|
|
|
+ @keydown="ent($event, '产品名称', '工序名称', '印件号')"
|
|
|
|
|
+ :disabled="!formData3.cjmc || processOptions.length === 0"
|
|
|
|
|
+ :loading="processLoading"
|
|
|
|
|
+ filterable
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in processOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+ <!-- <el-row :gutter="24" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-col :span="4" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-form-item label="印件号" prop="id" label-width="60" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-input v-model="formData3.yjno" disabled style="margin-top:0px; margin-bottom: 3px;" id="印件号" @keydown="ent($event, '工序名称', '印件号', '印件名称')" placeholder="" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="10" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+
|
|
|
|
|
+ <el-col :span="4" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-form-item label="工序号" prop="id" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-input v-model="formData3.gxh" disabled id="gxh" style="margin-top:0px; margin-bottom: 3px;" @keydown="ent($event, '工艺名称', 'gxh', '日期')" placeholder="" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row> -->
|
|
|
|
|
+ <el-row :gutter="24" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <!-- <el-col :span="1" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ </el-col> -->
|
|
|
|
|
+ <el-col :span="6" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-form-item label="日期" prop="" style="margin-top:0px; margin-bottom: 3px;margin-left:24px">
|
|
|
|
|
+ <el-date-picker
|
|
|
|
|
+ v-model="formData3.日期"
|
|
|
|
|
+ type="date"
|
|
|
|
|
+ format="YYYY-MM-DD HH:mm:ss"
|
|
|
|
|
+ value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ <!-- <el-col :span="5" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-form-item label="流程标牌" prop="id" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-input v-model="formData3.流程标牌" id="流程标牌" style="margin-top:0px; margin-bottom: 3px;" @keydown="ent($event, '日期', '流程标牌', '上机时间')" placeholder="" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col> -->
|
|
|
|
|
+ <el-col :span="6">
|
|
|
|
|
+ <el-form-item label="上机时间:" prop="flatFeed" class="mab">
|
|
|
|
|
+ <el-date-picker
|
|
|
|
|
+ v-model="formData3.上机时间"
|
|
|
|
|
+ type="datetime"
|
|
|
|
|
+ format="YYYY-MM/DD HH:mm:ss"
|
|
|
|
|
+ value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="6">
|
|
|
|
|
+ <el-form-item label="下机时间:" prop="flatFeed" class="mab">
|
|
|
|
|
+ <el-date-picker
|
|
|
|
|
+ v-model="formData3.下机时间"
|
|
|
|
|
+ type="datetime"
|
|
|
|
|
+ format="YYYY-MM-DD HH:mm:ss"
|
|
|
|
|
+ value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <!-- <div style="margin-top: 20px;">-->
|
|
|
|
|
+ <div style="margin-top: 5px;">
|
|
|
|
|
+ <el-row :gutter="24" style="margin-top:0px; margin-bottom: 5px;">
|
|
|
|
|
+ <!-- <el-col :span="1" style="margin-top:0px; margin-bottom: 3px;"></el-col> -->
|
|
|
|
|
+ <el-col :span="4" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-form-item label="来料数量" prop="" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-input v-model="formData3.来料数量" id="来料数量" style="margin-top:0px; margin-bottom: 3px;" @keydown="ent($event, '前工序废', '来料异常', '联数')" placeholder="" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="4" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-form-item label="产量" prop="" style="margin-top:0px; margin-bottom: 3px;margin-left:24px">
|
|
|
|
|
+ <el-input v-model="formData3.产量" id="产量" style="margin-top:0px; margin-bottom: 3px;" @keydown="ent($event, '下机时间', '产量', '制程废品')" placeholder="" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+
|
|
|
|
|
+ <el-col :span="5" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-form-item label="制程废品" prop="id" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-input v-model="formData3.制程废品" id="制程废品" style="margin-top:0px; margin-bottom: 3px;" @keydown="ent($event, '产量', '制程废品', '制程次品')" placeholder="" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ <el-col :span="4" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-form-item label="联数" prop="" style="margin-top:0px; margin-bottom: 3px;margin-left:24px">
|
|
|
|
|
+ <el-input v-model="formData3.Gy0_ls" disabled id="联数" style="margin-top:0px; margin-bottom: 3px;" @keydown="ent($event, '来料异常', '联数', '墨色')" placeholder="" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+
|
|
|
|
|
+ <el-row :gutter="24" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <!-- <el-col :span="1" style="margin-top:0px; margin-bottom: 3px;"></el-col> -->
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ <el-col :span="5" style="margin-left:15px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-form-item label="装版工时" prop="id" style="margin-top:0px; margin-bottom: 3px;margin-left:-12px">
|
|
|
|
|
+ <el-input v-model="formData3.装版工时" id="装版工时" style="margin-top:0px; margin-bottom: 3px;" @keydown="ent($event, '墨色', '装版总时长', '打样总工时')" placeholder="" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="5" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-form-item label="保养工时" prop="id" style="margin-top:0px; margin-bottom: 3px;margin-left:-12px">
|
|
|
|
|
+ <el-input v-model="formData3.保养工时" style="margin-top:0px; margin-bottom: 3px;" id="保养工时" @keydown="ent($event, '装版总时长', '打样总工时', '通电工时')" placeholder="" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+
|
|
|
|
|
+ <el-col :span="4" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-form-item label="异常类型" prop="id" style="margin-top:0px; margin-bottom: 3px;margin-left:-12px">
|
|
|
|
|
+ <el-input v-model="formData3.异常类型" style="margin-top:0px; margin-bottom: 3px;" id="异常类型" disabled @keydown="ent($event, '装版总时长', '打样总工时', '通电工时')" placeholder="" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+
|
|
|
|
|
+ <el-col :span="5" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-form-item label="异常工时" prop="id" style="margin-top:0px; margin-bottom: 3px;margin-left:-12px">
|
|
|
|
|
+ <el-input v-model="formData3.异常工时" style="margin-top:0px; margin-bottom: 3px;" id="异常工时" @keydown="ent($event, '装版总时长', '打样总工时', '通电工时')" placeholder="" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+
|
|
|
|
|
+ <el-col :span="4" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-form-item label="通电工时" prop="id" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-input v-model="formData3.通电工时" style="margin-top:0px; margin-bottom: 3px;" id="通电工时" @keydown="ent($event, '打样总工时', '通电工时', '定额代号')" placeholder="" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+
|
|
|
|
|
+ <el-row :gutter="4" style="margin-top:0px; margin-bottom: 1vh;">
|
|
|
|
|
+ <!-- <el-col :span="1" style="margin-top:0px; margin-bottom: 3px;"></el-col> -->
|
|
|
|
|
+ <el-col :span="4" style="margin-top:0px; margin-bottom: 3px;margin-left:0">
|
|
|
|
|
+ <el-form-item label="定额代号" prop="id" style="margin-top:0px; margin-bottom: 3px;">
|
|
|
|
|
+ <el-input v-model="formData3.定额代号" disabled id="定额代号" style="margin-top:0px; margin-bottom: 3px;" @keydown="ent($event, '通电工时', '定额代号', '码开始行')" placeholder="" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ <div style="display: flex;">
|
|
|
|
|
+ <div style="width: 95vh;">组员及分配比例</div>
|
|
|
|
|
+ <!-- <div style="width: 9vh;margin-left: 70px;">特殊组员</div> -->
|
|
|
|
|
+ <!-- <div style="">拉料人员</div> -->
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <el-row :gutter="10" style="margin-top: 10px;">
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员1['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(1)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员2['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(2)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员3['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(3)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员4['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(4)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员5['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(5)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员6['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(6)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员7['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(7)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员8['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(8)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员9['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(9)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员10['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(10)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+</el-row>
|
|
|
|
|
+
|
|
|
|
|
+ <el-row :gutter="10" style="margin-top: 10px;">
|
|
|
|
|
+ <!-- <el-col :span="2"><el-input v-model="gyformdata.bzdh" id="bzdh" @keydown="ent1($event)"/></el-col> -->
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员1['编号']" id="bh1" @keyup.enter.native="GetYg($event, '1')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员2['编号']" id="bh2" @keyup.enter.native="GetYg($event, '2')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员3['编号']" id="bh3" @keyup.enter.native="GetYg($event, '3')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员4['编号']" id="bh4" @keyup.enter.native="GetYg($event, '4')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员5['编号']" id="bh5" @keyup.enter.native="GetYg($event, '5')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员6['编号']" id="bh6" @keyup.enter.native="GetYg($event, '6')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员7['编号']" id="bh7" @keyup.enter.native="GetYg($event, '7')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员8['编号']" id="bh8" @keyup.enter.native="GetYg($event, '8')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员9['编号']" id="bh9" @keyup.enter.native="GetYg($event, '9')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员10['编号']" id="bh10" @keyup.enter.native="GetYg($event, '10')"/></el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+
|
|
|
|
|
+ <el-row :gutter="10" style="margin-top: 10px;">
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员1['姓名']" disabled id="name1"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员2['姓名']" disabled id="name2"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员3['姓名']" disabled id="name3"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员4['姓名']" disabled id="name4"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员5['姓名']" disabled id="name5"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员6['姓名']" disabled id="name6"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员7['姓名']" disabled id="name7"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员8['姓名']" disabled id="name8"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员9['姓名']" disabled id="name9"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员10['姓名']" disabled id="name10"/></el-col>
|
|
|
|
|
+ <!-- <el-col :span="2"><el-input v-model="gyformdata.拉料['姓名']" id="name11"/></el-col> -->
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ <el-row :gutter="10" style="margin-top: 10px;">
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员11['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(11)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员12['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(12)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员13['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(13)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员14['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(14)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员15['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(15)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员16['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(16)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员17['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(17)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员18['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(18)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员19['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(19)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员20['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(20)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+</el-row>
|
|
|
|
|
+
|
|
|
|
|
+ <el-row :gutter="10" style="margin-top: 10px;">
|
|
|
|
|
+ <!-- <el-col :span="2"><el-input v-model="gyformdata.bzdh" id="bzdh" @keydown="ent1($event)"/></el-col> -->
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员11['编号']" id="bh11" @keyup.enter.native="GetYg($event, '11')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员12['编号']" id="bh12" @keyup.enter.native="GetYg($event, '12')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员13['编号']" id="bh13" @keyup.enter.native="GetYg($event, '13')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员14['编号']" id="bh14" @keyup.enter.native="GetYg($event, '14')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员15['编号']" id="bh15" @keyup.enter.native="GetYg($event, '15')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员16['编号']" id="bh16" @keyup.enter.native="GetYg($event, '16')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员17['编号']" id="bh17" @keyup.enter.native="GetYg($event, '17')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员18['编号']" id="bh18" @keyup.enter.native="GetYg($event, '18')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员19['编号']" id="bh19" @keyup.enter.native="GetYg($event, '19')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员20['编号']" id="bh20" @keyup.enter.native="GetYg($event, '20')"/></el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+
|
|
|
|
|
+ <el-row :gutter="10" style="margin-top: 10px;">
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员11['姓名']" disabled id="name11"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员12['姓名']" disabled id="name12"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员13['姓名']" disabled id="name13"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员14['姓名']" disabled id="name14"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员15['姓名']" disabled id="name15"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员16['姓名']" disabled id="name16"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员17['姓名']" disabled id="name17"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员18['姓名']" disabled id="name18"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员19['姓名']" disabled id="name19"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员20['姓名']" disabled id="name20"/></el-col>
|
|
|
|
|
+ <!-- <el-col :span="2"><el-input v-model="gyformdata.拉料['姓名']" id="name11"/></el-col> -->
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ <el-row :gutter="10" style="margin-top: 10px;">
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员21['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(21)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员22['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(22)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员23['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(23)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员24['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(24)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员25['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(25)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员26['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(26)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员27['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(27)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员28['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(28)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员29['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(29)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formData3.组员30['角色']"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
|
|
+ :disabled="roleDisabled"
|
|
|
|
|
+ @change="handleRoleChange(30)"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in roleOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+</el-row>
|
|
|
|
|
+
|
|
|
|
|
+ <el-row :gutter="10" style="margin-top: 10px;">
|
|
|
|
|
+ <!-- <el-col :span="2"><el-input v-model="gyformdata.bzdh" id="bzdh" @keydown="ent1($event)"/></el-col> -->
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员21['编号']" id="bh21" @keyup.enter.native="GetYg($event, '21')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员22['编号']" id="bh22" @keyup.enter.native="GetYg($event, '22')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员23['编号']" id="bh23" @keyup.enter.native="GetYg($event, '23')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员24['编号']" id="bh24" @keyup.enter.native="GetYg($event, '24')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员25['编号']" id="bh25" @keyup.enter.native="GetYg($event, '25')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员26['编号']" id="bh26" @keyup.enter.native="GetYg($event, '26')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员27['编号']" id="bh27" @keyup.enter.native="GetYg($event, '27')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员28['编号']" id="bh28" @keyup.enter.native="GetYg($event, '28')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员29['编号']" id="bh29" @keyup.enter.native="GetYg($event, '29')"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员30['编号']" id="bh30" @keyup.enter.native="GetYg($event, '30')"/></el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+
|
|
|
|
|
+ <el-row :gutter="10" style="margin-top: 10px;">
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员21['姓名']" disabled id="name21"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员22['姓名']" disabled id="name22"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员23['姓名']" disabled id="name23"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员24['姓名']" disabled id="name24"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员25['姓名']" disabled id="name25"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员26['姓名']" disabled id="name26"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员27['姓名']" disabled id="name27"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员28['姓名']" disabled id="name28"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员29['姓名']" disabled id="name29"/></el-col>
|
|
|
|
|
+ <el-col :span="2"><el-input v-model="formData3.组员30['姓名']" disabled id="name30"/></el-col>
|
|
|
|
|
+ <!-- <el-col :span="2"><el-input v-model="gyformdata.拉料['姓名']" id="name11"/></el-col> -->
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+
|
|
|
|
|
+ <div class="dialog-footer">
|
|
|
|
|
+ <el-button type="primary" @click="bzenterDialog">班组修改</el-button>
|
|
|
|
|
+ <el-button type="primary" @click="chanliangenterDialog">确 定</el-button>
|
|
|
|
|
+ <el-button style="margin-left: 50px; " type="primary" @click="ontimeForm">计时上传</el-button>
|
|
|
|
|
+
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ <el-dialog v-model="dialogFormVisible" :before-close="closeDialog"
|
|
|
|
|
+ title="计时上传" destroy-on-close width="800px">
|
|
|
|
|
+ <!-- <el-scrollbar height="500px"> -->
|
|
|
|
|
+ <el-form id="detail-form" ref="elFormRef" :model="detailData" label-position="left"
|
|
|
|
|
+ @keyup="moveFocus">
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 日期 -->
|
|
|
|
|
+ <el-row>
|
|
|
|
|
+ <el-form-item label="日期" prop="name">
|
|
|
|
|
+ <el-input type="date" max="9999-12-31" id="riqi" v-model="detailData.wgjs_rq"
|
|
|
|
|
+ style="width: 100px;" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 标题栏 -->
|
|
|
|
|
+ <el-row :gutter="10">
|
|
|
|
|
+ <el-col :span="3"> <span>员工编号</span> </el-col>
|
|
|
|
|
+ <el-col :span="3"> <span>员工姓名</span> </el-col>
|
|
|
|
|
+ <el-col :span="3"> <span>计时</span> </el-col>
|
|
|
|
|
+ <el-col :span="12"> <span>原因备注</span> </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 员工1 -->
|
|
|
|
|
+ <el-row :gutter="5" style="margin-top: 10px;">
|
|
|
|
|
+ <el-col :span="3">
|
|
|
|
|
+ <el-input v-model="detailData.wgjs_bh1" id="bh" :formatter="val => val.toUpperCase()"
|
|
|
|
|
+ placeholder="Enter回车" />
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="3">
|
|
|
|
|
+ <el-input v-model="detailData.name1" readonly />
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="3">
|
|
|
|
|
+ <el-input v-model="detailData.wgjs_js1" />
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="12">
|
|
|
|
|
+ <el-select v-model="detailData.wgjs_yy1">
|
|
|
|
|
+ <el-option label="" value="" />
|
|
|
|
|
+ <el-option label="换型清场" value="换型清场" />
|
|
|
|
|
+ <el-option label="异常工时" value="异常工时" />
|
|
|
|
|
+ <el-option label="设备维修" value="设备维修" />
|
|
|
|
|
+ <el-option label="设备保养" value="设备保养" />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 员工2 -->
|
|
|
|
|
+ <el-row :gutter="5" style="margin-top: 10px;">
|
|
|
|
|
+ <el-col :span="3">
|
|
|
|
|
+ <el-input v-model="detailData.wgjs_bh2" :formatter="val => val.toUpperCase()"
|
|
|
|
|
+ placeholder="Enter回车" />
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="3">
|
|
|
|
|
+ <el-input v-model="detailData.name2" readonly />
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="3">
|
|
|
|
|
+ <el-input v-model="detailData.wgjs_js2" />
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="12">
|
|
|
|
|
+ <el-select v-model="detailData.wgjs_yy2">
|
|
|
|
|
+ <el-option label="" value="" />
|
|
|
|
|
+ <el-option label="换型清场" value="换型清场" />
|
|
|
|
|
+ <el-option label="异常工时" value="异常工时" />
|
|
|
|
|
+ <el-option label="设备维修" value="设备维修" />
|
|
|
|
|
+ <el-option label="设备保养" value="设备保养" />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 员工3 -->
|
|
|
|
|
+ <el-row :gutter="5" style="margin-top: 10px;">
|
|
|
|
|
+ <el-col :span="3">
|
|
|
|
|
+ <el-input v-model="detailData.wgjs_bh3" :formatter="val => val.toUpperCase()"
|
|
|
|
|
+ placeholder="Enter回车" />
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="3">
|
|
|
|
|
+ <el-input v-model="detailData.name3" readonly />
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="3">
|
|
|
|
|
+ <el-input v-model="detailData.wgjs_js3" />
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="12">
|
|
|
|
|
+ <el-select v-model="detailData.wgjs_yy3">
|
|
|
|
|
+ <el-option label="" value="" />
|
|
|
|
|
+ <el-option label="换型清场" value="换型清场" />
|
|
|
|
|
+ <el-option label="异常工时" value="异常工时" />
|
|
|
|
|
+ <el-option label="设备维修" value="设备维修" />
|
|
|
|
|
+ <el-option label="设备保养" value="设备保养" />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 员工4 -->
|
|
|
|
|
+ <el-row :gutter="5" style="margin-top: 10px;">
|
|
|
|
|
+ <el-col :span="3">
|
|
|
|
|
+ <el-input v-model="detailData.wgjs_bh4" :formatter="val => val.toUpperCase()"
|
|
|
|
|
+ placeholder="Enter回车" />
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="3">
|
|
|
|
|
+ <el-input v-model="detailData.name4" readonly />
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="3">
|
|
|
|
|
+ <el-input v-model="detailData.wgjs_js4" />
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="12">
|
|
|
|
|
+ <el-select v-model="detailData.wgjs_yy4">
|
|
|
|
|
+ <el-option label="" value="" />
|
|
|
|
|
+ <el-option label="换型清场" value="换型清场" />
|
|
|
|
|
+ <el-option label="异常工时" value="异常工时" />
|
|
|
|
|
+ <el-option label="设备维修" value="设备维修" />
|
|
|
|
|
+ <el-option label="设备保养" value="设备保养" />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 员工5 -->
|
|
|
|
|
+ <el-row :gutter="5" style="margin-top: 10px;">
|
|
|
|
|
+ <el-col :span="3">
|
|
|
|
|
+ <el-input v-model="detailData.wgjs_bh5" :formatter="val => val.toUpperCase()"
|
|
|
|
|
+ placeholder="Enter回车" />
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="3">
|
|
|
|
|
+ <el-input v-model="detailData.name5" readonly />
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="3">
|
|
|
|
|
+ <el-input v-model="detailData.wgjs_js5" />
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="12">
|
|
|
|
|
+ <el-select v-model="detailData.wgjs_yy5">
|
|
|
|
|
+ <el-option label="" value="" />
|
|
|
|
|
+ <el-option label="换型清场" value="换型清场" />
|
|
|
|
|
+ <el-option label="异常工时" value="异常工时" />
|
|
|
|
|
+ <el-option label="设备维修" value="设备维修" />
|
|
|
|
|
+ <el-option label="设备保养" value="设备保养" />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 员工6 -->
|
|
|
|
|
+ <el-row :gutter="5" style="margin-top: 10px;">
|
|
|
|
|
+ <el-col :span="3">
|
|
|
|
|
+ <el-input v-model="detailData.wgjs_bh6" :formatter="val => val.toUpperCase()"
|
|
|
|
|
+ placeholder="Enter回车" />
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="3">
|
|
|
|
|
+ <el-input v-model="detailData.name6" readonly />
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="3">
|
|
|
|
|
+ <el-input v-model="detailData.wgjs_js6" />
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="12">
|
|
|
|
|
+ <el-select v-model="detailData.wgjs_yy6">
|
|
|
|
|
+ <el-option label="" value="" />
|
|
|
|
|
+ <el-option label="换型清场" value="换型清场" />
|
|
|
|
|
+ <el-option label="异常工时" value="异常工时" />
|
|
|
|
|
+ <el-option label="设备维修" value="设备维修" />
|
|
|
|
|
+ <el-option label="设备保养" value="设备保养" />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+
|
|
|
|
|
+ </el-form>
|
|
|
|
|
+
|
|
|
|
|
+ <template #footer>
|
|
|
|
|
+ <div class="dialog-footer">
|
|
|
|
|
+ <el-button @click="closeDialog">取 消</el-button>
|
|
|
|
|
+ <el-button type="primary" @click="enterDialog">确 定</el-button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-dialog>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+<!-- 选择修改班组弹窗 -->
|
|
|
|
|
+<el-dialog v-model="bzVisible" title="班组选择" width="90%" style="height: 80vh;">
|
|
|
|
|
+
|
|
|
|
|
+ <el-table
|
|
|
|
|
+ ref="BZmultipleTable"
|
|
|
|
|
+ highlight-current-row="true"
|
|
|
|
|
+ :show-overflow-tooltip="true"
|
|
|
|
|
+ :row-style="{ height: '20px' }"
|
|
|
|
|
+ :cell-style="{ padding: '0px' }"
|
|
|
|
|
+ :header-row-style="{ height: '20px' }"
|
|
|
|
|
+ :header-cell-style="{ padding: '0px' }"
|
|
|
|
|
+ @row-dblclick="handleBzRowDblClick"
|
|
|
|
|
+ :row-class-name="rowClassStyle"
|
|
|
|
|
+ style="width: 100%; height: 400px"
|
|
|
|
|
+ border
|
|
|
|
|
+ tooltip-effect="dark"
|
|
|
|
|
+ :data="FPData"
|
|
|
|
|
+ row-key="ID"
|
|
|
|
|
+ @selection-change="handleBzSelectionChange"
|
|
|
|
|
+ @row-click="handleBzRowClick"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-table-column type="selection" width="55" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="班组" prop="bz" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="角色" prop="role" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="比例" prop="rate" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="人员1" prop="bh1" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="姓名1" prop="name1" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="人员2" prop="bh2" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="姓名2" prop="name2" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="人员3" prop="bh3" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="姓名3" prop="name3" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="人员4" prop="bh4" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="姓名4" prop="name4" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="人员5" prop="bh5" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="姓名5" prop="name5" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="人员6" prop="bh6" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="姓名6" prop="name6" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="人员7" prop="bh7" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="姓名7" prop="name7" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="人员8" prop="bh8" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="姓名8" prop="name8" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="人员9" prop="bh9" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="姓名9" prop="name9" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="人员10" prop="bh10" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="姓名10" prop="name10" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="人员11" prop="bh11" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="姓名11" prop="name11" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="人员12" prop="bh12" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="姓名12" prop="name12" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="人员13" prop="bh13" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="姓名13" prop="name13" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="人员14" prop="bh14" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="姓名14" prop="name14" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="人员15" prop="bh15" width="120" />
|
|
|
|
|
+ <el-table-column sortable align="center" label="姓名15" prop="name15" width="120" />
|
|
|
|
|
+ </el-table>
|
|
|
|
|
+
|
|
|
|
|
+ <template #footer>
|
|
|
|
|
+ <div class="dialog-footer">
|
|
|
|
|
+ <el-button @click="bzVisible = false">取消</el-button>
|
|
|
|
|
+ <el-button type="primary" @click="handleBzConfirm">确定</el-button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </template>
|
|
|
|
|
+</el-dialog>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ <!--当日上报产量 组员及分配比例-->
|
|
|
|
|
+ <el-dialog v-model="blModellist" :before-close="() => blModellist = false" style="width: 20%" @keydown="selectBZRRs($event)">
|
|
|
|
|
+ <el-form>
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <el-table :data="employeeDatalist" border :show-overflow-tooltip="true" :cell-class-name="blplanUsageCellClass"
|
|
|
|
|
+ ref="tableBZRRs"
|
|
|
|
|
+ highlight-current-row="true"
|
|
|
|
|
+ @row-click="tablebllickHandlerlist($event)">
|
|
|
|
|
+ <el-table-column prop="员工编号" label="员工编号"></el-table-column>
|
|
|
|
|
+ <el-table-column prop="ygxm" label="员工姓名"></el-table-column>
|
|
|
|
|
+ </el-table>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-form>
|
|
|
|
|
+ </el-dialog>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ <el-dialog v-model="GetDedhVisible" id="tableFplb" @keydown="ent($event)" style="margin-top: 5%;" >
|
|
|
|
|
+ <el-form>
|
|
|
|
|
+ <el-form-item label="选择定额代号" class="mab" prop="keyOrder"></el-form-item>
|
|
|
|
|
+ <div style="border:1px solid #eee; width:100%; height: 600px; overflow-y: auto;">
|
|
|
|
|
+ <el-tree :data="GetDedhtreeData" ref="table_fplb"
|
|
|
|
|
+ @keydown="handleTreeKeydown"
|
|
|
|
|
+ :props="{ children: 'children',label: 'label'}"
|
|
|
|
|
+ node-key="id" @node-click="handleFplbClick">
|
|
|
|
|
+ </el-tree>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-form>
|
|
|
|
|
+ </el-dialog>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ </el-main>
|
|
|
|
|
+ </el-container>
|
|
|
|
|
+ </el-container>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </template>
|
|
|
|
|
+
|
|
|
|
|
+ <script>
|
|
|
|
|
+ //点击按钮显示下方表格
|
|
|
|
|
+ export default {
|
|
|
|
|
+ data() {
|
|
|
|
|
+ return {
|
|
|
|
|
+ currentTable: '', // 当前展示的表格
|
|
|
|
|
+ activeName: 'first',
|
|
|
|
|
+ _GetorderDetail:'',
|
|
|
|
|
+ };
|
|
|
|
|
+ },
|
|
|
|
|
+ methods: {
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
|
|
+ </script>
|
|
|
|
|
+ <script setup>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ import {
|
|
|
|
|
+ reportInfo,
|
|
|
|
|
+ reportMachineMac,
|
|
|
|
|
+ facilityWorklist,
|
|
|
|
|
+ setProcessStatus,
|
|
|
|
|
+ submitDailyProduction,
|
|
|
|
|
+ getYg,
|
|
|
|
|
+ JpUploade,
|
|
|
|
|
+ getTimelist,
|
|
|
|
|
+ getRejectRate,
|
|
|
|
|
+ JPproductionDedh
|
|
|
|
|
+ } from '@/api/jixiaoguanli/jitairibaobiao'
|
|
|
|
|
+
|
|
|
|
|
+ import {
|
|
|
|
|
+ demoCustomer
|
|
|
|
|
+ } from "@/api/demo";
|
|
|
|
|
+
|
|
|
|
|
+ // 全量引入格式化工具 请按需保留
|
|
|
|
|
+ import { getWorkOrderList,getMachineList,gitProcessList,getGluingcole,getGluingClassLList,AddGluingReportData,GcAdd } from '@/api/mes/huhejob'
|
|
|
|
|
+ import { getDictFunc, formatDate, formatBoolean, filterDict, ReturnArrImg, onDownloadFile } from '@/utils/format'
|
|
|
|
|
+ import { ElMessage, ElMessageBox,ElNotification } from 'element-plus'
|
|
|
|
|
+ import { ref, reactive,watch,nextTick,onMounted } from 'vue'
|
|
|
|
|
+ import { useUserStore } from '@/pinia/modules/user'
|
|
|
|
|
+import { get } from 'scriptjs';
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// 成功
|
|
|
|
|
+const successres = (arr) => {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: '',
|
|
|
|
|
+ dangerouslyUseHTMLString: true,
|
|
|
|
|
+ // duration: 0, // 不自动关闭
|
|
|
|
|
+ message: `<strong style="font-size: 71px; color: black; background-color: #80FA80; padding: 30px 280px; width: 482px; line-height: 60px; text-align: center; display: block;">${arr}</strong>`,
|
|
|
|
|
+ customClass: 'custom-warning-message'
|
|
|
|
|
+ });
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// 失败
|
|
|
|
|
+const errorres = (arr) => {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: '',
|
|
|
|
|
+ dangerouslyUseHTMLString: true,
|
|
|
|
|
+ // duration: 0, // 不自动关闭
|
|
|
|
|
+ message: `<strong style="font-size: 71px; color: white; background-color: red; padding: 30px 280px; width: 482px; line-height: 60px; text-align: center; display: block;">${arr}</strong>`,
|
|
|
|
|
+ customClass: 'custom-warning-message'
|
|
|
|
|
+ });
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// 警告
|
|
|
|
|
+const warningres = (arr) => {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: '',
|
|
|
|
|
+ dangerouslyUseHTMLString: true,
|
|
|
|
|
+ // duration: 0, // 不自动关闭
|
|
|
|
|
+ message: `<strong style="font-size: 71px; color: white; background-color: #e6a23c; padding: 30px 280px; width: 482px; line-height: 60px; text-align: center; display: block;">${arr}</strong>`,
|
|
|
|
|
+ customClass: 'custom-warning-message'
|
|
|
|
|
+ });
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+const formData3= ref({
|
|
|
|
|
+ cjmc: '', // 车间名称
|
|
|
|
|
+ jtmc: '', // 机台名称
|
|
|
|
|
+ order:'',
|
|
|
|
|
+ yjno:'',
|
|
|
|
|
+ gxh:'',
|
|
|
|
|
+ gxmc:'',
|
|
|
|
|
+ product_name:'',
|
|
|
|
|
+ yj_name:'',
|
|
|
|
|
+ gy_name:'',
|
|
|
|
|
+ sczl_jtbh:'',
|
|
|
|
|
+ sczl_bzdh:'',
|
|
|
|
|
+ sys_id:'',
|
|
|
|
|
+ sys_rq:'',
|
|
|
|
|
+ mod_rq:'',
|
|
|
|
|
+ UniqId:'',
|
|
|
|
|
+ 日期:'',
|
|
|
|
|
+ 上机时间:'',
|
|
|
|
|
+ 下机时间:'',
|
|
|
|
|
+ 产量:'',
|
|
|
|
|
+ 制程废品:'',
|
|
|
|
|
+ 制程次品:'',
|
|
|
|
|
+ 来料数量:'',
|
|
|
|
|
+ Gy0_ls:'',
|
|
|
|
|
+ 保养工时:'',
|
|
|
|
|
+ 装版工时:'',
|
|
|
|
|
+ 异常工时:'',
|
|
|
|
|
+ 异常类型:'',
|
|
|
|
|
+ 通电工时:'',
|
|
|
|
|
+ 定额代号:'',
|
|
|
|
|
+ 码开始行:'',
|
|
|
|
|
+ 码结束行:'',
|
|
|
|
|
+ 码包:'',
|
|
|
|
|
+ 主电表:'',
|
|
|
|
|
+ 辅电表:'',
|
|
|
|
|
+ formattedArray:'',
|
|
|
|
|
+ 组员1: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员2: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员3: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员4: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员5: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员6: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员7: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员8: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员9: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员10: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员11: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员12: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员13: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员14: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员15: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员16: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员17: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员18: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员19: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员20: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员21: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员22: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员23: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员24: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员25: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员26: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员27: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员28: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员29: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ 组员30: { 角色:'', 编号: '', 姓名: '', 比例: '' },
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ // 获取当前日期
|
|
|
|
|
+ const today = new Date();
|
|
|
|
|
+ const year = today.getFullYear();
|
|
|
|
|
+ const month = String(today.getMonth() + 1).padStart(2, '0'); // 月份从 0 开始,需要补零
|
|
|
|
|
+ const day = String(today.getDate()).padStart(2, '0');
|
|
|
|
|
+ const hours = String(today.getHours()).padStart(2, '0');
|
|
|
|
|
+ const minutes = String(today.getMinutes()).padStart(2, '0');
|
|
|
|
|
+ const seconds = String(today.getSeconds()).padStart(2, '0');
|
|
|
|
|
+ const currentDate = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
|
|
|
|
+ const currentDates = `${year}-${month}-${day}`;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ const printPageRef = ref()
|
|
|
|
|
+ const userStore = useUserStore()
|
|
|
|
|
+ const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
|
|
|
|
|
+ defineOptions({
|
|
|
|
|
+ name: 'Company'
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ const dbformData=ref({})
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ let JTMC=ref()
|
|
|
|
|
+ let CJMC=ref()
|
|
|
|
|
+
|
|
|
|
|
+ // 车间选项 - 固定四个选项
|
|
|
|
|
+const workshopOptions = ref([
|
|
|
|
|
+ { value: '印后糊盒车间', label: '印后糊盒车间' },
|
|
|
|
|
+ { value: '精品手工车间', label: '精品手工车间' },
|
|
|
|
|
+ { value: '精品自动化车间', label: '精品自动化车间' },
|
|
|
|
|
+ { value: '数字化车间', label: '数字化车间' }
|
|
|
|
|
+])
|
|
|
|
|
+
|
|
|
|
|
+// 其他选项
|
|
|
|
|
+const machineOptions = ref([])
|
|
|
|
|
+const processOptions = ref([])
|
|
|
|
|
+const workOrderOptions = ref([])
|
|
|
|
|
+
|
|
|
|
|
+// 工单缓存 - 存储所有已搜索的工单数据
|
|
|
|
|
+const workOrderCache = ref({})
|
|
|
|
|
+
|
|
|
|
|
+// 加载状态
|
|
|
|
|
+const workshopLoading = ref(false)
|
|
|
|
|
+const machineLoading = ref(false)
|
|
|
|
|
+const processLoading = ref(false)
|
|
|
|
|
+const workOrderLoading = ref(false)
|
|
|
|
|
+
|
|
|
|
|
+// 防抖计时器
|
|
|
|
|
+let debounceTimer = null
|
|
|
|
|
+let workOrderSearchTimer = null
|
|
|
|
|
+
|
|
|
|
|
+// 车间选择变化时的处理
|
|
|
|
|
+const handleWorkshopChange = async (selectedWorkshop) => {
|
|
|
|
|
+ console.log('选择的车间:', selectedWorkshop)
|
|
|
|
|
+
|
|
|
|
|
+ if (!selectedWorkshop) {
|
|
|
|
|
+ // 清空相关数据和选择
|
|
|
|
|
+ machineOptions.value = []
|
|
|
|
|
+ processOptions.value = []
|
|
|
|
|
+ formData3.value.jtmc = ''
|
|
|
|
|
+ formData3.value.gxmc = ''
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 防抖处理
|
|
|
|
|
+ if (debounceTimer) {
|
|
|
|
|
+ clearTimeout(debounceTimer)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ debounceTimer = setTimeout(async () => {
|
|
|
|
|
+ try {
|
|
|
|
|
+ workshopLoading.value = true
|
|
|
|
|
+ machineLoading.value = true
|
|
|
|
|
+ processLoading.value = true
|
|
|
|
|
+
|
|
|
|
|
+ // 并行获取机台列表和工序列表
|
|
|
|
|
+ const [machineResponse, processResponse] = await Promise.all([
|
|
|
|
|
+ getMachineList({ search: selectedWorkshop }),
|
|
|
|
|
+ gitProcessList({ search: selectedWorkshop })
|
|
|
|
|
+ ])
|
|
|
|
|
+
|
|
|
|
|
+ // 处理机台数据
|
|
|
|
|
+ if (machineResponse.code === 0) {
|
|
|
|
|
+ const machineData = machineResponse.data || {}
|
|
|
|
|
+ const formattedMachines = Object.entries(machineData).map(([key, value]) => ({
|
|
|
|
|
+ value: key, // 如 "HXH04#"
|
|
|
|
|
+ label: `${key}-${value}`, // 如 "HXH04#-征图2#小盒机"
|
|
|
|
|
+ machineName: value // 原始名称,备用
|
|
|
|
|
+ }))
|
|
|
|
|
+
|
|
|
|
|
+ machineOptions.value = formattedMachines
|
|
|
|
|
+
|
|
|
|
|
+ // 如果有数据,自动选择第一个机台
|
|
|
|
|
+ if (formattedMachines.length > 0) {
|
|
|
|
|
+ formData3.value.jtmc = formattedMachines[0].value
|
|
|
|
|
+ } else {
|
|
|
|
|
+ formData3.value.jtmc = ''
|
|
|
|
|
+ ElMessage.warning(`该车间暂无可用机台数据`)
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage.error(machineResponse.msg || '获取机台数据失败')
|
|
|
|
|
+ machineOptions.value = []
|
|
|
|
|
+ formData3.value.jtmc = ''
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 处理工序数据
|
|
|
|
|
+ if (processResponse.code === 0) {
|
|
|
|
|
+ const processData = processResponse.data || []
|
|
|
|
|
+ const formattedProcesses = processData.map(item => ({
|
|
|
|
|
+ value: item, // 如 "组装"
|
|
|
|
|
+ label: item // 显示名称
|
|
|
|
|
+ }))
|
|
|
|
|
+
|
|
|
|
|
+ processOptions.value = formattedProcesses
|
|
|
|
|
+
|
|
|
|
|
+ // 如果有数据,自动选择第一个工序
|
|
|
|
|
+ if (formattedProcesses.length > 0) {
|
|
|
|
|
+ formData3.value.gxmc = formattedProcesses[0].value
|
|
|
|
|
+ ElMessage.success(`已加载${selectedWorkshop}的${formattedProcesses.length}个工序`)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ formData3.value.gxmc = ''
|
|
|
|
|
+ ElMessage.warning(`该车间暂无可用工序数据`)
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage.error(processResponse.msg || '获取工序数据失败')
|
|
|
|
|
+ processOptions.value = []
|
|
|
|
|
+ formData3.value.gxmc = ''
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error('获取车间数据失败:', error)
|
|
|
|
|
+ ElMessage.error('获取数据失败,请检查网络或稍后重试')
|
|
|
|
|
+ machineOptions.value = []
|
|
|
|
|
+ processOptions.value = []
|
|
|
|
|
+ formData3.value.jtmc = ''
|
|
|
|
|
+ formData3.value.gxmc = ''
|
|
|
|
|
+ } finally {
|
|
|
|
|
+ workshopLoading.value = false
|
|
|
|
|
+ machineLoading.value = false
|
|
|
|
|
+ processLoading.value = false
|
|
|
|
|
+ }
|
|
|
|
|
+ }, 300) // 300ms防抖
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// 机台选择变化时的处理
|
|
|
|
|
+const handleMachineChange = (selectedMachine) => {
|
|
|
|
|
+ console.log('选择的机台:', selectedMachine)
|
|
|
|
|
+ getGluingcoleData()
|
|
|
|
|
+
|
|
|
|
|
+ if (!selectedMachine) return
|
|
|
|
|
+
|
|
|
|
|
+ // 可以在这里添加机台选择后的其他逻辑
|
|
|
|
|
+ const selectedMachineInfo = machineOptions.value.find(item => item.value === selectedMachine)
|
|
|
|
|
+ if (selectedMachineInfo) {
|
|
|
|
|
+ console.log('机台详细信息:', selectedMachineInfo)
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// 工单编号搜索方法
|
|
|
|
|
+const searchWorkOrders = async (query) => {
|
|
|
|
|
+ if (!query || query.trim() === '') {
|
|
|
|
|
+ workOrderOptions.value = []
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 防抖处理
|
|
|
|
|
+ if (workOrderSearchTimer) {
|
|
|
|
|
+ clearTimeout(workOrderSearchTimer)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ workOrderSearchTimer = setTimeout(async () => {
|
|
|
|
|
+ try {
|
|
|
|
|
+ workOrderLoading.value = true
|
|
|
|
|
+
|
|
|
|
|
+ // 如果缓存中有数据,先检查缓存
|
|
|
|
|
+ if (workOrderCache.value[query]) {
|
|
|
|
|
+ workOrderOptions.value = workOrderCache.value[query]
|
|
|
|
|
+ workOrderLoading.value = false
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ const response = await getWorkOrderList({
|
|
|
|
|
+ search: query.trim()
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ if (response.code === 0) {
|
|
|
|
|
+ const data = response.data || []
|
|
|
|
|
+
|
|
|
|
|
+ // 格式化工单数据,去除重复的工单编号
|
|
|
|
|
+ const uniqueWorkOrders = []
|
|
|
|
|
+ const seenOrders = new Set()
|
|
|
|
|
+
|
|
|
|
|
+ data.forEach(item => {
|
|
|
|
|
+ if (!seenOrders.has(item['工单编号'])) {
|
|
|
|
|
+ seenOrders.add(item['工单编号'])
|
|
|
|
|
+ uniqueWorkOrders.push({
|
|
|
|
|
+ value: item['工单编号'], // 工单编号作为value
|
|
|
|
|
+ label: item['工单编号'], // 显示格式
|
|
|
|
|
+ productName: item['产品名称'], // 产品名称存储
|
|
|
|
|
+ originalData: item // 原始数据备份
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ workOrderOptions.value = uniqueWorkOrders
|
|
|
|
|
+
|
|
|
|
|
+ // 缓存搜索结果
|
|
|
|
|
+ workOrderCache.value[query] = uniqueWorkOrders
|
|
|
|
|
+
|
|
|
|
|
+ if (uniqueWorkOrders.length === 0) {
|
|
|
|
|
+ ElMessage.warning('未找到相关工单')
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage.error(response.msg || '搜索工单失败')
|
|
|
|
|
+ workOrderOptions.value = []
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error('搜索工单失败:', error)
|
|
|
|
|
+ ElMessage.error('搜索失败,请检查网络或稍后重试')
|
|
|
|
|
+ workOrderOptions.value = []
|
|
|
|
|
+ } finally {
|
|
|
|
|
+ workOrderLoading.value = false
|
|
|
|
|
+ }
|
|
|
|
|
+ }, 500) // 500ms防抖
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// 工单选择变化时的处理
|
|
|
|
|
+const handleWorkOrderChange = (selectedOrder) => {
|
|
|
|
|
+ console.log('选择的工单:', selectedOrder)
|
|
|
|
|
+
|
|
|
|
|
+ if (!selectedOrder) {
|
|
|
|
|
+ formData3.value.product_name = ''
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 找到选中的工单信息
|
|
|
|
|
+ const selectedWorkOrder = workOrderOptions.value.find(item => item.value === selectedOrder)
|
|
|
|
|
+ if (selectedWorkOrder) {
|
|
|
|
|
+ console.log('选择的工单:', selectedWorkOrder.originalData.工单编号)
|
|
|
|
|
+ // 自动填充产品名称
|
|
|
|
|
+ formData3.value.product_name = selectedWorkOrder.productName
|
|
|
|
|
+ console.log('工单详细信息:', selectedWorkOrder.originalData)
|
|
|
|
|
+
|
|
|
|
|
+ // 可以在这里添加其他逻辑,比如根据工单获取更多信息
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 如果不在选项中,可能是手动输入的,清空产品名称
|
|
|
|
|
+ formData3.value.product_name = ''
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// 页面加载时预加载常用工单(可选)
|
|
|
|
|
+onMounted(() => {
|
|
|
|
|
+ // 可以预加载一些常用工单
|
|
|
|
|
+ // searchWorkOrders('Y25')
|
|
|
|
|
+})
|
|
|
|
|
+
|
|
|
|
|
+// 如果需要,可以添加一个重置方法
|
|
|
|
|
+const resetForm = () => {
|
|
|
|
|
+ formData3.value = {
|
|
|
|
|
+ cjmc: '',
|
|
|
|
|
+ jtmc: '',
|
|
|
|
|
+ order: '',
|
|
|
|
|
+ product_name: '',
|
|
|
|
|
+ gxmc: ''
|
|
|
|
|
+ }
|
|
|
|
|
+ machineOptions.value = []
|
|
|
|
|
+ processOptions.value = []
|
|
|
|
|
+ workOrderOptions.value = []
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// 获取当前选中的机台显示文本
|
|
|
|
|
+const getSelectedMachineLabel = () => {
|
|
|
|
|
+ if (!formData3.value.jtmc) return ''
|
|
|
|
|
+ const selectedMachine = machineOptions.value.find(item => item.value === formData3.value.jtmc)
|
|
|
|
|
+ return selectedMachine ? selectedMachine.label : formData3.value.jtmc
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+const getCurrentDate = async () => {
|
|
|
|
|
+const today = new Date();
|
|
|
|
|
+ const year = today.getFullYear();
|
|
|
|
|
+ const month = String(today.getMonth() + 1).padStart(2, '0'); // 月份从 0 开始,需要补零
|
|
|
|
|
+ const day = String(today.getDate()).padStart(2, '0');
|
|
|
|
|
+ const hours = String(today.getHours()).padStart(2, '0');
|
|
|
|
|
+ const minutes = String(today.getMinutes()).padStart(2, '0');
|
|
|
|
|
+ const seconds = String(today.getSeconds()).padStart(2, '0');
|
|
|
|
|
+ const currentHour = today.getHours(); // 获取当前的小时
|
|
|
|
|
+ let currentDate = `${year}-${month}-${day}`;
|
|
|
|
|
+const getTimelistss = await getTimelist();
|
|
|
|
|
+formData3.value.日期 = `${getTimelistss.data.date} 00:00:00`;
|
|
|
|
|
+formData3.value.下机时间 = getTimelistss.data.hours;
|
|
|
|
|
+if (currentHour < 8 || (currentHour === 8 && minutes < 30)) {
|
|
|
|
|
+ // 如果当前时间早于08:30, 则设置为前一天的晚班时间20:30
|
|
|
|
|
+ // 需要将日期减一天
|
|
|
|
|
+ const yesterDay = new Date(today.getTime() - 86400000); // 减去一天的毫秒数
|
|
|
|
|
+ const yearYesterday = yesterDay.getFullYear();
|
|
|
|
|
+ const monthYesterday = String(yesterDay.getMonth() + 1).padStart(2, '0');
|
|
|
|
|
+ const dayYesterday = String(yesterDay.getDate()).padStart(2, '0');
|
|
|
|
|
+ formData3.value.上机时间 = `${yearYesterday}-${monthYesterday}-${dayYesterday} 20:00:00`;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 如果当前时间晚于或等于08:30, 则设置为当天的白班时间08:30
|
|
|
|
|
+ formData3.value.上机时间 = `${currentDate} 08:00:00`;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+getCurrentDate();
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// 响应式数据
|
|
|
|
|
+const roleOptions = ref([]) // 角色下拉选项
|
|
|
|
|
+const gluingcoleData = ref({}) // 存储接口返回的完整数据
|
|
|
|
|
+const roleDisabled = ref(false) // 控制角色下拉框是否禁用,根据您的需求设置
|
|
|
|
|
+
|
|
|
|
|
+// 获取下拉框数据的方法
|
|
|
|
|
+const getGluingcoleData = async () => {
|
|
|
|
|
+ try {
|
|
|
|
|
+ const response = await getGluingcole({ machine: formData3.value.jtmc })
|
|
|
|
|
+ console.log('获取胶合角色数据:', response)
|
|
|
|
|
+
|
|
|
|
|
+ if (response.code === 0) {
|
|
|
|
|
+ gluingcoleData.value = response.data
|
|
|
|
|
+
|
|
|
|
|
+ // 处理角色选项:从role1到role10中过滤掉空值
|
|
|
|
|
+ roleOptions.value = []
|
|
|
|
|
+ for (let i = 1; i <= 10; i++) {
|
|
|
|
|
+ const roleKey = `role${i}`
|
|
|
|
|
+ const roleValue = response.data[roleKey]
|
|
|
|
|
+ if (roleValue && roleValue.trim() !== '') {
|
|
|
|
|
+ roleOptions.value.push({
|
|
|
|
|
+ label: roleValue,
|
|
|
|
|
+ value: roleValue,
|
|
|
|
|
+ // 存储对应比例字段的映射关系
|
|
|
|
|
+ rateMapping: {
|
|
|
|
|
+ rateKey: `rate${i}`, // 接口返回的比例字段名
|
|
|
|
|
+ formDataKey: `rate${i}` // formData3中的比例字段名
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // // 如果需要初始化表单数据中的角色
|
|
|
|
|
+ // initializeFormRoles(response.data)
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error('获取胶合班组和角色数据失败:', error)
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// 初始化表单角色数据(如果需要)
|
|
|
|
|
+const initializeFormRoles = (apiData) => {
|
|
|
|
|
+ // 根据接口数据初始化formData3中的角色
|
|
|
|
|
+ for (let i = 1; i <= 10; i++) {
|
|
|
|
|
+ const roleKey = `role${i}`
|
|
|
|
|
+ const memberKey = `组员${i}`
|
|
|
|
|
+ const roleValue = apiData[roleKey]
|
|
|
|
|
+
|
|
|
|
|
+ if (roleValue && roleValue.trim() !== '' && formData3.value[memberKey]) {
|
|
|
|
|
+ formData3.value[memberKey]['角色'] = roleValue
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// 角色选择变化事件处理
|
|
|
|
|
+const handleRoleChange = (memberNumber) => {
|
|
|
|
|
+ const memberKey = `组员${memberNumber}`
|
|
|
|
|
+ const selectedRole = formData3.value[memberKey]['角色']
|
|
|
|
|
+
|
|
|
|
|
+ if (selectedRole && gluingcoleData.value) {
|
|
|
|
|
+ // 找到选中的角色对应的选项
|
|
|
|
|
+ const selectedOption = roleOptions.value.find(item => item.value === selectedRole)
|
|
|
|
|
+
|
|
|
|
|
+ if (selectedOption && selectedOption.rateMapping) {
|
|
|
|
|
+ // 获取接口中对应的比例值
|
|
|
|
|
+ const apiRateValue = gluingcoleData.value[selectedOption.rateMapping.rateKey]
|
|
|
|
|
+
|
|
|
|
|
+ // 设置到formData3对应的比例字段
|
|
|
|
|
+ if (apiRateValue !== undefined && formData3.value[memberKey]) {
|
|
|
|
|
+ formData3.value[memberKey]['比例'] = apiRateValue
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 如果需要触发总比例更新
|
|
|
|
|
+// updateTotal()
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// 监听所有角色字段的变化(如果需要更全面的监听)
|
|
|
|
|
+watch(() => {
|
|
|
|
|
+ // 监听所有组员的角色字段变化
|
|
|
|
|
+ const watches = []
|
|
|
|
|
+ for (let i = 1; i <= 10; i++) {
|
|
|
|
|
+ const memberKey = `组员${i}`
|
|
|
|
|
+ if (formData3.value && formData3.value[memberKey]) {
|
|
|
|
|
+ watches.push(formData3.value[memberKey]['角色'])
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return watches
|
|
|
|
|
+}, () => {
|
|
|
|
|
+ // 如果有需要可以在这里处理
|
|
|
|
|
+}, { deep: true })
|
|
|
|
|
+
|
|
|
|
|
+// // 更新总比例的方法(根据您的需求实现)
|
|
|
|
|
+// const updateTotal = () => {
|
|
|
|
|
+// // 您的总比例计算逻辑
|
|
|
|
|
+// console.log('比例已更新')
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+// 初始化时获取数据
|
|
|
|
|
+onMounted(() => {
|
|
|
|
|
+ if (formData3.value.jtmc) {
|
|
|
|
|
+ getGluingcoleData()
|
|
|
|
|
+ }
|
|
|
|
|
+})
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+const bzVisible = ref(false)
|
|
|
|
|
+const FPData = ref()
|
|
|
|
|
+const GYID = ref('')
|
|
|
|
|
+const BZID = ref('')
|
|
|
|
|
+let BZMC=ref()
|
|
|
|
|
+const bzenterDialog = (row) => {
|
|
|
|
|
+ getGluingClassLLists(formData3.value.jtmc)
|
|
|
|
|
+ bzVisible.value = true
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+const getGluingClassLLists = async (value) => {
|
|
|
|
|
+ console.log('222')
|
|
|
|
|
+ const listRes = await getGluingClassLList({ machine: value })
|
|
|
|
|
+ if (listRes.code === 0) {
|
|
|
|
|
+ BZMC.value=listRes.data[0].bz
|
|
|
|
|
+ FPData.value = listRes.data
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+const selectedRows = ref([]) // 用于存储选中的行
|
|
|
|
|
+
|
|
|
|
|
+// 修改 handleBzSelectionChange 函数来存储选中的行
|
|
|
|
|
+const handleBzSelectionChange = (selection) => {
|
|
|
|
|
+ console.log('选中的行:', selection)
|
|
|
|
|
+ selectedRows.value = selection
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+const handleBzConfirm = () => {
|
|
|
|
|
+ console.log('选中的班组数据:', selectedRows.value)
|
|
|
|
|
+
|
|
|
|
|
+ if (!selectedRows.value || selectedRows.value.length === 0) {
|
|
|
|
|
+ console.warn('没有选中任何班组数据')
|
|
|
|
|
+ ElMessage.warning('请先选择班组数据')
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 重置或初始化 formData3
|
|
|
|
|
+ // 如果需要重置所有组员数据
|
|
|
|
|
+ for (let i = 1; i <= 30; i++) {
|
|
|
|
|
+ const memberKey = `组员${i}`
|
|
|
|
|
+ if (!formData3.value[memberKey]) {
|
|
|
|
|
+ formData3.value[memberKey] = {
|
|
|
|
|
+ 角色: '',
|
|
|
|
|
+ 编号: '',
|
|
|
|
|
+ 姓名: '',
|
|
|
|
|
+ 比例: ''
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ formData3.value[memberKey]['角色'] = ''
|
|
|
|
|
+ formData3.value[memberKey]['编号'] = ''
|
|
|
|
|
+ formData3.value[memberKey]['姓名'] = ''
|
|
|
|
|
+ formData3.value[memberKey]['比例'] = ''
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 当前要填充的组员起始索引
|
|
|
|
|
+ let currentMemberIndex = 1
|
|
|
|
|
+
|
|
|
|
|
+ // 遍历选中的每个班组
|
|
|
|
|
+ selectedRows.value.forEach((row, rowIndex) => {
|
|
|
|
|
+ console.log(`处理第 ${rowIndex + 1} 个班组数据:`, row)
|
|
|
|
|
+
|
|
|
|
|
+ // 遍历每个班组中的组员(最多15个)
|
|
|
|
|
+ for (let i = 1; i <= 15; i++) {
|
|
|
|
|
+ const bhKey = `bh${i}`
|
|
|
|
|
+ const nameKey = `name${i}`
|
|
|
|
|
+
|
|
|
|
|
+ // 如果该组员有编号(非空且非null)
|
|
|
|
|
+ if (row[bhKey] && row[bhKey] !== null && row[bhKey] !== '') {
|
|
|
|
|
+ const memberKey = `组员${currentMemberIndex}`
|
|
|
|
|
+
|
|
|
|
|
+ // 确保当前组员位置有效(不超过10个组员)
|
|
|
|
|
+ if (currentMemberIndex > 10) {
|
|
|
|
|
+ console.warn('超过最大组员数量10个,停止填充')
|
|
|
|
|
+ return // 或者使用 break 跳出循环
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 填充数据到 formData3
|
|
|
|
|
+ formData3.value[memberKey]['角色'] = row.role || ''
|
|
|
|
|
+ formData3.value[memberKey]['比例'] = row.rate || ''
|
|
|
|
|
+ formData3.value[memberKey]['编号'] = row[bhKey] || ''
|
|
|
|
|
+ formData3.value[memberKey]['姓名'] = row[nameKey] || ''
|
|
|
|
|
+
|
|
|
|
|
+ console.log(`填充 ${memberKey}:`, {
|
|
|
|
|
+ 角色: row.role,
|
|
|
|
|
+ 比例: row.rate,
|
|
|
|
|
+ 编号: row[bhKey],
|
|
|
|
|
+ 姓名: row[nameKey]
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ currentMemberIndex++
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ console.log('填充完成后的 formData3:', formData3.value)
|
|
|
|
|
+ bzVisible.value = false
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ //键盘 input框跳转
|
|
|
|
|
+ const ent = (event,id1,id2,id3) => {
|
|
|
|
|
+
|
|
|
|
|
+ if (event.keyCode === 13 || event.keyCode === 40) { // Enter 或向下箭头
|
|
|
|
|
+ const idMap = {
|
|
|
|
|
+ 'bh1': '1',
|
|
|
|
|
+ 'bh2': '2',
|
|
|
|
|
+ 'bh3': '3',
|
|
|
|
|
+ 'bh4': '4',
|
|
|
|
|
+ 'bh5': '5',
|
|
|
|
|
+ 'bh6': '6',
|
|
|
|
|
+ 'bh7': '7',
|
|
|
|
|
+ 'bh8': '8',
|
|
|
|
|
+ 'bh9': '9',
|
|
|
|
|
+ 'bh10': '10',
|
|
|
|
|
+ 'bh11': '11',
|
|
|
|
|
+ };
|
|
|
|
|
+ if(id2 === '定额代号'){
|
|
|
|
|
+ getDedhsubmit();
|
|
|
|
|
+ }
|
|
|
|
|
+ if (idMap.hasOwnProperty(id2) && event.keyCode === 13) {
|
|
|
|
|
+ getygsubmit('', idMap[id2]);
|
|
|
|
|
+ }else if(id3!=''){
|
|
|
|
|
+ document.getElementById(id3).focus()
|
|
|
|
|
+ }
|
|
|
|
|
+ } else if (event.keyCode === 38) { // 向上箭头
|
|
|
|
|
+ if(id1!=''){
|
|
|
|
|
+ document.getElementById(id1).focus()
|
|
|
|
|
+ }
|
|
|
|
|
+ // }
|
|
|
|
|
+ // else if (event.keyCode === 8) { // 删除箭头
|
|
|
|
|
+ // if(id1!='' && document.getElementById(id2).value==''){
|
|
|
|
|
+ // document.getElementById(id1).focus()
|
|
|
|
|
+ // }
|
|
|
|
|
+ // console.log(document.getElementById(id2).value)
|
|
|
|
|
+ }else if (event.keyCode === 37) { // 向左箭头
|
|
|
|
|
+ if(id1!='' && document.getElementById(id2).selectionStart==0){
|
|
|
|
|
+ document.getElementById(id1).focus()
|
|
|
|
|
+ }
|
|
|
|
|
+ }else if (event.keyCode === 39) { // 向右箭头
|
|
|
|
|
+ if(id3!='' && document.getElementById(id2).selectionStart == document.getElementById(id2).value.length){
|
|
|
|
|
+ document.getElementById(id3).focus()
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ //日报表上传
|
|
|
|
|
+ const chanliangenterDialog = async () => {
|
|
|
|
|
+ console.log(formData3.value)
|
|
|
|
|
+ const restoredData = {
|
|
|
|
|
+ sczl_gdbh:formData3.value.order,
|
|
|
|
|
+ // sczl_yjno:formData3.value.yjno,
|
|
|
|
|
+ // sczl_gxh:formData3.value.gxh,
|
|
|
|
|
+ sczl_gxmc: formData3.value.gxmc,
|
|
|
|
|
+ 来料数量: formData3.value.来料数量,
|
|
|
|
|
+ sczl_cl: formData3.value.产量,
|
|
|
|
|
+ sczl_zcfp: formData3.value.制程废品,
|
|
|
|
|
+ startTime: formData3.value.上机时间,
|
|
|
|
|
+ endTime: formData3.value.下机时间,
|
|
|
|
|
+ sczl_rq: formData3.value.日期,
|
|
|
|
|
+ sczl_ls: formData3.value.Gy0_ls,
|
|
|
|
|
+ sczl_dedh: formData3.value.定额代号,
|
|
|
|
|
+ 工价系数:formData3.value.工价系数 || 0,
|
|
|
|
|
+ 保养工时:formData3.value.保养工时 || 0,
|
|
|
|
|
+ 装版工时:formData3.value.装版工时 || 0,
|
|
|
|
|
+ 异常工时:formData3.value.异常工时 || 0,
|
|
|
|
|
+ 异常类型:formData3.value.异常类型 || '',
|
|
|
|
|
+ 设备运行工时:formData3.value.通电工时 || 0,
|
|
|
|
|
+ sys_id: userStore.userInfo.nickName,
|
|
|
|
|
+ sczl_jtbh: formData3.value.jtmc,
|
|
|
|
|
+ bh1: formData3.value.组员1['编号'],
|
|
|
|
|
+ bh2: formData3.value.组员2['编号'],
|
|
|
|
|
+ bh3: formData3.value.组员3['编号'],
|
|
|
|
|
+ bh4: formData3.value.组员4['编号'],
|
|
|
|
|
+ bh5: formData3.value.组员5['编号'],
|
|
|
|
|
+ bh6: formData3.value.组员6['编号'],
|
|
|
|
|
+ bh7: formData3.value.组员7['编号'],
|
|
|
|
|
+ bh8: formData3.value.组员8['编号'],
|
|
|
|
|
+ bh9: formData3.value.组员9['编号'],
|
|
|
|
|
+ bh10: formData3.value.组员10['编号'],
|
|
|
|
|
+ bh11: formData3.value.组员11['编号'],
|
|
|
|
|
+ bh12: formData3.value.组员12['编号'],
|
|
|
|
|
+ bh13: formData3.value.组员13['编号'],
|
|
|
|
|
+ bh14: formData3.value.组员14['编号'],
|
|
|
|
|
+ bh15: formData3.value.组员15['编号'],
|
|
|
|
|
+ bh16: formData3.value.组员16['编号'],
|
|
|
|
|
+ bh17: formData3.value.组员17['编号'],
|
|
|
|
|
+ bh18: formData3.value.组员18['编号'],
|
|
|
|
|
+ bh19: formData3.value.组员19['编号'],
|
|
|
|
|
+ bh20: formData3.value.组员20['编号'],
|
|
|
|
|
+ bh21: formData3.value.组员21['编号'],
|
|
|
|
|
+ bh22: formData3.value.组员22['编号'],
|
|
|
|
|
+ bh23: formData3.value.组员23['编号'],
|
|
|
|
|
+ bh24: formData3.value.组员24['编号'],
|
|
|
|
|
+ bh25: formData3.value.组员25['编号'],
|
|
|
|
|
+ bh26: formData3.value.组员26['编号'],
|
|
|
|
|
+ bh27: formData3.value.组员27['编号'],
|
|
|
|
|
+ bh28: formData3.value.组员28['编号'],
|
|
|
|
|
+ bh29: formData3.value.组员29['编号'],
|
|
|
|
|
+ bh30: formData3.value.组员30['编号'],
|
|
|
|
|
+ rate1: formData3.value.组员1['比例'],
|
|
|
|
|
+ rate2: formData3.value.组员2['比例'],
|
|
|
|
|
+ rate3: formData3.value.组员3['比例'],
|
|
|
|
|
+ rate4: formData3.value.组员4['比例'],
|
|
|
|
|
+ rate5: formData3.value.组员5['比例'],
|
|
|
|
|
+ rate6: formData3.value.组员6['比例'],
|
|
|
|
|
+ rate7: formData3.value.组员7['比例'],
|
|
|
|
|
+ rate8: formData3.value.组员8['比例'],
|
|
|
|
|
+ rate9: formData3.value.组员9['比例'],
|
|
|
|
|
+ rate10: formData3.value.组员10['比例'],
|
|
|
|
|
+ rate11: formData3.value.组员11['比例'],
|
|
|
|
|
+ rate12: formData3.value.组员12['比例'],
|
|
|
|
|
+ rate13: formData3.value.组员13['比例'],
|
|
|
|
|
+ rate14: formData3.value.组员14['比例'],
|
|
|
|
|
+ rate15: formData3.value.组员15['比例'],
|
|
|
|
|
+ rate16: formData3.value.组员16['比例'],
|
|
|
|
|
+ rate17: formData3.value.组员17['比例'],
|
|
|
|
|
+ rate18: formData3.value.组员18['比例'],
|
|
|
|
|
+ rate19: formData3.value.组员19['比例'],
|
|
|
|
|
+ rate20: formData3.value.组员20['比例'],
|
|
|
|
|
+ rate21: formData3.value.组员21['比例'],
|
|
|
|
|
+ rate22: formData3.value.组员22['比例'],
|
|
|
|
|
+ rate23: formData3.value.组员23['比例'],
|
|
|
|
|
+ rate24: formData3.value.组员24['比例'],
|
|
|
|
|
+ rate25: formData3.value.组员25['比例'],
|
|
|
|
|
+ rate26: formData3.value.组员26['比例'],
|
|
|
|
|
+ rate27: formData3.value.组员27['比例'],
|
|
|
|
|
+ rate28: formData3.value.组员28['比例'],
|
|
|
|
|
+ rate29: formData3.value.组员29['比例'],
|
|
|
|
|
+ rate30: formData3.value.组员30['比例'],
|
|
|
|
|
+ }
|
|
|
|
|
+ console.log(restoredData)
|
|
|
|
|
+// return;
|
|
|
|
|
+ // 4.2日产量上报 添加
|
|
|
|
|
+ const response = await AddGluingReportData(restoredData);
|
|
|
|
|
+ console.log(response)
|
|
|
|
|
+ if (response.code === 0) {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: '',
|
|
|
|
|
+ dangerouslyUseHTMLString: true,
|
|
|
|
|
+ // duration: 0, // 不自动关闭
|
|
|
|
|
+ message: '<strong style="font-size: 71px; color: black; background-color: #80FA80; padding: 30px 280px; width: 482px; line-height: 60px; text-align: center; display: block;">报工成功</strong>',
|
|
|
|
|
+ customClass: 'custom-warning-message'
|
|
|
|
|
+ });
|
|
|
|
|
+ }else{
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: '',
|
|
|
|
|
+ dangerouslyUseHTMLString: true,
|
|
|
|
|
+ // duration: 0, // 不自动关闭
|
|
|
|
|
+ message: '<strong style="font-size: 71px; color: white; background-color: red; padding: 30px 280px; width: 482px; line-height: 60px; text-align: center; display: block;">报工失败</strong>',
|
|
|
|
|
+ customClass: 'custom-warning-message'
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ const blModellist = ref(false);
|
|
|
|
|
+const employeeDatalist = ref('');
|
|
|
|
|
+const memberIds = ref({}); // 存储已填写的编号用于查重
|
|
|
|
|
+
|
|
|
|
|
+// 检查编号是否重复的方法
|
|
|
|
|
+const checkDuplicateId = (id, currentKey) => {
|
|
|
|
|
+ if (!id || id.trim() === '') return { isDuplicate: false };
|
|
|
|
|
+
|
|
|
|
|
+ for (let i = 1; i <= 30; i++) {
|
|
|
|
|
+ if (i.toString() === currentKey) continue;
|
|
|
|
|
+
|
|
|
|
|
+ const compareKey = `组员${i}`;
|
|
|
|
|
+ const compareId = formData3.value[compareKey]?.['编号'];
|
|
|
|
|
+
|
|
|
|
|
+ if (compareId && compareId === id) {
|
|
|
|
|
+ return { isDuplicate: true, duplicateMember: i };
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return { isDuplicate: false };
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+const GetYg = async (event, key) => {
|
|
|
|
|
+ const bzyg = `组员${key}`;
|
|
|
|
|
+ const bzxm = `组员${key}`;
|
|
|
|
|
+ const bh = formData3.value[bzyg]['编号'];
|
|
|
|
|
+
|
|
|
|
|
+ // 功能1:如果编号为空,清空对应数据
|
|
|
|
|
+ if (!bh || bh.trim() === '') {
|
|
|
|
|
+ formData3.value[bzyg]['姓名'] = '';
|
|
|
|
|
+ formData3.value[bzyg]['角色'] = '';
|
|
|
|
|
+ delete memberIds.value[key];
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 功能2:检查编号是否重复
|
|
|
|
|
+ const duplicateCheck = checkDuplicateId(bh, key);
|
|
|
|
|
+ if (duplicateCheck.isDuplicate) {
|
|
|
|
|
+ ElMessage.error(`编号 ${bh} 已被组员${duplicateCheck.duplicateMember}使用,请勿重复填写!`);
|
|
|
|
|
+ formData3.value[bzyg]['编号'] = '';
|
|
|
|
|
+ formData3.value[bzyg]['姓名'] = '';
|
|
|
|
|
+ formData3.value[bzyg]['角色'] = '';
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ const response = await getYg({sczl_bh: bh});
|
|
|
|
|
+
|
|
|
|
|
+ if (response.code === 0) {
|
|
|
|
|
+ if (response.data.length === 1) {
|
|
|
|
|
+ formData3.value[bzxm]['姓名'] = response.data[0].ygxm;
|
|
|
|
|
+ formData3.value[bzyg]['编号'] = response.data[0].员工编号;
|
|
|
|
|
+ // 存储已填写的编号
|
|
|
|
|
+ memberIds.value[key] = response.data[0].员工编号;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ console.log('打开')
|
|
|
|
|
+ blModellist.value = true;
|
|
|
|
|
+ employeeDatalist.value = response.data;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+// 监听formData3的变化,实时清空功能
|
|
|
|
|
+watch(() => formData3.value, (newVal) => {
|
|
|
|
|
+ for (let i = 1; i <= 10; i++) {
|
|
|
|
|
+ const key = `组员${i}`;
|
|
|
|
|
+ const bh = newVal[key]?.['编号'];
|
|
|
|
|
+
|
|
|
|
|
+ if (!bh || bh.trim() === '') {
|
|
|
|
|
+ if (newVal[key]) {
|
|
|
|
|
+ newVal[key]['姓名'] = '';
|
|
|
|
|
+ // newVal[key]['角色'] = '';
|
|
|
|
|
+ delete memberIds.value[i];
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}, { deep: true });
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+const clickeds = ref(false)
|
|
|
|
|
+const currentIndexs = ref(0);
|
|
|
|
|
+const tableBZRRs = ref();
|
|
|
|
|
+// 模拟点击某一行
|
|
|
|
|
+const setCurrents = (row) => {
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ tableBZRRs .value?.setCurrentRow(row); // 高亮选中当前行
|
|
|
|
|
+ const { 员工编号, ygxm } = row;
|
|
|
|
|
+ console.log("选中行数据:", row);
|
|
|
|
|
+ });
|
|
|
|
|
+};
|
|
|
|
|
+// 键盘事件处理逻辑
|
|
|
|
|
+const selectBZRRs = (event) => {
|
|
|
|
|
+ if (event.keyCode === 40) {
|
|
|
|
|
+ // 向下箭头
|
|
|
|
|
+ event.preventDefault();
|
|
|
|
|
+ event.stopPropagation(); // 阻止事件冒泡
|
|
|
|
|
+ if (currentIndexs.value < employeeDatalist.value.length - 1) {
|
|
|
|
|
+ currentIndexs.value++;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ currentIndexs.value = 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ } else if (event.keyCode === 38) {
|
|
|
|
|
+ // 向上箭头
|
|
|
|
|
+ event.preventDefault();
|
|
|
|
|
+ event.stopPropagation(); // 阻止事件冒泡
|
|
|
|
|
+ if (currentIndexs.value > 0) {
|
|
|
|
|
+ currentIndexs.value--;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ currentIndexs.value = employeeDatalist.value.length - 1;
|
|
|
|
|
+ }
|
|
|
|
|
+ } else if (event.keyCode === 13) {
|
|
|
|
|
+ // 回车键
|
|
|
|
|
+ event.preventDefault();
|
|
|
|
|
+ event.stopPropagation(); // 阻止事件冒泡
|
|
|
|
|
+
|
|
|
|
|
+ const row = employeeDatalist.value[currentIndexs.value];
|
|
|
|
|
+ if (row) {
|
|
|
|
|
+ tablebllickHandlerlist(row);
|
|
|
|
|
+ }
|
|
|
|
|
+ return; // 直接返回,不执行后面的 setCurrents
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ setCurrents(employeeDatalist.value[currentIndexs.value]);
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+// 表格行点击事件处理
|
|
|
|
|
+const tablebllickHandlerlist = async (row, column, event) => {
|
|
|
|
|
+ // 如果是事件对象(来自行点击),提取 row 数据
|
|
|
|
|
+ const actualRow = row?.员工编号 ? row : column;
|
|
|
|
|
+
|
|
|
|
|
+ // 检查点击锁
|
|
|
|
|
+ if (clickeds.value) {
|
|
|
|
|
+ console.log('点击锁已激活,跳过处理');
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 立即设置点击锁
|
|
|
|
|
+ clickeds.value = true;
|
|
|
|
|
+
|
|
|
|
|
+ try {
|
|
|
|
|
+ let nextIndex = 1;
|
|
|
|
|
+ // 检查每个组员是否有空位
|
|
|
|
|
+ while (formData3.value[`组员${nextIndex}`]['编号'] !== '' &&
|
|
|
|
|
+ formData3.value[`组员${nextIndex}`]['姓名'] !== '') {
|
|
|
|
|
+ nextIndex++;
|
|
|
|
|
+ if (nextIndex > 30) {
|
|
|
|
|
+ ElMessage.warning('所有组员字段已填满!');
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 在填充数据之前,检查当前组员编号是否包含字母,如果包含字母,则清空该组员的编号和姓名
|
|
|
|
|
+ const current编号 = formData3.value[`组员${nextIndex}`]['编号'];
|
|
|
|
|
+ if (/[a-zA-Z]/.test(current编号)) {
|
|
|
|
|
+ formData3.value[`组员${nextIndex}`]['编号'] = "";
|
|
|
|
|
+ formData3.value[`组员${nextIndex}`]['姓名'] = "";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 检查选择的员工编号是否已经存在
|
|
|
|
|
+ const isDuplicate = checkDuplicateInTablebllickHandlerlist(actualRow.员工编号, nextIndex.toString());
|
|
|
|
|
+ if (isDuplicate) {
|
|
|
|
|
+ ElMessage.error(`员工 ${actualRow.ygxm} (编号: ${actualRow.员工编号}) 已被其他组员选择!`);
|
|
|
|
|
+ // 延迟释放点击锁
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ clickeds.value = false;
|
|
|
|
|
+ }, 300);
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 填充数据
|
|
|
|
|
+ formData3.value[`组员${nextIndex}`]['编号'] = actualRow.员工编号;
|
|
|
|
|
+ formData3.value[`组员${nextIndex}`]['姓名'] = actualRow.ygxm;
|
|
|
|
|
+ // 更新memberIds
|
|
|
|
|
+ memberIds.value[nextIndex] = actualRow.员工编号;
|
|
|
|
|
+
|
|
|
|
|
+ // 关键:使用 setTimeout 确保数据更新完成后再关闭弹窗
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ console.log('关闭')
|
|
|
|
|
+ blModellist.value = false;
|
|
|
|
|
+ employeeDatalist.value = []; // 清空数据,避免再次触发
|
|
|
|
|
+ currentIndexs.value = 0; // 重置索引
|
|
|
|
|
+ }, 0);
|
|
|
|
|
+
|
|
|
|
|
+ } finally {
|
|
|
|
|
+ // 延迟释放点击锁,防止短时间内重复点击
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ clickeds.value = false;
|
|
|
|
|
+ }, 300);
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+// 专门用于tablebllickHandlerlist方法的重复检查
|
|
|
|
|
+const checkDuplicateInTablebllickHandlerlist = (employeeId, currentIndex) => {
|
|
|
|
|
+ if (!employeeId) return false;
|
|
|
|
|
+
|
|
|
|
|
+ // 检查除了当前index之外的所有组员
|
|
|
|
|
+ for (let i = 1; i <= 30; i++) {
|
|
|
|
|
+ if (i.toString() === currentIndex) continue;
|
|
|
|
|
+
|
|
|
|
|
+ const compareKey = `组员${i}`;
|
|
|
|
|
+ const compareId = formData3.value[compareKey]?.['编号'];
|
|
|
|
|
+
|
|
|
|
|
+ if (compareId && compareId === employeeId) {
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return false;
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+//键盘事件
|
|
|
|
|
+const handleTreeKeydown = (event) => {
|
|
|
|
|
+ const tree = table_fplb.value; // 获取树实例
|
|
|
|
|
+ if (!tree) {
|
|
|
|
|
+ console.error("树组件未加载");
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ const focusedElement = document.activeElement;
|
|
|
|
|
+ const focusedNodeId = focusedElement?.getAttribute("data-key"); // 获取 DOM 的 data-key 属性
|
|
|
|
|
+
|
|
|
|
|
+ if (event.keyCode === 13 && focusedNodeId) { // 判断是否是回车键
|
|
|
|
|
+ tree.setCurrentKey(focusedNodeId); // 设置当前节点为选中
|
|
|
|
|
+ tree.$nextTick(() => {
|
|
|
|
|
+ const currentNode = tree.getCurrentNode(); // 获取当前选中的节点
|
|
|
|
|
+ if (!currentNode) {
|
|
|
|
|
+ console.warn("没有选中的节点");
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ // 清除上一次的选中状态
|
|
|
|
|
+ clearPreviousSelection(tree);
|
|
|
|
|
+ // 收起所有其他节点
|
|
|
|
|
+ Object.keys(tree.store.nodesMap).forEach((key) => {
|
|
|
|
|
+ tree.store.nodesMap[key].expanded = false; // 收起所有节点
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 展开当前节点
|
|
|
|
|
+ tree.store.nodesMap[currentNode.id].expanded = true;
|
|
|
|
|
+
|
|
|
|
|
+ // 如果当前节点有子节点,选中第一个子节点
|
|
|
|
|
+ if (currentNode.children && currentNode.children.length > 0) {
|
|
|
|
|
+ const firstChild = currentNode.children[0];
|
|
|
|
|
+ if (firstChild) {
|
|
|
|
|
+ const firstChildKey = firstChild.id.toString();
|
|
|
|
|
+ tree.setCurrentKey(firstChildKey); // 设置第一个子节点为选中
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ const firstChildDom = tree.$el.querySelector(`[data-key="${firstChildKey}"]`);
|
|
|
|
|
+ if (firstChildDom) {
|
|
|
|
|
+ firstChildDom.focus();
|
|
|
|
|
+ firstChildDom.scrollIntoView({ block: "nearest" });
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ console.log("当前子节点:", currentNode.label);
|
|
|
|
|
+ // 如果节点没有子节点,打印节点名称
|
|
|
|
|
+ JPformdata['定额代号'] = currentNode.label.split("【")[0];
|
|
|
|
|
+ GetDedhVisible.value = false;
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ } else if (event.keyCode === 38 || event.keyCode === 40) { // 上下箭头键
|
|
|
|
|
+ const currentNode = tree.getCurrentNode();
|
|
|
|
|
+ if (currentNode) {
|
|
|
|
|
+ const currentNodeDom = tree.$el.querySelector(`[data-key="${currentNode.id}"]`);
|
|
|
|
|
+ if (currentNodeDom) {
|
|
|
|
|
+ currentNodeDom.focus();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+// 清除之前的选中状态
|
|
|
|
|
+const clearPreviousSelection = (tree) => {
|
|
|
|
|
+ const selectedNodes = tree.getCheckedNodes();
|
|
|
|
|
+ selectedNodes.forEach(node => {
|
|
|
|
|
+ tree.setChecked(node, false);
|
|
|
|
|
+ });
|
|
|
|
|
+ tree.setCurrentKey(null);
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+// // 弹出框键盘事件
|
|
|
|
|
+// const ent = (event) => {
|
|
|
|
|
+// if (document.activeElement.id === "tableFplb") {
|
|
|
|
|
+// if (table_fplb.value) {
|
|
|
|
|
+// const tree = table_fplb.value?.$el;
|
|
|
|
|
+// if (tree) {
|
|
|
|
|
+// const node = tree.querySelector("[data-key]");
|
|
|
|
|
+// if (event.keyCode === 13) {
|
|
|
|
|
+// // GetDedhVisible.value = false;
|
|
|
|
|
+// }
|
|
|
|
|
+// if (node) {
|
|
|
|
|
+// node.scrollIntoView({ block: "nearest" }); // 确保节点可见
|
|
|
|
|
+// node.focus(); // 确保焦点正确
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+// };
|
|
|
|
|
+
|
|
|
|
|
+//点击事件
|
|
|
|
|
+const handleFplbClick = (nodeData, node, component) => {
|
|
|
|
|
+ //存放当前节点的nodeId
|
|
|
|
|
+ if (!nodeData.children || nodeData.children.length === 0) {
|
|
|
|
|
+ // 如果节点没有子节点,打印节点名称
|
|
|
|
|
+ JPformdata['定额代号']= nodeData.label.split("【")[0];
|
|
|
|
|
+ dbformData.value.定额代号 = nodeData.label.split("【")[0];
|
|
|
|
|
+ GetDedhVisible.value = false;
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+const dialogFormVisible = ref(false);
|
|
|
|
|
+const detailData = ref({})
|
|
|
|
|
+const ontimeForm = () => {
|
|
|
|
|
+ console.log('计时上传')
|
|
|
|
|
+
|
|
|
|
|
+ // 设置日期
|
|
|
|
|
+ detailData.value.wgjs_rq = formData3.value.日期.split(' ')[0];
|
|
|
|
|
+
|
|
|
|
|
+ // 将 formData3 中的 1-6 号员工数据赋值到 detailData
|
|
|
|
|
+ for (let i = 1; i <= 6; i++) {
|
|
|
|
|
+ // 获取组员数据,例如:formData3.value.组员1['编号']、formData3.value.组员1['姓名']
|
|
|
|
|
+ const memberData = formData3.value[`组员${i}`];
|
|
|
|
|
+
|
|
|
|
|
+ if (memberData) {
|
|
|
|
|
+ // 赋值编号和姓名到 detailData
|
|
|
|
|
+ detailData.value[`wgjs_bh${i}`] = memberData['编号'] || '';
|
|
|
|
|
+ detailData.value[`name${i}`] = memberData['姓名'] || '';
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 如果没有对应组员数据,清空相关字段
|
|
|
|
|
+ detailData.value[`wgjs_bh${i}`] = '';
|
|
|
|
|
+ detailData.value[`name${i}`] = '';
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ console.log('赋值后的 detailData:', detailData.value)
|
|
|
|
|
+ dialogFormVisible.value = true;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+ // 更新数据
|
|
|
|
|
+ const enterDialog = async () => {
|
|
|
|
|
+ addDetailData()
|
|
|
|
|
+ }
|
|
|
|
|
+// 新增
|
|
|
|
|
+const addDetailData = async () => {
|
|
|
|
|
+ try {
|
|
|
|
|
+ // 1. 构建干净的 restoredData 对象
|
|
|
|
|
+ const restoredData = {
|
|
|
|
|
+ wgjs_rq: detailData.value.wgjs_rq || '',
|
|
|
|
|
+ sys_id: sys_id || ''
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ // 添加员工数据,只添加有值的字段(避免传输大量空值)
|
|
|
|
|
+ for (let i = 1; i <= 6; i++) {
|
|
|
|
|
+ const bh = detailData.value[`wgjs_bh${i}`];
|
|
|
|
|
+ const js = detailData.value[`wgjs_js${i}`];
|
|
|
|
|
+ const yy = detailData.value[`wgjs_yy${i}`];
|
|
|
|
|
+
|
|
|
|
|
+ // 只有当任意一个字段有值时,才添加这组数据
|
|
|
|
|
+ if (bh || js || yy) {
|
|
|
|
|
+ restoredData[`wgjs_bh${i}`] = bh || '';
|
|
|
|
|
+ restoredData[`wgjs_js${i}`] = js || '';
|
|
|
|
|
+ restoredData[`wgjs_yy${i}`] = yy || '';
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 如果都是空值,也可以选择不添加这些字段
|
|
|
|
|
+ restoredData[`wgjs_bh${i}`] = '';
|
|
|
|
|
+ restoredData[`wgjs_js${i}`] = '';
|
|
|
|
|
+ restoredData[`wgjs_yy${i}`] = '';
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ console.log('提交的数据:', restoredData);
|
|
|
|
|
+
|
|
|
|
|
+ const res = await GcAdd(restoredData)
|
|
|
|
|
+ if (res.code === 0) {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: 'success',
|
|
|
|
|
+ message: '新增成功'
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 清空表单数据
|
|
|
|
|
+ clearFormData();
|
|
|
|
|
+
|
|
|
|
|
+ dialogFormVisible.value = false;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage.error(res.msg || '新增失败');
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error('新增数据错误:', error);
|
|
|
|
|
+ ElMessage.error('请求失败,请检查网络或联系管理员');
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+// 清空表单数据的函数
|
|
|
|
|
+const clearFormData = () => {
|
|
|
|
|
+ // 清空日期
|
|
|
|
|
+ detailData.value.wgjs_rq = '';
|
|
|
|
|
+
|
|
|
|
|
+ // 清空所有员工字段
|
|
|
|
|
+ for (let i = 1; i <= 6; i++) {
|
|
|
|
|
+ detailData.value[`wgjs_bh${i}`] = '';
|
|
|
|
|
+ detailData.value[`name${i}`] = '';
|
|
|
|
|
+ detailData.value[`wgjs_js${i}`] = '';
|
|
|
|
|
+ detailData.value[`wgjs_yy${i}`] = '';
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+const closeDialog = () => {
|
|
|
|
|
+ dialogFormVisible.value = false;
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+ </script>
|
|
|
|
|
+ <style scoped>
|
|
|
|
|
+ /* 设备作业清单 正在生产中 背景颜色 */
|
|
|
|
|
+ :deep(.status-plan-usage-low ) {
|
|
|
|
|
+ background: yellow !important;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .JKWTree-container {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .JKWTree-tree {
|
|
|
|
|
+ width: 300px;
|
|
|
|
|
+ background-color: #fff;
|
|
|
|
|
+ padding: 10px;
|
|
|
|
|
+ margin-right: 20px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .JKWTree-tree h3 {
|
|
|
|
|
+ font-size: 15px;
|
|
|
|
|
+ font-weight: 700;
|
|
|
|
|
+ margin: 10px 0;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .JKWTree-content {
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ }
|
|
|
|
|
+ .groupbox
|
|
|
|
|
+ {margin:10px;
|
|
|
|
|
+ width:500px;
|
|
|
|
|
+ height:500px;
|
|
|
|
|
+ border:thin solid black;
|
|
|
|
|
+ padding:10px}
|
|
|
|
|
+ .grouptitle
|
|
|
|
|
+ {display:block;
|
|
|
|
|
+ margin-top:-24px;
|
|
|
|
|
+ margin-left:20px;
|
|
|
|
|
+ width:150px;
|
|
|
|
|
+ text-align:center;
|
|
|
|
|
+ background-color:white}
|
|
|
|
|
+ .gva-search-box{
|
|
|
|
|
+ font-size:1.5vh;
|
|
|
|
|
+ color:red;
|
|
|
|
|
+ font-weight: bold;
|
|
|
|
|
+ }
|
|
|
|
|
+ .bt {
|
|
|
|
|
+ margin-top: 1vh;
|
|
|
|
|
+ margin-bottom: 10px;
|
|
|
|
|
+ height: 5vh;
|
|
|
|
|
+ width: 9vh;
|
|
|
|
|
+ font-size:1.6vh;
|
|
|
|
|
+ color:black;
|
|
|
|
|
+ font-weight: bold;
|
|
|
|
|
+ }
|
|
|
|
|
+ .gva-table-box{
|
|
|
|
|
+ font-size: 15px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .red-input input {
|
|
|
|
|
+ color: red !important;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .buleaa-input input{
|
|
|
|
|
+ color: red !important;
|
|
|
|
|
+ }
|
|
|
|
|
+ /*!* 流程单查询按钮颜色控制未完成*/
|
|
|
|
|
+ :deep(.custom-button.el-button--info) {
|
|
|
|
|
+ background-color: palegreen !important;
|
|
|
|
|
+ color: #155724;
|
|
|
|
|
+ font-size: 20px;
|
|
|
|
|
+ border-color: #c3e6cb;
|
|
|
|
|
+ }
|
|
|
|
|
+ /* 已完成 */
|
|
|
|
|
+ :deep(.custom-button.el-button--danger) {
|
|
|
|
|
+ background-color: rgb(236, 135, 135) !important;
|
|
|
|
|
+ color: #721c24;
|
|
|
|
|
+ font-size: 20px;
|
|
|
|
|
+ border-color: #f5c6cb;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ /*!* 选中某行时的背景色*!font-weight: bold;*/
|
|
|
|
|
+ :deep(.el-table__body tr.current-row)>td {
|
|
|
|
|
+ background: #ff80ff !important;
|
|
|
|
|
+ }
|
|
|
|
|
+ /*input*/
|
|
|
|
|
+ ::v-deep .el-input__inner {
|
|
|
|
|
+ color: #000000 !important;
|
|
|
|
|
+ font-weight: bold;
|
|
|
|
|
+ }
|
|
|
|
|
+ ::v-deep .el-input__wrapper {
|
|
|
|
|
+ border: 1px #00000b8f solid !important;
|
|
|
|
|
+ }
|
|
|
|
|
+ ::v-deep .el-form-item__label {
|
|
|
|
|
+ color: #000000 !important;
|
|
|
|
|
+ font-weight: bold;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ }
|
|
|
|
|
+ ::v-deep .el-tabs__item {
|
|
|
|
|
+ /*color: #000000 !important;*/
|
|
|
|
|
+ font-weight: bold;
|
|
|
|
|
+ }
|
|
|
|
|
+ ::v-deep .el-dialog__headerbtn {
|
|
|
|
|
+ width: 100px;
|
|
|
|
|
+ height: 85px;
|
|
|
|
|
+ }
|
|
|
|
|
+ ::v-deep .el-tabs__item {
|
|
|
|
|
+ /*background-color: #4d70ff;*/
|
|
|
|
|
+ /*color: white;*/
|
|
|
|
|
+ }
|
|
|
|
|
+ :deep(.plan-usage-low div) {
|
|
|
|
|
+ color: blue !important;
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+ font-weight: bold;
|
|
|
|
|
+ }
|
|
|
|
|
+ ::v-deep .el-tabs--card > .el-tabs__header .el-tabs__item.is-active {
|
|
|
|
|
+ color: white; /* 文字颜色 */
|
|
|
|
|
+ background-color: #4d70ff; /* 背景颜色 */
|
|
|
|
|
+ }
|
|
|
|
|
+ /*::v-deep .el-table__header .el-table_2_column_3{*/
|
|
|
|
|
+ /* border-right: 2px #000000 solid;*/
|
|
|
|
|
+ /*}*/
|
|
|
|
|
+ ::v-deep .el-table__header .el-table_2_column_3{
|
|
|
|
|
+ border-right: 2px #000000 solid;
|
|
|
|
|
+ }
|
|
|
|
|
+ ::v-deep .el-table__header .el-table_2_column_4{
|
|
|
|
|
+ border-right: 2px #000000 solid;
|
|
|
|
|
+ }
|
|
|
|
|
+ ::v-deep .el-table__header .el-table_2_column_5{
|
|
|
|
|
+ border-right: 2px #000000 solid;
|
|
|
|
|
+ }
|
|
|
|
|
+ ::v-deep .el-table__header .el-table_2_column_6{
|
|
|
|
|
+ border-right: 2px #000000 solid;
|
|
|
|
|
+ }
|
|
|
|
|
+ ::v-deep .el-table__header .el-table_2_column_7{
|
|
|
|
|
+ border-right: 2px #000000 solid;
|
|
|
|
|
+ }
|
|
|
|
|
+ ::v-deep .el-table__header .el-table_2_column_8{
|
|
|
|
|
+ border-right: 2px #000000 solid;
|
|
|
|
|
+ }
|
|
|
|
|
+ ::v-deep .el-table__header .el-table_2_column_9{
|
|
|
|
|
+ border-right: 2px #000000 solid;
|
|
|
|
|
+ }
|
|
|
|
|
+ ::v-deep .el-table__header .el-table_2_column_10{
|
|
|
|
|
+ border-right: 2px #000000 solid;
|
|
|
|
|
+ }
|
|
|
|
|
+ ::v-deep .el-table__header .el-table_2_column_11{
|
|
|
|
|
+ border-right: 2px #000000 solid;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /*::v-deep .el-table_2_column_3{*/
|
|
|
|
|
+ /* border-right: 1px #000000 solid;*/
|
|
|
|
|
+ /*}*/
|
|
|
|
|
+ /*::v-deep .el-table_2_column_4{*/
|
|
|
|
|
+ /* border-right: 1px #000000 solid;*/
|
|
|
|
|
+ /*}*/
|
|
|
|
|
+ :deep(.plan-usage-low div) {
|
|
|
|
|
+ color: blue !important;
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+ font-weight: bold;
|
|
|
|
|
+ }
|
|
|
|
|
+ /* tree组件背景高亮 */
|
|
|
|
|
+:deep(.el-tree-node:focus > .el-tree-node__content){
|
|
|
|
|
+ background: #ff80ff !important;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+ :deep(.my-custom-messagebox) {
|
|
|
|
|
+ background-color: #ff0000 !important; /* 背景色 */
|
|
|
|
|
+
|
|
|
|
|
+ /* 标题样式 */
|
|
|
|
|
+ .el-message-box__title {
|
|
|
|
|
+ color: #1e90ff !important;
|
|
|
|
|
+ font-size: 20px !important;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /* 内容样式 */
|
|
|
|
|
+ .el-message-box__content {
|
|
|
|
|
+ color: #df1e1e !important;
|
|
|
|
|
+ font-size: 16px !important;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /* 按钮样式 */
|
|
|
|
|
+ .el-message-box__btns .el-button {
|
|
|
|
|
+ font-size: 14px !important;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /* 表不格选中表变文字字体 */
|
|
|
|
|
+:deep(.el-table td .cell) {
|
|
|
|
|
+ color: blue;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+}
|
|
|
|
|
+/* 表格选中表变文字字体 */
|
|
|
|
|
+:deep(.el-table__body tr.current-row)>td .el-tooltip {
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+ color: black;
|
|
|
|
|
+}
|
|
|
|
|
+/* 默认表格边框 */
|
|
|
|
|
+:deep(.el-table__body td.el-table__cell) {
|
|
|
|
|
+ border: 1px solid #000000;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+ </style>
|