瀏覽代碼

更新接口

tty 1 年之前
父節點
當前提交
880ff8ff95

+ 9 - 0
src/api/mes_api_gty/myapi.js

@@ -64,6 +64,15 @@ export const updatePackingTable = (data) => {
   })
 }
 
+// 删除
+export const DeletePackingTable = (data) => {
+  return service({
+    url: '/mes_server/packaging_count_document/del',
+    method: 'post',
+    data
+  })
+}
+
 // 其他计件单据维护
 export const getOtherSideTable = (data) => {
   return service({

+ 39 - 0
src/api/mes_api_gty/otherDocuments.js

@@ -0,0 +1,39 @@
+import service from '@/utils/request'
+/*
+* 其他计件单据维护
+*/
+// 其他计件单据侧边栏
+export const getSide = (data) => {
+  return service({
+    url: '/mes_server/other_count_document/getTab',
+    method: 'get',
+    data
+  })
+}
+
+// 其他计件单据列表
+export const getTable = (params) => {
+  return service({
+    url: '/mes_server/other_count_document/getList',
+    method: 'get',
+    params
+  })
+}
+
+// 获取拉料计件产量维护其他信息
+export const getOtherInfo = (params) => {
+  return service({
+    url: '/mes_server/other_count_document/getOtherInfo',
+    method: 'get',
+    params
+  })
+}
+
+// 拉料计件产量维护修改
+export const updateData = (data) => {
+  return service({
+    url: '/mes_server/other_count_document/edit',
+    method: 'post',
+    data
+  })
+}

+ 68 - 0
src/api/mes_api_gty/timesheet.js

@@ -0,0 +1,68 @@
+import service from '@/utils/request'
+
+/*
+* 计件工计时单维护
+*/
+
+// 计件工计时单侧边栏
+export const getSide = (data) => {
+  return service({
+    url: '/mes_server/piece_work_schedule/getTab',
+    method: 'get',
+    data
+  })
+}
+
+// 计件工计时单列表
+export const getTable = (params) => {
+  return service({
+    url: '/mes_server/piece_work_schedule/getList',
+    method: 'get',
+    params
+  })
+}
+
+// 定位
+export const getLocate = (params) => {
+  return service({
+    url: '/mes_server/piece_work_schedule/locate',
+    method: 'get',
+    params
+  })
+}
+
+// 详情
+export const getTimeDetail = (params) => {
+  return service({
+    url: '/mes_server/piece_work_schedule/detail',
+    method: 'get',
+    params
+  })
+}
+
+// 修改
+export const updateData = (data) => {
+  return service({
+    url: '/mes_server/piece_work_schedule/edit',
+    method: 'post',
+    data
+  })
+}
+
+// 新增
+export const createData = (data) => {
+  return service({
+    url: '/mes_server/piece_work_schedule/add',
+    method: 'post',
+    data
+  })
+}
+
+// 删除
+export const deleteData = (params) => {
+  return service({
+    url: '/mes_server/piece_work_schedule/del',
+    method: 'get',
+    params
+  })
+}

+ 95 - 0
src/api/mes_api_gty/workOrderVerification.js

@@ -0,0 +1,95 @@
+import service from '@/utils/request'
+
+/*
+* 工单核验单维护
+*/
+
+// 侧边栏
+export const getSide = (data) => {
+  return service({
+    url: '/mes_server/work_order_verification/getTab',
+    method: 'get',
+    data
+  })
+}
+
+// 列表、定位
+export const getTable = (params) => {
+  return service({
+    url: '/mes_server/work_order_verification/getList',
+    method: 'get',
+    params
+  })
+}
+
+// 2.1获取单个工单核检单信息
+export const getOneWorkOrder = (params) => {
+  return service({
+    url: '/mes_server/work_order_verification/getOneWorkOrder',
+    method: 'get',
+    params
+  })
+}
+
+// 2.2获取工单基本信息
+export const getOrderInfo = (params) => {
+  return service({
+    url: '/mes_server/work_order_verification/getOrderInfo',
+    method: 'get',
+    params
+  })
+}
+
+// 2.3获取印件名称及工序
+export const getYjInfo = (params) => {
+  return service({
+    url: '/mes_server/work_order_verification/getYjInfo',
+    method: 'get',
+    params
+  })
+}
+
+// 2.4获取废品类别
+export const getWastInfo = (params) => {
+  return service({
+    url: '/mes_server/work_order_verification/getWastInfo',
+    method: 'get',
+    params
+  })
+}
+
+// 2.5获取工序及责任组长
+export const getGxAndLeader = (params) => {
+  return service({
+    url: '/mes_server/work_order_verification/getGxAndLeader',
+    method: 'get',
+    params
+  })
+}
+
+// 2.6修改工单核检单
+export const createData = (data) => {
+  return service({
+    url: '/mes_server/work_order_verification/edit',
+    method: 'post',
+    data
+  })
+}
+
+// 3.1工单核检废品分布
+export const getWasteDistribution = (params) => {
+  return service({
+    url: '/mes_server/work_order_verification/wasteDistribution',
+    method: 'get',
+    params
+  })
+}
+
+// 4.1工单工期异常调整
+export const getOrderDate = (params) => {
+  return service({
+    url: '/mes_server/work_order_verification/getOrderDate',
+    method: 'get',
+    params
+  })
+}

+ 72 - 55
src/view/performance/06-packingDocuments/index.vue

@@ -32,6 +32,12 @@
                 @click="handleSearch"
               >搜索
               </el-button>
+              <el-button
+                type="primary"
+                :icon="Search"
+                @click="handleDelete"
+              >删除
+              </el-button>
               <div style="margin-left: auto;">
                 <el-button
                   type="primary"
@@ -45,11 +51,14 @@
             <el-table
               ref="multipleTable"
               style="width: 100%"
-              tooltip-effect="dark"
               :data="tableData"
               row-key="ID"
-              highlight-current-row="true"
+              highlight-current-row
               border
+              :row-style="{ height: '20px' }"
+              :cell-style="{ padding: '0px' }"
+              :header-row-style="{ height: '20px' }"
+              :header-cell-style="{ padding: '0px' }"
               @selection-change="handleSelectionChange"
               @row-dblclick="doubleClick"
             >
@@ -308,11 +317,10 @@
 import { createCompany, deleteCompanyByIds, updateCompany } from '@/api/company'
 
 // 全量引入格式化工具 请按需保留
-import { ElMessage } from 'element-plus'
+import { ElMessage, ElMessageBox } from 'element-plus'
 import { Download, Search } from '@element-plus/icons-vue'
 import { reactive, ref } from 'vue'
-import { getGxMc, getInfo, getLocate, getPackingSideTable, getPackingTable, updatePackingTable, getYg } from '@/api/mes_api_gty/myapi'
-import { createSKApi } from '@/api/chatgpt'
+import { getGxMc, getInfo, getLocate, getPackingSideTable, getPackingTable, updatePackingTable, getYg, DeletePackingTable } from '@/api/mes_api_gty/myapi'
 
 defineOptions({
   name: '06PackingDocuments',
@@ -378,6 +386,9 @@ const params = {
   gdbh: '',
 }
 
+// 多选数据
+const multipleSelection = ref([])
+
 // 获取列表数据
 const getTableData = async() => {
   try {
@@ -410,6 +421,17 @@ const getLocateTable = async() => {
   }
 }
 
+const deleteTableData = async(id) => {
+  try {
+    const res = await DeletePackingTable({ UniqId: '0' })
+    if (res.code === 0) {
+      return 0
+    }
+  } catch (e) {
+    console.log(e)
+  }
+}
+
 // 左侧树结构点击
 const handleNodeClick = (node, check) => {
   if (node.params) {
@@ -430,6 +452,51 @@ function handleSearch() {
   getLocateTable()
 }
 
+// 删除方法
+const handleSelectionChange = (val) => {
+  multipleSelection.value = val
+}
+
+const handleDelete = () => {
+  if (multipleSelection.value.length === 1) {
+    ElMessageBox.confirm(
+      `确认删除 UniqId = ${multipleSelection.value[0].UniqId} 这条数据么`,
+      '警告',
+      {
+        confirmButtonText: '确认',
+        cancelButtonText: '取消',
+        type: 'warning',
+      }
+    )
+      .then(async() => {
+        const ret = await deleteTableData()
+        console.log(ret)
+        if (ret === 0) {
+          ElMessage({
+            type: 'success',
+            message: '删除成功',
+          })
+        } else {
+          ElMessage({
+            type: 'error',
+            message: '删除失败',
+          })
+        }
+      })
+      .catch(() => {
+        ElMessage({
+          type: 'info',
+          message: '取消删除',
+        })
+      })
+  } else {
+    ElMessage({
+      type: 'info',
+      message: '仅支持单条数据删除',
+    })
+  }
+}
+
 // 分页设置
 const handleSizeChange = () => {
   switch (params.type) {
@@ -621,56 +688,6 @@ const closeDialog = () => {
   dialogFormVisible.value = false
 }
 
-// 多选数据
-const multipleSelection = ref([])
-// 多选
-const handleSelectionChange = (val) => {
-  multipleSelection.value = val
-}
-
-// 批量删除控制标记
-const deleteVisible = ref(false)
-
-// 多选删除
-const onDelete = async() => {
-  const ids = []
-  if (multipleSelection.value.length === 0) {
-    ElMessage({
-      type: 'warning',
-      message: '请选择要删除的数据',
-    })
-    return
-  }
-  multipleSelection.value &&
-  multipleSelection.value.map(item => {
-    ids.push(item.ID)
-  })
-  const res = await deleteCompanyByIds({ ids })
-  if (res.code === 0) {
-    ElMessage({
-      type: 'success',
-      message: '删除成功',
-    })
-    if (tableData.value.length === ids.length && page.value > 1) {
-      page.value--
-    }
-    deleteVisible.value = false
-    getTableData()
-  }
-}
-
-// 更新行
-// const updateCompanyFunc = async(row) => {
-//   const res = await findCompany({ ID: row.ID })
-//   type.value = 'update'
-//   if (res.code === 0) {
-//     formData.value = res.data.recompany
-//     dialogFormVisible.value = true
-//   }
-// }
-
-// 关闭弹窗
-
 // 导出excel
 function handleExportExcel() {
   console.log('导出到excel')

+ 299 - 226
src/view/performance/07-otherDocuments/index.vue

@@ -5,8 +5,12 @@
       <el-aside width="300px">
         <div class="JKWTree-tree">
           <h3>其他计件单据维护</h3>
-          <el-tree :data="treeData" :props="defaultProps" highlight-current="true"
-            @node-click="handleNodeClick"></el-tree>
+          <el-tree
+            :data="treeData"
+            :props="defaultProps"
+            highlight-current="true"
+            @node-click="handleNodeClick"
+          />
         </div>
       </el-aside>
 
@@ -16,145 +20,192 @@
           <div class="gva-table-box">
             <div class="gva-btn-list">
               <el-row :span="6">
-                <el-input v-model="searchInfo" placeholder="输入工单编号或产品名称" />
+                <el-input
+                  v-model="searchInfo"
+                  placeholder="输入工单编号"
+                  style="width: 200px"
+                />
               </el-row>
-              <el-button type="primary" :icon="Search" @click="onSearch">搜索</el-button>
-              <el-button type="primary" :icon="Refresh">重置</el-button>
+              <el-button
+                type="primary"
+                :icon="Search"
+                @click="onSearch"
+              >搜索</el-button>
               <div style="margin-left: auto;">
-                <el-button type="primary" :icon="Download" @click="exportExcel">导出到Excel</el-button>
+                <el-button
+                  type="primary"
+                  :icon="Download"
+                  @click="exportExcel"
+                >导出到Excel</el-button>
               </div>
             </div>
             <!-- 数据展示 -->
-            <el-table ref="multipleTable" style="width: 100%" tooltip-effect="dark" :data="tableData" row-key="ID"
-              highlight-current-row="true" border @selection-change="handleSelectionChange" @row-dblclick="doubleClick">
-              <el-table-column type="selection" width="55" />
-              <el-table-column align="left" prop="sczl_Type" label="计件类型" width="100" />
-              <el-table-column align="left" prop="Sczl_rq" label="日期" width="100" />
-              <el-table-column align="left" prop="Sczl_bh1" label="员工编号" width="100" />
-              <el-table-column align="left" prop="name" label="员工姓名" width="100" />
-              <el-table-column align="left" prop="sczl_gdbh" label="工单编号" width="100" />
-              <el-table-column align="left" prop="Gd_cpmc" label="产品名称" width="300" />
-              <el-table-column align="left" prop="Sczl_cl" label="产量" width="100" />
-              <el-table-column align="left" prop="" label="千件工价" width="100" />
-              <el-table-column align="left" prop="" label="工价备注" width="200" />
-              <el-table-column align="left" prop="Sczl_desc" label="备注" width="100" />
-              <el-table-column align="left" prop="Sczl_gxmc" label="工序名称" width="100" />
-              <el-table-column align="left" prop="sczl_yjno" label="印件号" width="100" />
-              <el-table-column align="left" prop="sczl_gxh" label="工序号" width="100" />
-              <el-table-column align="left" prop="sys_id" label="创建用户" width="150" />
-              <el-table-column align="left" prop="sys_rq" label="创建时间" width="200" />
-              <el-table-column align="left" prop="mod_rq" label="修改时间" width="200" />
-              <el-table-column align="left" prop="UniqId" label="UNIQID" width="100" />
+            <el-table
+              ref="multipleTable"
+              style="width: 100%"
+              tooltip-effect="dark"
+              :data="tableData"
+              row-key="ID"
+              highlight-current-row
+              border
+              :row-style="{ height: '20px' }"
+              :cell-style="{ padding: '0px' }"
+              :header-row-style="{ height: '20px' }"
+              :header-cell-style="{ padding: '0px' }"
+              @selection-change="handleSelectionChange"
+              @row-dblclick="doubleClick"
+            >
+              <el-table-column
+                type="selection"
+                width="55"
+              />
+
+              <!-- 循环渲染列 -->
+              <el-table-column
+                v-for=" column in tableColumns "
+                :key="column.prop"
+                :prop="column.prop"
+                :label="column.label"
+                :width="column.width"
+                show-overflow-tooltip="true"
+              />
+
             </el-table>
             <!-- 分页 -->
             <div class="gva-pagination">
-              <el-pagination layout="total, sizes, prev, pager, next, jumper" :current-page="page" :page-size="limit"
-                :page-sizes="[10, 30, 50, 100]" :total="total" @current-change="handleCurrentChange"
-                @size-change="handleSizeChange" />
+              <el-pagination
+                v-model:current-page="page"
+                v-model:page-size="limit"
+                layout="total, sizes, prev, pager, next, jumper"
+                :page-sizes="[10, 30, 50, 100]"
+                :total="total"
+                @current-change="handleCurrentChange"
+                @size-change="handleSizeChange"
+              />
             </div>
           </div>
           <!-- 弹出框 -->
-          <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" title="拉料计件产量维护" destroy-on-close
-            width="800px">
+          <el-dialog
+            v-model="dialogFormVisible"
+            :before-close="closeDialog"
+            title="拉料计件产量维护"
+            destroy-on-close
+            width="800px"
+          >
             <!-- <el-scrollbar height="500px"> -->
-            <el-form :model="formData" label-position="left" ref="elFormRef" :rules="rule">
-
-              <el-row>
-                <el-col>
-                  <el-form-item label="员工编号" prop="name">
-                    <el-col :span="4">
-                      <el-input v-model="formData.image" :clearable="true" placeholder="ZM00408" />
-                    </el-col>
-                    <el-col :span="6" style="margin-left: 10px;">
-                      <el-input v-model="formData.image" :clearable="true" placeholder="李有文" />
-                    </el-col>
-                  </el-form-item>
-                </el-col>
-              </el-row>
-
-              <el-row>
-                <el-col :span="8">
-                  <el-form-item label="工序类别" prop="name">
-                    <el-input v-model="formData.image" :clearable="true" placeholder="拉料" />
-                  </el-form-item>
-                </el-col>
-
-                <el-col :span="6" style="margin-left: 5px;">
-                  <el-form-item label="日期" prop="name">
-                    <el-input v-model="formData.image" :clearable="true" placeholder="2022/04/08" />
-                  </el-form-item>
-
-                </el-col>
-              </el-row>
-
-              <el-row>
-                <el-col>
-                  <el-form-item label="工单编号" prop="name">
-                    <el-col :span="4">
-                      <el-input v-model="formData.image" :clearable="true" placeholder="2203217" />
-                    </el-col>
-                    <el-col :span="16" style="margin-left: 10px;">
-                      <el-input v-model="formData.image" :clearable="true" placeholder="黄山金院烟 条盒" />
-                    </el-col>
-                  </el-form-item>
-                </el-col>
-              </el-row>
-
-              <el-row>
-                <el-col>
-                  <el-form-item label="工艺流程" prop="name">
-                    <el-col :span="10">
-                      <el-input v-model="formData.image" :clearable="true" placeholder="" />
-                    </el-col>
-                    <el-col :span="4" style="margin-left: 10px;">
-                      <el-input v-model="formData.image" :clearable="true" placeholder="0" />
-                    </el-col>
-                  </el-form-item>
-                </el-col>
-              </el-row>
-
-              <el-row>
-                <el-col :span="10">
-                </el-col>
-                <el-col :span="8" style="margin-left: 5px;">
-                  <el-form-item label="计件产量" prop="name">
-                    <el-input v-model="formData.image" :clearable="true" placeholder="30.00" />
-                  </el-form-item>
-                </el-col>
-              </el-row>
-
-              <el-row>
-                <el-col>
-                  <el-form-item label="工价代号" prop="name">
-                    <el-col :span="6">
-                      <el-input v-model="formData.image" :clearable="true" placeholder="030010003008" />
-                    </el-col>
-                    <el-col :span="14" style="margin-left: 10px;">
-                      <el-input v-model="formData.image" :clearable="true" placeholder="原纸仓库--->度印车间" />
-                    </el-col>
-                  </el-form-item>
-                </el-col>
-              </el-row>
-
-              <el-row>
-                <el-col>
-                  <el-form-item label="票号备注" prop="name">
-                    <el-col :span="20">
-                      <el-input v-model="formData.image" :clearable="true" placeholder="1-30" />
-                    </el-col>
-                    <el-col :span="0" style="margin-left: 10px;">
-                      <el-input v-model="formData.image" :clearable="true" placeholder="原纸仓库--->度印车间" />
-                    </el-col>
-                  </el-form-item>
-                </el-col>
-              </el-row>
+            <el-form
+              ref="elFormRef"
+              :model="detailData"
+              :rules="rule"
+              label-position="left"
+              inline
+            >
+              <el-form-item
+                label="员工编号"
+              >
+                <el-input
+                  v-model="detailData.Sczl_bh1"
+                  style="width: 100px"
+                  @keyup.enter="handleYgbhEnter"
+                />
+                <el-input
+                  v-model="detailData.name"
+                  style="width: 100px; margin-left: 5px"
+                  readonly
+                />
+              </el-form-item>
+
+              <br>
+
+              <el-form-item
+                label="工序类别"
+              >
+                <el-input
+                  v-model="detailData.sczl_Type"
+                  style="width: 150px"
+                />
+              </el-form-item>
+
+              <el-form-item
+                label="日期"
+              >
+                <el-input
+                  v-model="detailData.Sczl_rq"
+                  style="width: 150px"
+                />
+              </el-form-item>
+
+              <el-form-item
+                label="工单编号"
+              >
+                <el-input
+                  v-model="detailData.sczl_gdbh"
+                  style="width: 100px"
+                  @keyup.enter="handleGdbhEnter"
+                />
+                <el-input
+                  v-model="detailData.Gd_cpmc"
+                  style="width: 400px; margin-left: 5px"
+                  readonly
+                />
+              </el-form-item>
+
+              <el-form-item
+                label="工艺流程"
+              >
+                <el-input
+                  v-model="detailData.image"
+                  style="width: 300px"
+                />
+                <el-input
+                  v-model="detailData.image"
+                  style="width: 100px; margin-left: 5px"
+                />
+              </el-form-item>
+
+              <el-form-item
+                label="计件产量"
+                style="margin-left: 300px"
+              >
+                <el-input
+                  v-model="detailData.Sczl_cl"
+                  style="width: 100px"
+                />
+              </el-form-item>
+
+              <el-form-item
+                label="工价代号"
+              >
+                <el-input
+                  v-model="detailData.Sczl_dedh"
+                  style="width: 200px"
+                  @keyup.enter="handleGjdhEnter"
+                />
+                <el-input
+                  v-model="detailData.aaaa"
+                  style="width: 300px; margin-left: 5px"
+                  readonly
+                />
+              </el-form-item>
+
+              <el-form-item
+                label="票号备注"
+              >
+                <el-input
+                  v-model="detailData.Sczl_desc"
+                  style="width: 505px"
+                />
+              </el-form-item>
 
             </el-form>
 
             <template #footer>
               <div class="dialog-footer">
                 <el-button @click="closeDialog">取 消</el-button>
-                <el-button type="primary" @click="enterDialog">确 定</el-button>
+                <el-button
+                  type="primary"
+                  @click="enterDialog"
+                >确 定</el-button>
               </div>
             </template>
           </el-dialog>
@@ -181,17 +232,16 @@ import { getDictFunc, formatDate, formatBoolean, filterDict, ReturnArrImg, onDow
 import { ElMessage, ElMessageBox } from 'element-plus'
 import { Search, Refresh, Download } from '@element-plus/icons-vue'
 import { ref, reactive, onMounted, onBeforeMount } from 'vue'
-import { getOtherSideTable, getOtherTable } from '@/api/mes_api_gty/myapi'
-
+import { getSide, getTable, getOtherInfo, updateData } from '@/api/mes_api_gty/otherDocuments'
 
 defineOptions({
-  name: '07-otherDocuments'
+  name: '07OtherDocuments'
 })
 
 // 侧边栏数据请求
-const treeData = reactive([]);
-const getSideData = async () => {
-  const response = await getOtherSideTable();
+const treeData = reactive([])
+const getSideData = async() => {
+  const response = await getSide()
   if (response.code === 0) {
     const transformedData = response.data.map(item => ({
       label: `${item.date.replace(/-/g, '.')}【产量合计: ${item.counts}】`,
@@ -202,44 +252,35 @@ const getSideData = async () => {
           Sczl_bh1: sysItem.Sczl_bh1,
         },
       })),
-    }));
-    treeData.splice(0, treeData.length, ...transformedData);
+    }))
+    treeData.splice(0, treeData.length, ...transformedData)
   }
-};
-getSideData();
-
-
-
-
-// 自动化生成的字典(可能为空)以及字段
-const formData = ref({
-  jjlx: '',
-  rq: '',
-  ygbh: '',
-  ygxm: '',
-  gdbh: '',
-  cpmc: '',
-  cl: '',
-  qjgj: '',
-  gjbz: '',
-  bz: '',
-  gxmc: '',
-  yjh: '',
-  gxh: '',
-  cjyh: '',
-  cjsj: '',
-  xgsj: '',
-  uid: '',
-})
-
-// 验证规则
-const rule = reactive({
-})
+}
+getSideData()
 
 const elFormRef = ref()
 const elSearchFormRef = ref()
 
-// =========== 表格控制部分 ===========
+// ============== 表格页面 ==============
+const tableColumns = [
+  { prop: 'sczl_Type', label: '计件类型', width: '100' },
+  { prop: 'Sczl_rq', label: '日期', width: '100' },
+  { prop: 'Sczl_bh1', label: '员工编号', width: '100' },
+  { prop: 'name', label: '员工姓名', width: '100' },
+  { prop: 'sczl_gdbh', label: '工单编号', width: '100' },
+  { prop: 'Gd_cpmc', label: '产品名称', width: '300' },
+  { prop: 'Sczl_cl', label: '产量', width: '100' },
+  { prop: '', label: '千件工价', width: '100' }, // prop 属性值需要补充
+  { prop: '', label: '工价备注', width: '200' }, // prop 属性值需要补充
+  { prop: 'Sczl_desc', label: '备注', width: '100' },
+  { prop: 'Sczl_gxmc', label: '工序名称', width: '100' },
+  { prop: 'sczl_yjno', label: '印件号', width: '100' },
+  { prop: 'sczl_gxh', label: '工序号', width: '100' },
+  { prop: 'sys_id', label: '创建用户', width: '150' },
+  { prop: 'sys_rq', label: '创建时间', width: '200' },
+  { prop: 'mod_rq', label: '修改时间', width: '200' },
+  { prop: 'UniqId', label: 'UNIQID', width: '100' }
+]
 const tableData = reactive([])
 const page = ref(1)
 const total = ref(0)
@@ -248,48 +289,117 @@ const searchInfo = ref('')
 const params = {
   date: '',
   Sczl_bh1: '',
+  order: '',
   page: page.value.toString(),
   limit: limit.value.toString(),
 }
 
+// 获取表格数据
+const getTableData = async() => {
+  try {
+    const response = await getTable(params)
+    if (response.code === 0) {
+      total.value = response.data.total
+      tableData.splice(0, tableData.length, ...response.data.rows)
+    }
+  } catch (e) {
+    console.log(e)
+  }
+}
 
 // 分页设置
-const handleSizeChange = (val) => {
-  limit.value = val;
-  params.limit = val.toString();
-  getTableData();
+const handleSizeChange = () => {
+  params.limit = limit.value.toString()
+  getTableData()
 }
 
 // 页面跳转
-const handleCurrentChange = (val) => {
-  page.value = val;
-  params.page = val.toString();
-  getTableData();
-}
-
-const getTableData = async () => {
-  const response = await getOtherTable(params)
-  if (response.code === 0) {
-    total.value = response.data.total;
-    tableData.splice(0, tableData.length, ...response.data.rows);
-  }
+const handleCurrentChange = () => {
+  params.page = page.value.toString()
+  getTableData()
 }
 
+// 点击左侧节点
 const handleNodeClick = (node, check) => {
   if (node.params) {
-    params.date = node.params.date;
-    params.Sczl_bh1 = node.params.Sczl_bh1;
-    handleCurrentChange(1);
+    params.date = node.params.date
+    params.Sczl_bh1 = node.params.Sczl_bh1
+    params.order = ''
+    page.value = 1
+    handleCurrentChange()
   }
 }
 
 // 搜索
 function onSearch() {
+  params.order = searchInfo.value
+  params.date = ''
+  params.Sczl_bh1 = ''
+  page.value = 1
+  handleCurrentChange()
+}
+
+// ============== 详情页面 ==============
+const detailData = reactive({})
+
+// 弹窗控制标记
+const dialogFormVisible = ref(false)
+
+// 双击表格操作
+const doubleClick = (row, column, event) => {
+  type.value = 'update'
+  Object.assign(detailData, row)
+  dialogFormVisible.value = true
+}
+
+const handleYgbhEnter = async() => {
+  const res = await getOtherInfo({ Sczl_bh1: detailData.Sczl_bh1 })
+  if (res.code === 0) {
+    detailData.name = res.data.name
+  }
+}
+
+const handleGdbhEnter = async() => {
+  const res = await getOtherInfo({ Sczl_gdbh: detailData.sczl_gdbh })
+  if (res.code === 0) {
+    detailData.Gd_cpmc = res.data.name
+  }
+}
+
+const handleGjdhEnter = async() => {
+  const res = await getOtherInfo({ Sczl_dedh: detailData.Sczl_dedh })
+  if (res.code === 0) {
+    detailData.aaaa = res.data.name
+  }
+}
+
+// 弹窗确定
+const enterDialog = async() => {
+  const params = {
+    UniqId: detailData.UniqId,
+    Sczl_bh1: detailData.Sczl_bh1,
+    sczl_Type: detailData.sczl_Type,
+    Sczl_rq: detailData.Sczl_rq,
+    Sczl_gdbh: detailData.sczl_gdbh,
+    Sczl_gxmc: '',
+    sczl_gxh: detailData.sczl_gxh,
+    Sczl_cl: detailData.Sczl_cl,
+    Sczl_dedh: '',
+    Sczl_desc: detailData.Sczl_desc,
+  }
+  console.log(params)
+  // const res = await updateData(params)
+  // if (res.code === 0) {
+  //   ElMessage({
+  //     type: 'success',
+  //     message: res.msg,
+  //   })
+  //   console.log(res)
+  // }
 }
-// ============== 表格控制部分结束 ===============
 
 // 获取需要的字典 可能为空 按需保留
-const setOptions = async () => {
+const setOptions = async() => {
 }
 
 // 获取需要的字典 可能为空 按需保留
@@ -306,7 +416,7 @@ const handleSelectionChange = (val) => {
 const deleteVisible = ref(false)
 
 // 多选删除
-const onDelete = async () => {
+const onDelete = async() => {
   const ids = []
   if (multipleSelection.value.length === 0) {
     ElMessage({
@@ -337,18 +447,15 @@ const onDelete = async () => {
 const type = ref('')
 
 // 更新行
-const updateCompanyFunc = async (row) => {
+const updateCompanyFunc = async(row) => {
   const res = await findCompany({ ID: row.ID })
   type.value = 'update'
   if (res.code === 0) {
-    formData.value = res.data.recompany
+    detailData.value = res.data.recompany
     dialogFormVisible.value = true
   }
 }
 
-// 弹窗控制标记
-const dialogFormVisible = ref(false)
-
 // 打开弹窗
 const openDialog = () => {
   type.value = 'create'
@@ -358,55 +465,21 @@ const openDialog = () => {
 // 关闭弹窗
 const closeDialog = () => {
   dialogFormVisible.value = false
-  formData.value = {
+  detailData.value = {
     address: '',
     image: '',
     name: '',
   }
 }
-// 弹窗确定
-const enterDialog = async () => {
-  elFormRef.value?.validate(async (valid) => {
-    if (!valid) return
-    let res
-    switch (type.value) {
-      case 'create':
-        res = await createCompany(formData.value)
-        break
-      case 'update':
-        res = await updateCompany(formData.value)
-        break
-      default:
-        res = await createCompany(formData.value)
-        break
-    }
-    if (res.code === 0) {
-      ElMessage({
-        type: 'success',
-        message: '创建/更改成功'
-      })
-      closeDialog()
-      getTableData()
-    }
-  })
-}
-
-// 双击表格操作
-function doubleClick(row, column, event) {
-  console.log(row, column, event);
-  // updateCompanyFunc(row);
-  type.value = 'update';
-  dialogFormVisible.value = true
-}
 
 // 导出excel
 function exportExcel() {
-  console.log('导出到excel');
+  console.log('导出到excel')
 }
 
 // 生命周期钩子
 onMounted(() => {
-});
+})
 </script>
 
 <style scoped>

+ 440 - 116
src/view/performance/08-timesheet/index.vue

@@ -5,8 +5,12 @@
       <el-aside width="180px">
         <div class="JKWTree-tree">
           <h3>计件工计时单维护</h3>
-          <el-tree :data="treeData" :props="defaultProps" highlight-current="true"
-            @node-click="handleNodeClick"></el-tree>
+          <el-tree
+            :data="treeData"
+            :props="defaultProps"
+            highlight-current="true"
+            @node-click="handleNodeClick"
+          />
         </div>
       </el-aside>
 
@@ -16,68 +20,248 @@
           <div class="gva-table-box">
             <div class="gva-btn-list">
               <el-row :span="6">
-                <el-input v-model="searchInfo" placeholder="输入工单编号或产品名称" />
+                <el-input
+                  v-model="searchInfo"
+                  placeholder="输入工单编号或产品名称"
+                />
               </el-row>
-              <el-button type="primary" :icon="Search" @click="onSearch">搜索</el-button>
-              <el-button type="primary" :icon="Refresh">重置</el-button>
+              <el-button
+                type="primary"
+                :icon="Search"
+                @click="onSearch"
+              >搜索</el-button>
+              <el-button
+                type="primary"
+                :icon="Refresh"
+              >重置</el-button>
               <div style="margin-left: auto;">
-                <el-button type="primary" :icon="Download" @click="exportExcel">导出到Excel</el-button>
+                <el-button
+                  type="primary"
+                  :icon="Download"
+                  @click="exportExcel"
+                >导出到Excel</el-button>
               </div>
             </div>
             <!-- 数据展示 -->
-            <el-table ref="multipleTable" style="width: 100%" tooltip-effect="dark" :data="tableData" row-key="ID" border
-              highlight-current-row="true" @selection-change="handleSelectionChange" @row-dblclick="doubleClick">
-              <el-table-column type="selection" width="55" />
-              <el-table-column align="left" prop="wgjs_rq" label="日期" width="100" />
-              <el-table-column align="left" prop="wgjs_bh1" label="员工编号1" width="100" />
-              <el-table-column align="left" prop="name1" label="姓名1" width="100" />
-              <el-table-column align="left" prop="department" label="所在部门" width="100" />
-              <el-table-column align="left" prop="wgjs_js1" label="计时1" width="100" />
-              <el-table-column align="left" prop="wgjs_yy1" label="原因1" width="100" />
-
-              <el-table-column align="left" prop="wgjs_bh2" label="员工编号2" width="100" />
-              <el-table-column align="left" prop="name2" label="姓名2" width="100" />
-              <el-table-column align="left" prop="wgjs_js2" label="计时2" width="100" />
-              <el-table-column align="left" prop="wgjs_yy2" label="原因2" width="100" />
-
-              <el-table-column align="left" prop="wgjs_bh3" label="员工编号3" width="100" />
-              <el-table-column align="left" prop="name3" label="姓名3" width="100" />
-              <el-table-column align="left" prop="wgjs_js3" label="计时3" width="100" />
-              <el-table-column align="left" prop="wgjs_yy3" label="原因3" width="100" />
-
-              <el-table-column align="left" prop="wgjs_bh4" label="员工编号4" width="100" />
-              <el-table-column align="left" prop="name4" label="姓名4" width="100" />
-              <el-table-column align="left" prop="wgjs_js4" label="计时4" width="100" />
-              <el-table-column align="left" prop="wgjs_yy4" label="原因4" width="100" />
-
-              <el-table-column align="left" prop="wgjs_bh5" label="员工编号5" width="100" />
-              <el-table-column align="left" prop="name5" label="姓名5" width="100" />
-              <el-table-column align="left" prop="wgjs_js5" label="计时5" width="100" />
-              <el-table-column align="left" prop="wgjs_yy5" label="原因5" width="100" />
-
-              <el-table-column align="left" prop="wgjs_bh6" label="员工编号6" width="100" />
-              <el-table-column align="left" prop="name6" label="姓名6" width="100" />
-              <el-table-column align="left" prop="wgjs_js6" label="计时6" width="100" />
-              <el-table-column align="left" prop="wgjs_yy6" label="原因6" width="100" />
+            <el-table
+              ref="multipleTable"
+              style="width: 100%"
+              tooltip-effect="dark"
+              :data="tableData"
+              row-key="ID"
+              border
+              highlight-current-row="true"
+              @selection-change="handleSelectionChange"
+              @row-dblclick="doubleClick"
+            >
+              <el-table-column
+                type="selection"
+                width="55"
+              />
+              <el-table-column
+                align="left"
+                prop="wgjs_rq"
+                label="日期"
+                width="100"
+              />
+              <el-table-column
+                align="left"
+                prop="wgjs_bh1"
+                label="员工编号1"
+                width="100"
+              />
+              <el-table-column
+                align="left"
+                prop="name1"
+                label="姓名1"
+                width="100"
+              />
+              <el-table-column
+                align="left"
+                prop="department"
+                label="所在部门"
+                width="100"
+              />
+              <el-table-column
+                align="left"
+                prop="wgjs_js1"
+                label="计时1"
+                width="100"
+              />
+              <el-table-column
+                align="left"
+                prop="wgjs_yy1"
+                label="原因1"
+                width="100"
+              />
+
+              <el-table-column
+                align="left"
+                prop="wgjs_bh2"
+                label="员工编号2"
+                width="100"
+              />
+              <el-table-column
+                align="left"
+                prop="name2"
+                label="姓名2"
+                width="100"
+              />
+              <el-table-column
+                align="left"
+                prop="wgjs_js2"
+                label="计时2"
+                width="100"
+              />
+              <el-table-column
+                align="left"
+                prop="wgjs_yy2"
+                label="原因2"
+                width="100"
+              />
+
+              <el-table-column
+                align="left"
+                prop="wgjs_bh3"
+                label="员工编号3"
+                width="100"
+              />
+              <el-table-column
+                align="left"
+                prop="name3"
+                label="姓名3"
+                width="100"
+              />
+              <el-table-column
+                align="left"
+                prop="wgjs_js3"
+                label="计时3"
+                width="100"
+              />
+              <el-table-column
+                align="left"
+                prop="wgjs_yy3"
+                label="原因3"
+                width="100"
+              />
+
+              <el-table-column
+                align="left"
+                prop="wgjs_bh4"
+                label="员工编号4"
+                width="100"
+              />
+              <el-table-column
+                align="left"
+                prop="name4"
+                label="姓名4"
+                width="100"
+              />
+              <el-table-column
+                align="left"
+                prop="wgjs_js4"
+                label="计时4"
+                width="100"
+              />
+              <el-table-column
+                align="left"
+                prop="wgjs_yy4"
+                label="原因4"
+                width="100"
+              />
+
+              <el-table-column
+                align="left"
+                prop="wgjs_bh5"
+                label="员工编号5"
+                width="100"
+              />
+              <el-table-column
+                align="left"
+                prop="name5"
+                label="姓名5"
+                width="100"
+              />
+              <el-table-column
+                align="left"
+                prop="wgjs_js5"
+                label="计时5"
+                width="100"
+              />
+              <el-table-column
+                align="left"
+                prop="wgjs_yy5"
+                label="原因5"
+                width="100"
+              />
+
+              <el-table-column
+                align="left"
+                prop="wgjs_bh6"
+                label="员工编号6"
+                width="100"
+              />
+              <el-table-column
+                align="left"
+                prop="name6"
+                label="姓名6"
+                width="100"
+              />
+              <el-table-column
+                align="left"
+                prop="wgjs_js6"
+                label="计时6"
+                width="100"
+              />
+              <el-table-column
+                align="left"
+                prop="wgjs_yy6"
+                label="原因6"
+                width="100"
+              />
 
             </el-table>
             <!-- 分页 -->
             <div class="gva-pagination">
-              <el-pagination layout="total, sizes, prev, pager, next, jumper" :current-page="page" :page-size="limit"
-                :page-sizes="[10, 30, 50, 100]" :total="total" @current-change="handleCurrentChange"
-                @size-change="handleSizeChange" />
+              <el-pagination
+                layout="total, sizes, prev, pager, next, jumper"
+                :current-page="page"
+                :page-size="limit"
+                :page-sizes="[10, 30, 50, 100]"
+                :total="total"
+                @current-change="handleCurrentChange"
+                @size-change="handleSizeChange"
+              />
             </div>
           </div>
           <!-- 弹出框 -->
-          <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" title="计件工计时单维护" destroy-on-close
-            width="800px">
+          <el-dialog
+            v-model="dialogFormVisible"
+            :before-close="closeDialog"
+            title="计件工计时单维护"
+            destroy-on-close
+            width="800px"
+          >
             <!-- <el-scrollbar height="500px"> -->
-            <el-form :model="formData" label-position="left" ref="elFormRef" :rules="rule">
+            <el-form
+              ref="elFormRef"
+              :model="formData"
+              label-position="left"
+              :rules="rule"
+            >
 
               <!-- 日期 -->
               <el-row>
-                <el-form-item label="日期" prop="name">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="2024.01.03" style="width: 100px;" />
+                <el-form-item
+                  label="日期"
+                  prop="name"
+                >
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="2024.01.03"
+                    style="width: 100px;"
+                  />
                 </el-form-item>
               </el-row>
 
@@ -101,116 +285,254 @@
               </el-row>
 
               <!-- 员工1 -->
-              <el-row :gutter="5" style="margin-top: 10px;">
+              <el-row
+                :gutter="5"
+                style="margin-top: 10px;"
+              >
                 <el-col :span="3">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="ZI00401" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="ZI00401"
+                  />
                 </el-col>
                 <el-col :span="3">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="瞿春生" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="瞿春生"
+                  />
                 </el-col>
                 <el-col :span="3">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="11.0" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="11.0"
+                  />
                 </el-col>
                 <el-col :span="12">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="打包废纸" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="打包废纸"
+                  />
                 </el-col>
                 <el-col :span="3">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="是" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="是"
+                  />
                 </el-col>
               </el-row>
 
               <!-- 员工2 -->
-              <el-row :gutter="5" style="margin-top: 10px;">
+              <el-row
+                :gutter="5"
+                style="margin-top: 10px;"
+              >
                 <el-col :span="3">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="ZI00401" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="ZI00401"
+                  />
                 </el-col>
                 <el-col :span="3">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="瞿春生" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="瞿春生"
+                  />
                 </el-col>
                 <el-col :span="3">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="11.0" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="11.0"
+                  />
                 </el-col>
                 <el-col :span="12">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="打包废纸" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="打包废纸"
+                  />
                 </el-col>
                 <el-col :span="3">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="是" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="是"
+                  />
                 </el-col>
               </el-row>
 
               <!-- 员工3 -->
-              <el-row :gutter="5" style="margin-top: 10px;">
+              <el-row
+                :gutter="5"
+                style="margin-top: 10px;"
+              >
                 <el-col :span="3">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="ZI00401" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="ZI00401"
+                  />
                 </el-col>
                 <el-col :span="3">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="瞿春生" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="瞿春生"
+                  />
                 </el-col>
                 <el-col :span="3">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="11.0" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="11.0"
+                  />
                 </el-col>
                 <el-col :span="12">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="打包废纸" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="打包废纸"
+                  />
                 </el-col>
                 <el-col :span="3">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="是" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="是"
+                  />
                 </el-col>
               </el-row>
 
               <!-- 员工4 -->
-              <el-row :gutter="5" style="margin-top: 10px;">
+              <el-row
+                :gutter="5"
+                style="margin-top: 10px;"
+              >
                 <el-col :span="3">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="ZI00401" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="ZI00401"
+                  />
                 </el-col>
                 <el-col :span="3">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="瞿春生" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="瞿春生"
+                  />
                 </el-col>
                 <el-col :span="3">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="11.0" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="11.0"
+                  />
                 </el-col>
                 <el-col :span="12">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="打包废纸" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="打包废纸"
+                  />
                 </el-col>
                 <el-col :span="3">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="是" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="是"
+                  />
                 </el-col>
               </el-row>
 
               <!-- 员工5 -->
-              <el-row :gutter="5" style="margin-top: 10px;">
+              <el-row
+                :gutter="5"
+                style="margin-top: 10px;"
+              >
                 <el-col :span="3">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="ZI00401" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="ZI00401"
+                  />
                 </el-col>
                 <el-col :span="3">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="瞿春生" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="瞿春生"
+                  />
                 </el-col>
                 <el-col :span="3">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="11.0" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="11.0"
+                  />
                 </el-col>
                 <el-col :span="12">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="打包废纸" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="打包废纸"
+                  />
                 </el-col>
                 <el-col :span="3">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="是" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="是"
+                  />
                 </el-col>
               </el-row>
 
               <!-- 员工6 -->
-              <el-row :gutter="5" style="margin-top: 10px;">
+              <el-row
+                :gutter="5"
+                style="margin-top: 10px;"
+              >
                 <el-col :span="3">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="ZI00401" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="ZI00401"
+                  />
                 </el-col>
                 <el-col :span="3">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="瞿春生" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="瞿春生"
+                  />
                 </el-col>
                 <el-col :span="3">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="11.0" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="11.0"
+                  />
                 </el-col>
                 <el-col :span="12">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="打包废纸" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="打包废纸"
+                  />
                 </el-col>
                 <el-col :span="3">
-                  <el-input v-model="formData.image" :clearable="true" placeholder="是" />
+                  <el-input
+                    v-model="formData.image"
+                    :clearable="true"
+                    placeholder="是"
+                  />
                 </el-col>
               </el-row>
 
@@ -219,7 +541,10 @@
             <template #footer>
               <div class="dialog-footer">
                 <el-button @click="closeDialog">取 消</el-button>
-                <el-button type="primary" @click="enterDialog">确 定</el-button>
+                <el-button
+                  type="primary"
+                  @click="enterDialog"
+                >确 定</el-button>
               </div>
             </template>
           </el-dialog>
@@ -246,28 +571,27 @@ import { getDictFunc, formatDate, formatBoolean, filterDict, ReturnArrImg, onDow
 import { ElMessage, ElMessageBox } from 'element-plus'
 import { Search, Refresh, Download } from '@element-plus/icons-vue'
 import { ref, reactive, onMounted, onBeforeMount } from 'vue'
-import { getTimeSheetSideTable, getTimeSheetTable } from '@/api/mes_api_gty/myapi'
+import { getSide, getTable } from '@/api/mes_api_gty/timesheet'
 
 defineOptions({
-  name: '08-timesheet'
+  name: '08Timesheet'
 })
 
 // 侧边栏数据请求
-const treeData = reactive([]);
-const getSideData = async () => {
-  const response = await getTimeSheetSideTable();
+const treeData = reactive([])
+const getSideData = async() => {
+  const response = await getSide()
   if (response.code === 0) {
     const transformedData = response.data.map(item => ({
       label: item.date,
       params: {
         date: item.date.substring(0, 4) + '-' + item.date.substring(4),
       },
-    }));
-    treeData.splice(0, treeData.length, ...transformedData);
+    }))
+    treeData.splice(0, treeData.length, ...transformedData)
   }
-};
-getSideData();
-
+}
+getSideData()
 
 // 自动化生成的字典(可能为空)以及字段
 const formData = ref({
@@ -347,30 +671,30 @@ const params = {
 
 // 分页设置
 const handleSizeChange = (val) => {
-  limit.value = val;
-  params.limit = val.toString();
-  getTableData();
+  limit.value = val
+  params.limit = val.toString()
+  getTableData()
 }
 
 // 页面跳转
 const handleCurrentChange = (val) => {
-  page.value = val;
-  params.page = val.toString();
-  getTableData();
+  page.value = val
+  params.page = val.toString()
+  getTableData()
 }
 
-const getTableData = async () => {
-  const response = await getTimeSheetTable(params)
+const getTableData = async() => {
+  const response = await getTable(params)
   if (response.code === 0) {
-    total.value = response.data.total;
-    tableData.splice(0, tableData.length, ...response.data.rows);
+    total.value = response.data.total
+    tableData.splice(0, tableData.length, ...response.data.rows)
   }
 }
 
 const handleNodeClick = (node, check) => {
   if (node.params) {
-    params.date = node.params.date;
-    handleCurrentChange(1);
+    params.date = node.params.date
+    handleCurrentChange(1)
   }
 }
 
@@ -379,7 +703,7 @@ function onSearch() {
 }
 
 // 获取需要的字典 可能为空 按需保留
-const setOptions = async () => {
+const setOptions = async() => {
 }
 
 // 获取需要的字典 可能为空 按需保留
@@ -396,7 +720,7 @@ const handleSelectionChange = (val) => {
 const deleteVisible = ref(false)
 
 // 多选删除
-const onDelete = async () => {
+const onDelete = async() => {
   const ids = []
   if (multipleSelection.value.length === 0) {
     ElMessage({
@@ -427,7 +751,7 @@ const onDelete = async () => {
 const type = ref('')
 
 // 更新行
-const updateCompanyFunc = async (row) => {
+const updateCompanyFunc = async(row) => {
   const res = await findCompany({ ID: row.ID })
   type.value = 'update'
   if (res.code === 0) {
@@ -455,8 +779,8 @@ const closeDialog = () => {
   }
 }
 // 弹窗确定
-const enterDialog = async () => {
-  elFormRef.value?.validate(async (valid) => {
+const enterDialog = async() => {
+  elFormRef.value?.validate(async(valid) => {
     if (!valid) return
     let res
     switch (type.value) {
@@ -483,20 +807,20 @@ const enterDialog = async () => {
 
 // 双击表格操作
 function doubleClick(row, column, event) {
-  console.log(row, column, event);
+  console.log(row, column, event)
   // updateCompanyFunc(row);
-  type.value = 'update';
+  type.value = 'update'
   dialogFormVisible.value = true
 }
 
 // 导出excel
 function exportExcel() {
-  console.log('导出到excel');
+  console.log('导出到excel')
 }
 
 // 生命周期钩子
 onMounted(() => {
-});
+})
 </script>
 
 <style scoped>

+ 600 - 232
src/view/performance/09-workOrderVerification/index.vue

@@ -1,149 +1,389 @@
 <template>
   <div>
-    <!-- 左侧树形结构 -->
     <el-container>
+      <!-- 左侧树形结构 -->
       <el-scrollbar max-height="80vh">
         <el-aside width="280px">
           <div class="JKWTree-tree">
             <h3>工单核验单维护</h3>
-            <el-tree :data="treeData" :props="defaultProps" highlight-current="true"
-              @node-click="handleNodeClick"></el-tree>
+            <el-tree
+              :data="treeData"
+              :props="defaultProps"
+              highlight-current="true"
+              @node-click="handleNodeClick"
+            />
           </div>
         </el-aside>
       </el-scrollbar>
 
       <el-container>
         <el-main>
-          <!-- 按钮区域 -->
           <div class="gva-table-box">
+            <!-- 按钮区域 -->
             <div class="gva-btn-list">
               <el-row :span="6">
-                <el-input v-model="searchInfo" placeholder="输入工单编号或产品名称" />
+                <el-input
+                  v-model="searchInfo"
+                  placeholder="输入工单编号"
+                />
               </el-row>
-              <el-button type="primary" :icon="Search" @click="onSearch">搜索</el-button>
-              <el-button type="primary" :icon="Refresh">重置</el-button>
+              <el-button
+                type="primary"
+                :icon="Search"
+                @click="handleSearch"
+              >搜索</el-button>
+              <el-button
+                type="primary"
+                :icon="Refresh"
+              >重置</el-button>
               <div style="margin-left: auto;">
-                <el-button type="primary" :icon="Download" @click="exportExcel">导出到Excel</el-button>
+                <el-button
+                  type="primary"
+                  :icon="Download"
+                  @click="exportExcel"
+                >导出到Excel</el-button>
               </div>
             </div>
             <!-- 数据展示 -->
-            <el-table ref="multipleTable" style="width: 100%" tooltip-effect="dark" :data="tableData" row-key="ID"
-              highlight-current-row="true" border :row-style="{ height: '20px' }" :cell-style="{ padding: '0px' }"
-              :header-row-style="{ height: '20px' }" :header-cell-style="{ padding: '0px' }"
-              @selection-change="handleSelectionChange" @row-dblclick="doubleClick">
-              <el-table-column type="selection" width="55" />
-              <el-table-column align="left" label="工单编号" prop="qczl_gdbh" width="100" />
-              <el-table-column align="left" label="印件号" prop="qczl_yjno" width="100" />
-              <el-table-column align="left" label="印件名称" prop="Gd_cpmc" width="400" />
-              <el-table-column align="left" label="日期" prop="qczl_rq" width="100" />
-              <el-table-column align="left" label="流程单号" prop="qczl_num" width="100" />
-              <el-table-column align="left" label="流程单备注" prop="qczl_NumDesc" width="100" />
-              <el-table-column align="left" label="总废品" prop="qczl_fp" width="100" />
-              <el-table-column align="left" label="废品1" prop="sl_lb1" width="250" />
-              <el-table-column align="left" label="废品2" prop="sl_lb2" width="250" />
-              <el-table-column align="left" label="废品3" prop="sl_lb3" width="250" />
-              <el-table-column align="left" label="废品4" prop="sl_lb4" width="250" />
-              <el-table-column align="left" label="废品5" prop="sl_lb5" width="250" />
-              <el-table-column align="left" label="废品6" prop="sl_lb6" width="250" />
-              <el-table-column align="left" label="废品7" prop="sl_lb7" width="250" />
-              <el-table-column align="left" label="废品8" prop="sl_lb8" width="250" />
-              <el-table-column align="left" label="废品9" prop="sl_lb9" width="250" />
-              <el-table-column align="left" label="废品10" prop="sl_lb10" width="250" />
-              <el-table-column align="left" label="废品11" prop="sl_lb11" width="250" />
-              <el-table-column align="left" label="废品12" prop="sl_lb12" width="250" />
-              <el-table-column align="left" label="废品13" prop="sl_lb13" width="250" />
-              <el-table-column align="left" label="废品14" prop="sl_lb14" width="250" />
-              <el-table-column align="left" label="废品15" prop="sl_lb15" width="250" />
-              <el-table-column align="left" label="废品16" prop="sl_lb16" width="250" />
-              <el-table-column align="left" label="废品17" prop="sl_lb17" width="250" />
-              <el-table-column align="left" label="创建用户" prop="sys_id" width="200" />
+            <el-table
+              ref="multipleTable"
+              style="width: 100%"
+              :data="tableData"
+              row-key="ID"
+              highlight-current-row
+              border
+              :row-style="{ height: '20px' }"
+              :cell-style="{ padding: '0px' }"
+              :header-row-style="{ height: '20px' }"
+              :header-cell-style="{ padding: '0px' }"
+              @selection-change="handleSelectionChange"
+              @row-dblclick="doubleClick"
+            >
+              <el-table-column
+                type="selection"
+                width="55"
+              />
+              <!-- 循环渲染表格列 -->
+              <el-table-column
+                v-for="column in tableColumns"
+                :key="column.prop"
+                :prop="column.prop"
+                :label="column.label"
+                :width="column.width"
+                show-overflow-tooltip="true"
+              />
 
             </el-table>
             <!-- 分页 -->
             <div class="gva-pagination">
-              <el-pagination layout="total, sizes, prev, pager, next, jumper" :current-page="page" :page-size="limit"
-                :page-sizes="[10, 30, 50, 100]" :total="total" @current-change="handleCurrentChange"
-                @size-change="handleSizeChange" />
+              <el-pagination
+                v-model:current-page="page"
+                v-model:page-size="limit"
+                layout="total, sizes, prev, pager, next, jumper"
+                :page-sizes="[10, 30, 50, 100]"
+                :total="total"
+                @current-change="handleCurrentChange"
+                @size-change="handleSizeChange"
+              />
             </div>
           </div>
+
           <!-- 弹出框 -->
-          <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" :title="type === 'create' ? '添加' : '修改'"
-            destroy-on-close width="1200px">
-            <!-- <el-scrollbar height="500px"> -->
-            <el-form :model="formData" label-position="left" ref="elFormRef" :rules="rule">
-
-              <el-row :gutter="20">
-                <el-col :span="4">
-                  <el-form-item label="日期" prop="id">
-                    <el-input v-model="formData.address" :clearable="true" placeholder="2023.12.14" />
-                  </el-form-item>
-                </el-col>
-                <el-col :span="6">
-                  <el-form-item label="员工编号" prop="name">
-                    <el-row :gutter="20">
-                      <el-col :span="12">
-                        <el-input v-model="formData.code" :clearable="true" placeholder="ZT01733" />
-                      </el-col>
-                      <el-col :span="12">
-                        <el-input v-model="formData.name" :clearable="true" placeholder="张玉田" />
-                      </el-col>
-                    </el-row>
-                  </el-form-item>
-                </el-col>
-                <el-col :span="3">
-                  <el-form-item label="组别" prop="name">
-                    <el-input v-model="formData.image" :clearable="true" placeholder="A班" />
-                  </el-form-item>
-                </el-col>
-              </el-row>
+          <el-dialog
+            v-model="dialogFormVisible"
+            :before-close="closeDialog"
+            :title="type === 'create' ? '添加' : '修改'"
+            destroy-on-close
+            width="1200px"
+          >
+
+            <el-form
+              ref="elFormRef"
+              :model="detailData"
+              inline
+              label-position="left"
+              :rules="rule"
+            >
+              <el-form-item
+                label="日期"
+              >
+                <el-date-picker
+                  v-model="detailData.qczl_rq"
+                  type="date"
+                  style="width: 150px;"
+                />
+                <!--                <el-input
+                  v-model="detailData.qczl_rq"
+                  style="width: 120px;"
+                />-->
+              </el-form-item>
+              <el-form-item
+                label="工单编号"
+              >
+                <el-input
+                  v-model="detailData.qczl_gdbh"
+                  style="width: 100px;"
+                  @keyup.enter="handleGdbhEnter"
+                />
+              </el-form-item>
+              <el-form-item label="拼印主工单">
+                <el-input
+                  v-model="detailData.qczl_Pygd"
+                  style="width: 100px;"
+                />
+              </el-form-item>
+              <el-form-item
+                label="产品名称"
+              >
+                <el-input
+                  v-model="detailData.Gd_cpmc"
+                  style="width: 400px;"
+                  readonly
+                />
+              </el-form-item>
+              <br>
+              <el-form-item
+                label="印件号"
+              >
+                <el-input
+                  v-model="detailData.qczl_yjno"
+                  style="width: 60px;"
+                />
+              </el-form-item>
+              <el-form-item
+                label="印件名称"
+                style="margin-left: 47px"
+              >
+                <el-input
+                  v-model="detailData.yj_yjmc"
+                  style="width: 500px;"
+                  readonly
+                />
+              </el-form-item>
+              <el-form-item
+                label="废品总数"
+              >
+                <el-input
+                  v-model="detailData.qczl_fp"
+                  style="width: 100px;"
+                />
+              </el-form-item>
+              <br>
+
+              <el-form-item
+                label="工序"
+              >
+                <el-input
+                  v-model="detailData.qczl_gxmc"
+                  style="width: 200px;"
+                />
+              </el-form-item>
+              <el-form-item
+                label="工序号"
+              >
+                <el-input
+                  v-model="detailData.qczl_gxh"
+                  style="width: 100px;"
+                  readonly
+                />
+              </el-form-item>
+              <el-form-item
+                label="总流程号"
+              >
+                <el-input
+                  v-model="detailData.total_liucheng"
+                  style="width: 100px;"
+                  readonly
+                />
+              </el-form-item>
 
-              <el-row :gutter="20">
-                <el-col :span="4">
-                </el-col>
-                <el-col :span="8">
-                  <el-row :gutter="20">
-                    <el-col :span="14">
-                      <el-form-item label="计时时数" prop="id">
-                        <el-input v-model="formData.address" :clearable="true" placeholder="0.00" />
-                      </el-form-item>
-                    </el-col>
-                    <el-col :span="10">
-                      <el-form-item label="冲月定额" prop="id">
-                        <el-input v-model="formData.address" :clearable="true" placeholder="是" />
-                      </el-form-item>
-                    </el-col>
-                  </el-row>
-                </el-col>
-              </el-row>
-              <el-scrollbar height="300px">
-                <el-table style="width: 100%" :data="detailData">
-                  <el-table-column prop="gdbh" label="工单编号" width="80"></el-table-column>
-                  <el-table-column prop="yjgx" label="印件工序" width="80"></el-table-column>
-                  <el-table-column prop="gxmc" label="工序名称" width="100"></el-table-column>
-                  <el-table-column prop="yjmc" label="印件名称"></el-table-column>
-                  <el-table-column prop="bzcl" label="包装产量" width="80"></el-table-column>
-                  <el-table-column prop="fgcl" label="返工产量" width="80"></el-table-column>
-                  <el-table-column prop="mxsl" label="每箱数量" width="80"></el-table-column>
-                  <el-table-column prop="jcxs" label="计产系数" width="80"></el-table-column>
-                  <el-table-column prop="ly" label="来源" width="80"></el-table-column>
-                  <el-table-column prop="dedh" label="定额代号" width="100"></el-table-column>
-                </el-table>
-              </el-scrollbar>
+              <el-form-item
+                label="流程单号"
+              >
+                <el-input
+                  v-model="detailData.qczl_num"
+                  style="width: 60px; margin-left: 5px;"
+                />
+                <el-input
+                  v-model="detailData.qczl_NumDesc1"
+                  style="width: 60px; margin-left: 5px;"
+                />
+                <el-input
+                  v-model="detailData.qczl_NumDesc2"
+                  style="width: 60px; margin-left: 5px;"
+                />
+                <el-input
+                  v-model="detailData.qczl_NumDesc3"
+                  style="width: 60px; margin-left: 5px;"
+                />
+                <el-input
+                  v-model="detailData.qczl_NumDesc4"
+                  style="width: 60px; margin-left: 5px;"
+                />
+                <el-input
+                  v-model="detailData.qczl_NumDesc5"
+                  style="width: 60px; margin-left: 5px;"
+                />
+                <el-input
+                  v-model="detailData.qczl_NumDesc6"
+                  style="width: 60px; margin-left: 5px;"
+                />
+                <el-input
+                  v-model="detailData.qczl_NumDesc7"
+                  style="width: 60px; margin-left: 5px;"
+                />
+                <el-input
+                  v-model="detailData.qczl_NumDesc8"
+                  style="width: 60px; margin-left: 5px;"
+                />
+              </el-form-item>
 
-              <el-form-item label="其他备注" prop="id" style="margin-top: 10px;">
-                <el-input v-model="formData.address" :clearable="true" placeholder="" />
+              <el-form-item
+                label="备注"
+              >
+                <el-input
+                  v-model="detailData.qczl_NumDesc"
+                  style="width: 200px;"
+                />
               </el-form-item>
 
+              <el-scrollbar height="400px">
+                <el-table
+                  :data="detailData.table"
+                  border
+                  tooltip-effect="dark"
+                  :row-style="{ height: '20px' }"
+                  :cell-style="{ padding: '0px' }"
+                  :header-row-style="{ height: '20px' }"
+                  :header-cell-style="{ padding: '0px' }"
+                >
+                  <el-table-column
+                    label="废品类别"
+                    width="200"
+                  >
+                    <template #default="{ row, $index }">
+                      <el-input
+                        v-model="row.fp_lb"
+                        @keyup.enter="handleFplbEnter($index, row)"
+                      />
+                    </template>
+                  </el-table-column>
+
+                  <el-table-column
+                    label="数量"
+                    width="100"
+                  >
+                    <template #default="{ row, $index }">
+                      <el-input
+                        v-model="row.fp_sl"
+                        @keyup.enter="handleFpslEnter($index, row)"
+                      />
+                    </template>
+                  </el-table-column>
+                  <el-table-column
+                    label="工序及责任机长"
+                    width="500"
+                  >
+                    <template #default="{ row }">
+                      <el-input
+                        v-model="row.fp_gxmc"
+                        readonly
+                      />
+                    </template>
+                  </el-table-column>
+                  <el-table-column
+                    label=""
+                    width="100"
+                  >
+                    <template #default="{ row }">
+                      <el-input
+                        v-model="row.fp_bz"
+                        readonly
+                      />
+                    </template>
+                  </el-table-column>
+                  <el-table-column
+                    label=""
+                    width="100"
+                  >
+                    <template #default="{ row }">
+                      <el-input
+                        v-model="row.fp_bh"
+                        readonly
+                      />
+                    </template>
+                  </el-table-column>
+                  <el-table-column
+                    label=""
+                    width="100"
+                  >
+                    <template #default="{ row }">
+                      <el-input
+                        v-model="row.fp_name"
+                        readonly
+                      />
+                    </template>
+                  </el-table-column>
+
+                </el-table>
+
+              </el-scrollbar>
+
             </el-form>
-            <!-- </el-scrollbar> -->
+
             <template #footer>
               <div class="dialog-footer">
                 <el-button @click="closeDialog">取 消</el-button>
-                <el-button type="primary" @click="enterDialog">确 定</el-button>
+                <el-button
+                  type="primary"
+                  @click="enterDialog"
+                >确 定
+                </el-button>
               </div>
             </template>
           </el-dialog>
 
+          <!-- 废品类别弹出选项框 -->
+          <el-dialog
+            v-model="dialogSelectVisible1"
+            title="选择"
+            destroy-on-close
+            width="600px"
+          >
+            <el-tree
+              :data="selecTreeData"
+              :props="defaultProps"
+              highlight-current
+              @node-click="handleFplbClick"
+            />
+          </el-dialog>
+
+          <!-- 弹出选项框 数量 -->
+          <el-dialog
+            v-model="dialogSelectVisible2"
+            title="选择"
+            destroy-on-close
+            width="800px"
+          >
+            <el-table
+              tooltip-effect="dark"
+              :data="selectData"
+              row-key="ID"
+              highlight-current-row
+              border
+              style="width:100%"
+              @row-dblclick="handleSelectClick"
+            >
+              <el-table-column
+                v-for=" column in selectColumns "
+                :key="column.prop"
+                :prop="column.prop"
+                :label="column.label"
+                :width="column.width"
+              />
+            </el-table>
+          </el-dialog>
+
         </el-main>
       </el-container>
     </el-container>
@@ -166,16 +406,16 @@ import { getDictFunc, formatDate, formatBoolean, filterDict, ReturnArrImg, onDow
 import { ElMessage, ElMessageBox } from 'element-plus'
 import { Search, Refresh, Download } from '@element-plus/icons-vue'
 import { ref, reactive, onMounted, onBeforeMount } from 'vue'
-import { getOrderVerificationSideTable, getOrderVerificationTable } from '@/api/mes_api_gty/myapi'
+import { getSide, getTable, getOneWorkOrder, getOrderInfo, getGxAndLeader, getWastInfo } from '@/api/mes_api_gty/workOrderVerification'
 
 defineOptions({
-  name: '06-packingDocuments'
+  name: '06PackingDocuments'
 })
 
 // 侧边栏数据请求
-const treeData = reactive([]);
-const getSideData = async () => {
-  const response = await getOrderVerificationSideTable();
+const treeData = reactive([])
+const getSideData = async() => {
+  const response = await getSide()
   if (response.code === 0) {
     const transformedData = response.data.map(item => ({
       label: `${item.date.replace(/-/g, '.')}【单据数: ${item.counts}张】`,
@@ -184,31 +424,14 @@ const getSideData = async () => {
         params: {
           date: item.date.replace(/\./g, '-'),
           sys_id: sysItem.sys_id,
-          total: sysItem.count,
         },
       })),
-    }));
-    treeData.splice(0, treeData.length, ...transformedData);
+    }))
+    treeData.splice(0, treeData.length, ...transformedData)
   }
-};
+}
 
-getSideData();
-
-// 自动化生成的字典(可能为空)以及字段
-const formData = ref({
-  id: '',
-  name: '',
-  date: '',
-  group: '',
-  packingOutput: '',
-  reworkOutput: '',
-  pieceOutput: '',
-  order: '',
-  user: '',
-  createTime: '',
-  updateTime: '',
-  uniqid: '',
-})
+getSideData()
 
 // 验证规则
 const rule = reactive({
@@ -218,87 +441,283 @@ const elFormRef = ref()
 const elSearchFormRef = ref()
 
 // =========== 表格控制部分 ===========
+const tableColumns = [
+  { label: '工单编号', prop: 'qczl_gdbh', width: '100' },
+  { label: '印件号', prop: 'qczl_yjno', width: '100' },
+  { label: '印件名称', prop: 'Gd_cpmc', width: '400' },
+  { label: '日期', prop: 'qczl_rq', width: '100' },
+  { label: '流程单号', prop: 'qczl_num', width: '100' },
+  { label: '流程单备注', prop: 'qczl_NumDesc', width: '100' },
+  { label: '总废品', prop: 'qczl_fp', width: '100' },
+  { label: '废品1', prop: 'sl_lb1', width: '250' },
+  { label: '废品2', prop: 'sl_lb2', width: '250' },
+  { label: '废品3', prop: 'sl_lb3', width: '250' },
+  { label: '废品4', prop: 'sl_lb4', width: '250' },
+  { label: '废品5', prop: 'sl_lb5', width: '250' },
+  { label: '废品6', prop: 'sl_lb6', width: '250' },
+  { label: '废品7', prop: 'sl_lb7', width: '250' },
+  { label: '废品8', prop: 'sl_lb8', width: '250' },
+  { label: '废品9', prop: 'sl_lb9', width: '250' },
+  { label: '废品10', prop: 'sl_lb10', width: '250' },
+  { label: '废品11', prop: 'sl_lb11', width: '250' },
+  { label: '废品12', prop: 'sl_lb12', width: '250' },
+  { label: '废品13', prop: 'sl_lb13', width: '250' },
+  { label: '废品14', prop: 'sl_lb14', width: '250' },
+  { label: '废品15', prop: 'sl_lb15', width: '250' },
+  { label: '废品16', prop: 'sl_lb16', width: '250' },
+  { label: '废品17', prop: 'sl_lb17', width: '250' },
+  { label: '创建用户', prop: 'sys_id', width: '200' }
+]
 const tableData = reactive([])
-const detailData = reactive([
-  {
-    gdbh: '2311736',
-    yjgx: '01-15',
-    gxmc: '包装(圆切)',
-    yjmc: '利群(新)小《降焦改版)',
-    bzcl: '13.00',
-    fgcl: '0.00',
-    mxsl: '2500',
-    jcxs: '1.000',
-    ly: '',
-    dedh: '030002002',
-  },
-])
+
 const total = ref(0)
 const page = ref(1)
 const limit = ref(10)
+
 const searchInfo = ref('')
 const params = {
   date: '',
   sys_id: '',
+  order: '',
   page: page.value.toString(),
   limit: limit.value.toString(),
 }
 
-// 分页设置
-const handleSizeChange = (val) => {
-  limit.value = val;
-  params.limit = val.toString();
-  getTableData();
+// 批量删除控制标记
+const deleteVisible = ref(false)
+const multipleSelection = ref([])
+
+const getTableData = async() => {
+  const response = await getTable(params)
+  if (response.code === 0) {
+    total.value = response.data.total
+    tableData.splice(0, tableData.length, ...response.data.rows)
+  }
+}
+
+// 左侧树结构点击
+const handleNodeClick = (node, check) => {
+  if (node.params) {
+    params.date = node.params.date
+    params.sys_id = node.params.sys_id
+    page.value = 1
+    handleCurrentChange()
+  }
+}
+
+// 搜索
+function handleSearch() {
+}
+
+// 分页
+const handleSizeChange = () => {
+  params.limit = limit.value.toString()
+  getTableData()
 }
 
 // 页面跳转
-const handleCurrentChange = (val) => {
-  page.value = val
-  params.page = val.toString();
+const handleCurrentChange = () => {
+  params.page = page.value.toString()
   getTableData()
 }
 
-const getTableData = async () => {
-  const response = await getOrderVerificationTable(params);
-  if (response.code === 0) {
-    tableData.splice(0, tableData.length, ...response.data.rows);
+// ============== 详情页面 ==============
+const detailData = reactive({})
+const selectData = reactive([])
+const selectColumns = [
+  { label: '', prop: 'sczl_gxmc', width: '600' },
+  { label: '', prop: 'sczl_bzdh', width: '100' },
+  { label: '', prop: 'name', width: '100' },
+]
+let selecTreeData = []
+
+// 行为控制标记(弹窗内部需要增还是改)
+const type = ref('')
+
+// 弹窗控制标记
+const dialogFormVisible = ref(false)
+const dialogSelectVisible1 = ref(false)
+const dialogSelectVisible2 = ref(false)
+
+let selectIndex = 0
+
+const getDetailData = async(id) => {
+  try {
+    const res = await getOneWorkOrder({ UniqId: id })
+    if (res.code === 0) {
+      const obj = res.data
+      // 裁剪返回数据的前后空格
+      for (const key in obj) {
+        if (Object.prototype.hasOwnProperty.call(obj, key) && typeof obj[key] === 'string') {
+          obj[key] = obj[key].trim()
+        }
+      }
+
+      Object.assign(detailData, obj)
+      const table = []
+
+      // 循环13行数据
+      for (let i = 1; i <= 13; i++) {
+        table.push({
+          fp_lb: detailData[`fp_lb${i}`] || '',
+          fp_sl: detailData[`fp_sl${i}`] || '',
+          fp_gxmc: detailData[`fp_gxmc${i}`] || '',
+          fp_bz: detailData[`fp_bz${i}`] || '',
+          fp_bh: detailData[`fp_bh${i}`] || '',
+          fp_name: detailData[`fp_name${i}`] || '',
+        })
+        // 从原对象中删除这些属性
+        delete detailData[`fp_lb${i}`]
+        delete detailData[`fp_sl${i}`]
+        delete detailData[`fp_gxmc${i}`]
+        delete detailData[`fp_bz${i}`]
+        delete detailData[`fp_bh${i}`]
+        delete detailData[`fp_name${i}`]
+      }
+      detailData.table = table
+      try {
+        const res = await getOrderInfo({ order: detailData.qczl_gdbh })
+        if (res.code === 0) {
+          detailData.Gd_cpmc = res.data.Gd_cpmc
+          dialogFormVisible.value = true
+        }
+      } catch (e) {
+        console.log(e)
+      }
+    }
+  } catch (e) {
+    console.log(e)
   }
 }
 
-const handleNodeClick = (node, check) => {
-  if (node.params) {
-    params.date = node.params.date;
-    params.sys_id = node.params.sys_id;
-    total.value = node.params.total;
-    handleCurrentChange(1);
+// 工单编号回车
+const handleGdbhEnter = async() => {
+  const res = await getOrderInfo({ order: detailData.qczl_gdbh })
+  if (res.code === 0) {
+    const { Gd_cpmc, yj_Yjno, yj_yjmc } = res.data
+    detailData.Gd_cpmc = Gd_cpmc
+    detailData.qczl_yjno = yj_Yjno
+    detailData.yj_yjmc = yj_yjmc
   }
 }
 
-// 搜索
-function onSearch() {
+// 废品类别回车
+const handleFplbEnter = async(index, row) => {
+  let res
+  try {
+    res = await getWastInfo({ search: row.fp_lb })
+    if (res.code !== 0) {
+      return
+    }
+  } catch (e) {
+    console.log(e)
+    return
+  }
+
+  const obj = res.data
+  const treeData = []
+  for (const category in obj) {
+    if (Object.prototype.hasOwnProperty.call(obj, category)) {
+      const children = []
+
+      for (const subCategory in obj[category]) {
+        if (Object.prototype.hasOwnProperty.call(obj[category], subCategory)) {
+          const subChildren = obj[category][subCategory].map(item => {
+            return { label: item }
+          })
+
+          children.push({
+            label: subCategory,
+            children: subChildren
+          })
+        }
+      }
+
+      treeData.push({
+        label: category,
+        children: children
+      })
+    }
+  }
+  selecTreeData = treeData
+  selectIndex = index
+  dialogSelectVisible1.value = true
+}
 
+const handleFplbClick = (node, check) => {
+  if (!node.children) {
+    detailData.table[selectIndex].fp_lb = node.label
+    dialogSelectVisible1.value = false
+  }
 }
-// ============== 表格控制部分结束 ===============
 
-// 获取需要的字典 可能为空 按需保留
-const setOptions = async () => {
+// 废品数量回车
+const handleFpslEnter = async(index, row) => {
+  if (row.fp_sl === '0') {
+    detailData.table[index].fp_gxmc = ''
+    detailData.table[index].fp_bz = ''
+    detailData.table[index].fp_bh = ''
+    detailData.table[index].fp_name = ''
+    return
+  }
+
+  const params = {
+    type: row.fp_lb,
+    order: detailData.qczl_gdbh,
+  }
+  let res
+  try {
+    res = await getGxAndLeader(params)
+    if (res.code !== 0) {
+      return
+    }
+  } catch (e) {
+    console.log(e)
+    return
+  }
+  selectIndex = index
+  Object.assign(selectData, res.data)
+  dialogSelectVisible2.value = true
 }
 
-// 获取需要的字典 可能为空 按需保留
-setOptions()
+// 双击表格操作
+function doubleClick(row, column, event) {
+  type.value = 'update'
+  getDetailData(row.UniqId)
+}
+
+// 处理选择框回车操作
+const handleSelectClick = (row, column, event) => {
+  const { sczl_gxmc, sczl_bzdh, sczl_bh1, name } = row
+  const index = selectIndex
+  detailData.table[index].fp_gxmc = sczl_gxmc
+  detailData.table[index].fp_bz = sczl_bzdh
+  detailData.table[index].fp_bh = sczl_bh1
+  detailData.table[index].fp_name = name
+  dialogSelectVisible2.value = false
+}
+
+// 弹窗确定
+const enterDialog = async() => {
+  const restoredData = {}
+  detailData.table.forEach((item, index) => {
+    const num = index + 1
+    restoredData[`fp_lb${num}`] = item.fp_lb
+    restoredData[`fp_sl${num}`] = item.fp_sl
+    restoredData[`fp_bh${num}`] = item.fp_bh
+    restoredData[`fp_bz${num}`] = item.fp_bz
+    restoredData[`fp_gxmc${num}`] = item.fp_gxmc
+  })
+  console.log(restoredData)
+}
 
-// 多选数据
-const multipleSelection = ref([])
 // 多选
 const handleSelectionChange = (val) => {
   multipleSelection.value = val
 }
 
-// 批量删除控制标记
-const deleteVisible = ref(false)
-
 // 多选删除
-const onDelete = async () => {
+const onDelete = async() => {
   const ids = []
   if (multipleSelection.value.length === 0) {
     ElMessage({
@@ -325,11 +744,8 @@ const onDelete = async () => {
   }
 }
 
-// 行为控制标记(弹窗内部需要增还是改)
-const type = ref('')
-
 // 更新行
-const updateCompanyFunc = async (row) => {
+const updateCompanyFunc = async(row) => {
   const res = await findCompany({ ID: row.ID })
   type.value = 'update'
   if (res.code === 0) {
@@ -338,67 +754,19 @@ const updateCompanyFunc = async (row) => {
   }
 }
 
-// 弹窗控制标记
-const dialogFormVisible = ref(false)
-
-// 打开弹窗
-const openDialog = () => {
-  type.value = 'create'
-  dialogFormVisible.value = true
-}
-
 // 关闭弹窗
 const closeDialog = () => {
   dialogFormVisible.value = false
-  formData.value = {
-    address: '',
-    image: '',
-    name: '',
-  }
-}
-// 弹窗确定
-const enterDialog = async () => {
-  elFormRef.value?.validate(async (valid) => {
-    if (!valid) return
-    let res
-    switch (type.value) {
-      case 'create':
-        res = await createCompany(formData.value)
-        break
-      case 'update':
-        res = await updateCompany(formData.value)
-        break
-      default:
-        res = await createCompany(formData.value)
-        break
-    }
-    if (res.code === 0) {
-      ElMessage({
-        type: 'success',
-        message: '创建/更改成功'
-      })
-      closeDialog()
-      getTableData()
-    }
-  })
-}
-
-// 双击表格操作
-function doubleClick(row, column, event) {
-  console.log(row, column, event);
-  // updateCompanyFunc(row);
-  type.value = 'update';
-  dialogFormVisible.value = true
 }
 
 // 导出excel
 function exportExcel() {
-  console.log('导出到excel');
+  console.log('导出到excel')
 }
 
 // 生命周期钩子
-onMounted(async () => {
-});
+onMounted(async() => {
+})
 </script>
 
 <style scoped>

+ 1 - 1
src/view/performance/14-overTimePayVerification/index.vue

@@ -1,4 +1,4 @@
-<template>
+ <template>
   <div>
     <!-- 左侧树形结构 -->
     <el-container>