wukai 3 giorni fa
parent
commit
5590a741df
2 ha cambiato i file con 153 aggiunte e 108 eliminazioni
  1. 9 0
      src/api/emp/emp.js
  2. 144 108
      src/views/emp/emp/index.vue

+ 9 - 0
src/api/emp/emp.js

@@ -42,3 +42,12 @@ export function delEmp(empId) {
         method: 'delete'
     })
 }
+
+//同步mes数据
+export function sync(empDate) {
+    return request({
+        url: '/emp/emp/sync?date=' + empDate,
+        method: 'get'
+    })
+}
+

+ 144 - 108
src/views/emp/emp/index.vue

@@ -15,51 +15,42 @@
       </el-form-item>
     </el-form>
 
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-            type="primary"
-            plain
-            icon="Plus"
-            @click="handleAdd"
-        >新增
-        </el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-            type="success"
-            plain
-            icon="Edit"
-            :disabled="single"
-            @click="handleUpdate"
-        >修改
-        </el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-            type="danger"
-            plain
-            icon="Delete"
-            :disabled="multiple"
-            @click="handleDelete"
-        >删除
-        </el-button>
-      </el-col>
-<!--      <el-col :span="1.5">-->
-<!--        <el-button-->
-<!--            type="warning"-->
-<!--            plain-->
-<!--            icon="Download"-->
-<!--            @click="handleExport"-->
-<!--        >导出-->
-<!--        </el-button>-->
-<!--      </el-col>-->
-      <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
+    <!--    <el-row :gutter="10" class="mb8">-->
+    <!--      <el-col :span="1.5">-->
+    <!--        <el-button-->
+    <!--            type="primary"-->
+    <!--            plain-->
+    <!--            icon="Plus"-->
+    <!--            @click="handleAdd"-->
+    <!--        >新增-->
+    <!--        </el-button>-->
+    <!--      </el-col>-->
+    <!--      <el-col :span="1.5">-->
+    <!--        <el-button-->
+    <!--            type="success"-->
+    <!--            plain-->
+    <!--            icon="Edit"-->
+    <!--            :disabled="single"-->
+    <!--            @click="handleUpdate"-->
+    <!--        >修改-->
+    <!--        </el-button>-->
+    <!--      </el-col>-->
+    <!--      <el-col :span="1.5">-->
+    <!--        <el-button-->
+    <!--            type="danger"-->
+    <!--            plain-->
+    <!--            icon="Delete"-->
+    <!--            :disabled="multiple"-->
+    <!--            @click="handleDelete"-->
+    <!--        >删除-->
+    <!--        </el-button>-->
+    <!--      </el-col>-->
+    <!--      <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>-->
+    <!--    </el-row>-->
 
     <el-table v-loading="loading" :data="empList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
-<!--      <el-table-column label="排班ID" align="center" prop="empId"/>-->
+      <!--      <el-table-column label="排班ID" align="center" prop="empId"/>-->
       <el-table-column label="时间" align="center" prop="empDate" width="180">
         <template #default="scope">
           <span>{{ parseTime(scope.row.empDate, '{y}-{m}-{d}') }}</span>
@@ -73,8 +64,8 @@
           <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">
             修改
           </el-button>
-          <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)">
-            删除
+          <el-button link type="primary" icon="HelpFilled" @click="handleSync(scope.row)">
+            同步MES记录
           </el-button>
         </template>
       </el-table-column>
@@ -89,73 +80,111 @@
     />
 
     <!-- 添加或修改员工排班对话框 -->
-    <el-dialog :title="title" v-model="open" width="1050px" append-to-body>
+    <el-dialog :title="title" v-model="open" append-to-body :close-on-click-modal="false" :style="{width:'1400px'}">
       <el-form ref="empRef" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="时间" prop="empDate">
-          <el-date-picker clearable
-                          v-model="form.empDate"
-                          type="date"
-                          :readonly="isReadOnly"
-                          value-format="YYYY-MM-DD"
-                          placeholder="请选择时间">
-          </el-date-picker>
+        <el-row>
+          <el-col :span="5">
+            <el-form-item label="时间" prop="empDate">
+              <el-date-picker clearable
+                              v-model="form.empDate"
+                              type="date"
+                              :readonly="isReadOnly"
+                              value-format="YYYY-MM-DD"
+                              placeholder="请选择时间">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
           <el-col :span="1"></el-col>
-          <el-button type="success" icon="DocumentCopy" @click="copy" v-if="isReadOnly">复制排班</el-button>
-        </el-form-item>
-        <em>排班明细:多个机台号请使用英文逗号”,“分隔,连续机台号使用”-“,例:1 4 7机台号填写为”1,4,7“,1至12号填写为”1-12",1至12号加36号填写为“1-12,36”</em>
+          <el-col :span="17">
+            <!--          <el-button type="success" icon="DocumentCopy" @click="copy" v-if="isReadOnly">复制排班</el-button>-->
+            <span style="font-size:18px;">多个机台号请使用<span
+                style="color: red;font-weight: bold;font-size: 22px;">英文逗号“,”</span>分隔,连续机台号使用<span
+                style="color: red;font-weight: bold;font-size: 22px;">英文减号“-”</span>连接。不能有空行。</span>
+
+            <br/><em style="font-size:16px;">例:1 4 7机台号填写为“1,4,7”,1至12号填写为"1-12”,1至12号加36号填写为“1-12,36”</em>
+          </el-col>
+        </el-row>
         <el-row>
-          <el-col :span="11">
-            <el-divider content-position="center">A班明细信息</el-divider>
-            <el-row :gutter="10" class="mb8">
-              <el-col :span="1.5">
-                <el-button type="primary" icon="Plus" plain @click="handleAddTwinEmpDetailA">添加</el-button>
-              </el-col>
-              <el-col :span="1.5">
-                <el-button type="danger" icon="Delete" plain @click="handleDeleteTwinEmpDetailA">删除</el-button>
-              </el-col>
-            </el-row>
-            <el-table :data="twinEmpDetailListA" :row-class-name="rowTwinEmpDetailIndex"
-                      @selection-change="handleTwinEmpDetailSelectionChange" ref="twinEmpDetailA">
-              <el-table-column type="selection" width="50" align="center"/>
-              <el-table-column label="序号" align="center" prop="index" width="50"/>
-              <el-table-column label="姓名" prop="empName" width="150">
-                <template #default="scope">
-                  <el-input v-model="scope.row.empName" placeholder="请输入姓名"/>
-                </template>
-              </el-table-column>
-              <el-table-column label="机台号" prop="devices" width="200">
-                <template #default="scope">
-                  <el-input v-model="scope.row.devices" placeholder="请输入机台号"/>
-                </template>
-              </el-table-column>
-            </el-table>
+          <el-col :span="12">
+            <el-card>
+              <el-divider content-position="center">A班明细信息</el-divider>
+              <el-row :gutter="10" class="mb8">
+                <el-col :span="1.5">
+                  <el-button type="primary" icon="Plus" plain @click="handleAddTwinEmpDetailA">添加</el-button>
+                </el-col>
+                <el-col :span="1.5">
+                  <el-button type="danger" icon="Delete" plain @click="handleDeleteTwinEmpDetailA">删除</el-button>
+                </el-col>
+              </el-row>
+              <el-table :data="twinEmpDetailListA" :row-class-name="rowTwinEmpDetailIndex"
+                        @selection-change="handleTwinEmpDetailSelectionChange" ref="twinEmpDetailA" height="450">
+                <el-table-column type="selection" width="30" align="center"/>
+                <el-table-column label="序号" align="center" prop="index" width="50"/>
+                <el-table-column label="姓名" prop="empName" width="120">
+                  <template #default="scope">
+                    <el-input v-model="scope.row.empName" placeholder="请输入姓名"/>
+                  </template>
+                </el-table-column>
+                <el-table-column label="上下班时间" align="center" prop="inTime" width="170">
+                  <template #default="scope">
+                    <el-select v-model="scope.row.remark" placeholder="选择上下班时间">
+                      <el-option
+                          v-for="dict in in_out_time"
+                          :key="dict.value"
+                          :label="dict.label"
+                          :value="dict.value"
+                      ></el-option>
+                    </el-select>
+                  </template>
+                </el-table-column>
+                <el-table-column label="机台号" prop="devices" width="260">
+                  <template #default="scope">
+                    <el-input v-model="scope.row.devices" placeholder="请输入机台号"/>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </el-card>
           </el-col>
-          <el-col :span="2"></el-col>
-          <el-col :span="11">
-            <el-divider content-position="center">B班明细信息</el-divider>
-            <el-row :gutter="10" class="mb8">
-              <el-col :span="1.5">
-                <el-button type="primary" icon="Plus" plain @click="handleAddTwinEmpDetailB">添加</el-button>
-              </el-col>
-              <el-col :span="1.5">
-                <el-button type="danger" icon="Delete" plain @click="handleDeleteTwinEmpDetailB">删除</el-button>
-              </el-col>
-            </el-row>
-            <el-table :data="twinEmpDetailListB" :row-class-name="rowTwinEmpDetailIndex"
-                      @selection-change="handleTwinEmpDetailSelectionChange" ref="twinEmpDetailB">
-              <el-table-column type="selection" width="50" align="center"/>
-              <el-table-column label="序号" align="center" prop="index" width="50"/>
-              <el-table-column label="姓名" prop="empName" width="150">
-                <template #default="scope">
-                  <el-input v-model="scope.row.empName" placeholder="请输入姓名"/>
-                </template>
-              </el-table-column>
-              <el-table-column label="机台号" prop="devices" width="200">
-                <template #default="scope">
-                  <el-input v-model="scope.row.devices" placeholder="请输入机台号"/>
-                </template>
-              </el-table-column>
-            </el-table>
+          <!--          <el-col :span=""></el-col>-->
+          <el-col :span="12">
+            <el-card>
+              <el-divider content-position="center">B班明细信息</el-divider>
+              <el-row :gutter="10" class="mb8">
+                <el-col :span="1.5">
+                  <el-button type="primary" icon="Plus" plain @click="handleAddTwinEmpDetailB">添加</el-button>
+                </el-col>
+                <el-col :span="1.5">
+                  <el-button type="danger" icon="Delete" plain @click="handleDeleteTwinEmpDetailB">删除</el-button>
+                </el-col>
+              </el-row>
+              <el-table :data="twinEmpDetailListB" :row-class-name="rowTwinEmpDetailIndex"
+                        @selection-change="handleTwinEmpDetailSelectionChange" ref="twinEmpDetailB" height="450">
+                <el-table-column type="selection" width="30" align="center"/>
+                <el-table-column label="序号" align="center" prop="index" width="50"/>
+                <el-table-column label="姓名" prop="empName" width="120">
+                  <template #default="scope">
+                    <el-input v-model="scope.row.empName" placeholder="请输入姓名"/>
+                  </template>
+                </el-table-column>
+                <el-table-column label="上下班时间" align="center" prop="inTime" width="170">
+                  <template #default="scope">
+                    <el-select v-model="scope.row.remark" placeholder="选择上下班时间">
+                      <el-option
+                          v-for="dict in in_out_time"
+                          :key="dict.value"
+                          :label="dict.label"
+                          :value="dict.value"
+                      ></el-option>
+                    </el-select>
+                  </template>
+                </el-table-column>
+                <el-table-column label="机台号" prop="devices" width="260">
+                  <template #default="scope">
+                    <el-input v-model="scope.row.devices" placeholder="请输入机台号"/>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </el-card>
           </el-col>
         </el-row>
       </el-form>
@@ -170,11 +199,12 @@
 </template>
 
 <script setup name="Emp">
-import {addEmp, delEmp, getEmp, listEmp, updateEmp} from "@/api/emp/emp";
+import {addEmp, delEmp, getEmp, listEmp, sync, updateEmp} from "@/api/emp/emp";
 import {calc} from "@/api/emp/empCalc";
 
 const {proxy} = getCurrentInstance();
 
+const {in_out_time} = proxy.useDict('in_out_time');
 const isReadOnly = ref(false);
 const empList = ref([]);
 const twinEmpDetailListA = ref([]);
@@ -371,6 +401,12 @@ function handleCalc(row) {
   });
 }
 
+function handleSync(row) {
+  sync(row.empDate).then(response => {
+    proxy.$modal.msgSuccess("统计成功");
+  });
+}
+
 /** 复选框选中数据 */
 function handleTwinEmpDetailSelectionChange(selection) {
   checkedTwinEmpDetail.value = selection.map(item => item.index)