tty 1 rok pred
rodič
commit
74b3e77d48

+ 2 - 1
jsconfig.json

@@ -3,7 +3,8 @@
       "baseUrl": "./",
       "paths": {
         "@/*": ["src/*"],
-      }
+      },
+      "types": ["element-plus/global"]
     },
     "exclude": ["node_modules", "dist"],
     "include": ["src/**/*"]

+ 37 - 1
src/api/mes_api_gty/otherDocuments.js

@@ -29,6 +29,42 @@ export const getInfo = (params) => {
   })
 }
 
+// 查询员工名称
+export const getYg = (params) => {
+  return service({
+    url: '/mes_server/packaging_count_document/getYg',
+    method: 'get',
+    params
+  })
+}
+
+// 获取工单名称
+export const getGdmc = (params) => {
+  return service({
+    url: '/mes_server/machine_production_report/getGdmc',
+    method: 'get',
+    params
+  })
+}
+
+// 查询印件工序及产品名称
+export const getGxMc = (params) => {
+  return service({
+    url: '/mes_server/other_count_document/getGxMc',
+    method: 'get',
+    params
+  })
+}
+
+// 获取定额代号
+export const getDedh = (params) => {
+  return service({
+    url: '/mes_server/machine_production_report/getDedh',
+    method: 'get',
+    params
+  })
+}
+
 // 获取拉料计件产量维护其他信息
 export const getOtherInfo = (params) => {
   return service({
@@ -54,4 +90,4 @@ export const add = (data) => {
     method: 'post',
     data
   })
-}
+}

+ 277 - 139
src/view/performance/06-packingDocuments/index.vue

@@ -1,113 +1,52 @@
 <template>
   <div>
-    <el-container>
-      <!-- 左侧树形结构 -->
-      <el-scrollbar max-height="75vh">
-        <el-aside>
-          <div class="JKWTree-tree">
-            <h3>包装计件单据维护</h3>
-            <el-scrollbar
-              height="70vh"
-            >
-              <el-tree
-                :data="treeData"
-                highlight-current
-                @node-click="handleNodeClick"
-              />
-            </el-scrollbar>
-          </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"
-                  style="width: 150px;"
-                  placeholder="输入工单编号"
-                />
-              </el-row>
-              <el-button
-                type="primary"
-                :icon="Search"
-                @click="handleSearch"
-              >定位
-              </el-button>
-              <el-button
-                type="primary"
-                :icon="Search"
-                @click="handleShowDetail"
-              >查改
-              </el-button>
-              <el-button
-                type="primary"
-                :icon="Search"
-                @click="handleShowAdd"
-              >新增
-              </el-button>
-              <el-button
-                type="primary"
-                :icon="Delete"
-                @click="handleDelete"
-              >删除
-              </el-button>
-              <div style="margin-left: auto;">
-                <el-button
-                  type="primary"
-                  :icon="Download"
-                  @click="handleExportExcel"
-                >导出到Excel
-                </el-button>
-              </div>
-            </div>
-            <!-- 数据展示 -->
-            <el-table
-              ref="multipleTable"
-              style="width: 100%"
-              :data="tableData"
-              row-key="ID"
-              highlight-current-row
-              border
-              show-overflow-tooltip="true"
-              :row-style="{ height: '20px' }"
-              :cell-style="{ padding: '0px' }"
-              :header-row-style="{ height: '20px' }"
-              :header-cell-style="{ padding: '0px' }"
-              @selection-change="handleSelectionChange"
-              @row-dblclick="handleShowDetail"
-              @row-click="currentRow = $event"
-            >
-              <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"
-              />
-            </el-table>
-            <!-- 分页 -->
-            <div class="gva-pagination">
-              <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>
-          <!-- 弹出框 -->
+    <layout>
+      <layout-header>
+        <!-- 按钮 -->
+        <el-form inline>
+          <el-form-item>
+            <el-input
+              v-model="searchInfo"
+              placeholder="搜索产品编号或产品名称"
+              clearable
+              style="width: 180px;"
+            />
+            <el-button
+              type="primary"
+              icon="Search"
+              class="search"
+              @click="handleSearch"
+            />
+
+            <el-button
+              type="primary"
+              icon="edit"
+              class="bt"
+              @click="handleShowDetail"
+            ><i class="el-icon-edit" />查改
+            </el-button>
+
+            <el-button
+              type="primary"
+              icon="edit"
+              class="bt"
+              @click="handleShowAdd"
+            >新增
+            </el-button>
+
+            <el-button
+              type="primary"
+              icon="delete"
+              class="bt"
+              @click="handleDelete"
+            >删除
+            </el-button>
+
+          </el-form-item>
+        </el-form>
+
+        <!-- 弹出框 -->
+        <div>
           <el-dialog
             v-model="dialogFormVisible"
             :title="type"
@@ -116,10 +55,11 @@
           >
 
             <el-form
-              ref="elFormRef"
+              id="detail-form"
               :model="detailData"
               inline
               label-position="left"
+              @keyup="moveFocus"
             >
               <el-form-item
                 label="日期"
@@ -131,7 +71,6 @@
               </el-form-item>
               <el-form-item
                 label="员工编号"
-                @keyup.enter="handleGetYg"
               >
                 <el-input
                   v-model="detailData.sczl_bh"
@@ -144,11 +83,21 @@
                 />
               </el-form-item>
               <el-form-item label="组别">
-                <el-input
+                <el-select
                   v-model="detailData.sczl_bzdh"
-                  style="width: 50px;"
-                />
-              </el-form-item>
+                  placeholder=" "
+                  style="width: 80px"
+                >
+                  <el-option
+                    label="A班"
+                    value="A班"
+                  />
+                  <el-option
+                    label="B班"
+                    value="B班"
+                  />
+
+                </el-select></el-form-item>
               <br>
               <el-form-item
                 label="计时时数"
@@ -160,10 +109,21 @@
                 />
               </el-form-item>
               <el-form-item label="冲月定额">
-                <el-input
+                <el-select
                   v-model="detailData.sczl_冲定额"
-                  style="width: 50px;"
-                />
+                  placeholder=" "
+                  style="width: 100px"
+                >
+                  <el-option
+                    label=""
+                    value=""
+                  />
+                  <el-option
+                    label="是"
+                    value="是"
+                  />
+
+                </el-select>
               </el-form-item>
 
               <el-table
@@ -321,18 +281,85 @@
               />
             </el-table>
           </el-dialog>
+        </div>
+
+      </layout-header>
+
+      <layout>
+        <!--    左侧树侧形结构-->
+        <layout-sider
+          :resize-directions="['right']"
+          :width="220"
+          style="margin-right: 10px;"
+        >
+          <div
+            class="JKWTree-tree"
+            style="height: 70vh;"
+          >
+            <h3>包装计件单据维护</h3>
+            <el-tree
+              :data="treeData"
+              highlight-current
+              @node-click="handleNodeClick"
+            />
+          </div>
+        </layout-sider>
 
-        </el-main>
-      </el-container>
-    </el-container>
+        <layout-content>
+          <!-- 数据展示 -->
+          <div class="gva-table-box">
+            <el-table
+              ref="table"
+              style="width: 100%"
+              :data="tableData"
+              row-key="ID"
+              highlight-current-row
+              border
+              show-overflow-tooltip
+              :row-style="{ height: '20px' }"
+              :cell-style="{ padding: '0px' }"
+              :header-row-style="{ height: '20px' }"
+              :header-cell-style="{ padding: '0px' }"
+              @row-dblclick="handleShowDetail"
+              @current-change="(row, oldRow) => { currentRow = row}"
+            >
+              <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"
+              />
+            </el-table>
+            <!-- 分页 -->
+            <div class="gva-pagination">
+              <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>
+        </layout-content>
+      </layout>
+    </layout>
 
   </div>
 </template>
 
 <script setup>
-
-import { ElMessage, ElMessageBox } from 'element-plus'
-import { Download, Search, Delete } from '@element-plus/icons-vue'
+import { Layout, LayoutContent, LayoutHeader, LayoutSider } from '@arco-design/web-vue'
+import { ElMessage, ElMessageBox, dayjs } from 'element-plus'
+// import { Download, Search, Delete } from '@element-plus/icons-vue'
 import { reactive, ref } from 'vue'
 import { getGxMc, getInfo, getLocate, getPackingSideTable, getPackingTable, updatePackingTable, getYg, DeletePackingTable, addPackingTable } from '@/api/mes_api_gty/myapi'
 
@@ -340,7 +367,7 @@ defineOptions({
   name: '06PackingDocuments',
 })
 
-// region 侧边栏功能
+// 侧边栏功能
 const treeData = reactive([])
 const getSideData = async() => {
   try {
@@ -363,9 +390,8 @@ const getSideData = async() => {
   }
 }
 getSideData()
-// endregion
 
-// region 表格功能
+// 表格功能
 const tableColumns = [
   { label: '员工编号', prop: 'sczl_bh', width: '100' },
   { label: '员工姓名', prop: 'name', width: '100' },
@@ -395,7 +421,7 @@ const limit = ref(10)
 const type = ref('')
 const searchInfo = ref('')
 const currentRow = ref({})
-const multipleSelection = ref([])
+// const multipleSelection = ref([])
 
 // 获取列表数据
 const getTableData = async() => {
@@ -407,6 +433,7 @@ const getTableData = async() => {
     if (response.code === 0) {
       total.value = response.data.total
       tableData.splice(0, tableData.length, ...response.data.rows)
+      setCurrent(tableData[0])
     }
   } catch (e) {
     console.log(e)
@@ -497,8 +524,8 @@ const handleDelete = () => {
       })
     })
 }
-
 // 分页
+// #region
 const handleSizeChange = () => {
   switch (params.type) {
     case 'getTableData':
@@ -523,9 +550,9 @@ const handleCurrentChange = () => {
       break
   }
 }
-// endregion
+// #endregion
 
-// region 详情界面
+// 详情界面
 const detailData = reactive({
   UniqId: '',
   selectIndex: 0,
@@ -539,11 +566,16 @@ const detailData = reactive({
   table: [],
 })
 const selectData = reactive([])
+const table = ref()
 
 // 弹窗控制标记
 const dialogFormVisible = ref(false)
 const dialogSelectVisible = ref(false)
 
+const setCurrent = (row) => {
+  table.value?.setCurrentRow(row)
+}
+
 // 获取详细信息
 const getTableInfo = async(id) => {
   try {
@@ -571,6 +603,12 @@ const getTableInfo = async(id) => {
         // .filter(item => item.sczl_gdbh !== '') // 过滤掉空的工单编号
       detailData.UniqId = id
       dialogFormVisible.value = true
+
+      // 在 setTimeout 中获取元素,确保在 DOM 渲染完毕后执行
+      setTimeout(() => {
+        formElements = document.getElementById('detail-form').elements
+        formElements[0].focus()
+      }, 0)
     }
   } catch (e) {
     console.log(e)
@@ -634,9 +672,12 @@ const updateDetailData = async() => {
 }
 
 // 新增数据
-const handleShowAdd = () => {
+const handleShowAdd = async() => {
   type.value = '新增'
-  getTableInfo(currentRow.value?.UniqId)
+  await getTableInfo(currentRow.value?.UniqId)
+  // 默认日期为前一天的日期
+  const date = dayjs().subtract(1, 'day').format('YYYY-MM-DD')
+  detailData.sczl_rq = date
 }
 const addDetailData = async() => {
   const restoredData = {
@@ -679,6 +720,8 @@ const handleGetYg = async() => {
     const res = await getYg({ sczl_bh: detailData.sczl_bh })
     if (res.code === 0) {
       detailData.name = res.data.ygxm
+    } else {
+      detailData.name = ''
     }
   } catch (e) {
     console.log(e)
@@ -715,23 +758,81 @@ const enterDialog = () => {
   }
 }
 
-// 导出excel
-function handleExportExcel() {
-  console.log('导出到excel')
-}
+let formElements
+const moveFocus = (event) => {
+  const index = Array.from(formElements).indexOf(event.target)
+  const key = event.key
+  event.preventDefault()
+  switch (index) {
+    case 0:
+      if (key === 'ArrowDown') {
+        formElements[1].focus()
+      } else if (key === 'ArrowUp') {
+        formElements[formElements.length - 1].focus()
+      } else if (key === 'Enter') {
+        formElements[1].focus()
+      }
+      break
+
+    case 1:
+      if (key === 'ArrowDown') {
+        formElements[3].focus()
+        handleGetYg()
+      } else if (key === 'ArrowUp') {
+        formElements[0].focus()
+        handleGetYg()
+      } else if (key === 'Enter') {
+        formElements[3].focus()
+        handleGetYg()
+      }
+      break
 
-// 生命周期钩子
+    case 3:
+      if (key === 'ArrowDown') {
+        formElements[4].focus()
+      } else if (key === 'ArrowUp') {
+        formElements[1].focus()
+      } else if (key === 'Enter') {
+        formElements[4].focus()
+      }
+      break
+
+    case formElements.length - 1 :
+      if (key === 'ArrowDown') {
+        formElements[0].focus()
+      } else if (key === 'ArrowUp') {
+        formElements[index - 1].focus()
+      } else if (key === 'Enter') {
+        formElements[0].focus()
+      }
+      break
 
+    default:
+      if (key === 'ArrowDown') {
+        formElements[index + 1].focus()
+      } else if (key === 'ArrowUp') {
+        formElements[index - 1].focus()
+      } else if (key === 'Enter') {
+        formElements[index + 1].focus()
+      }
+      break
+  }
+}
 </script>
 
 <style scoped>
+:deep(.plan-usage-low div) {
+  color: red !important;
+}
+
 .JKWTree-container {
   display: flex;
 }
 
 .JKWTree-tree {
-  width: 300px;
+  width: 100%;
   background-color: #fff;
+  /*background-color: rgba(241, 224, 224, 0.99);*/
   padding: 10px;
   margin-right: 20px;
 }
@@ -746,12 +847,49 @@ function handleExportExcel() {
   flex: 1;
 }
 
+:deep(.el-table__body .warning-row) {
+  background: #FFFF80 !important;
+}
+
 /* 选中某行时的背景色 */
 :deep(.el-table__body tr.current-row) > td {
   background: #ff80ff !important;
 }
 
+:deep(.el-table .bg-yellow) {
+  background: yellow;
+}
+
+</style>
+<style scoped>
 :deep(.el-table td .cell) {
-  line-height: 30px !important;
+  line-height: 25px !important;
+}
+
+:deep(.el-tabs__header) {
+  margin-bottom: 0;
+}
+
+.search {
+  margin-left: 0px !important;
+  margin-right: 10px !important;
+}
+
+.bt {
+  margin-left: 2px !important;
+  padding: 3px !important;
+  font-size: 12px;
+}
+
+.el-tabs__header {
+  margin: 0px !important;
+}
+
+.gva-table-box {
+  padding: 0px !important;
+}
+
+.mab {
+  margin-bottom: 5px;
 }
 </style>

+ 413 - 238
src/view/performance/07-otherDocuments/index.vue

@@ -1,105 +1,45 @@
 <template>
   <div>
-    <el-container>
-      <!-- 左侧树形结构 -->
-      <el-scrollbar max-height="75vh">
-        <el-aside>
-          <div class="JKWTree-tree">
-            <h3>其他计件单据维护</h3>
-            <el-tree
-              :data="treeData"
-              highlight-current
-              @node-click="handleNodeClick"
+    <layout>
+      <layout-header>
+        <!-- 按钮 -->
+        <el-form inline>
+          <el-form-item>
+            <el-input
+              v-model="searchInfo"
+              placeholder="搜索产品编号或产品名称"
+              clearable
+              style="width: 180px;"
+            />
+            <el-button
+              type="primary"
+              icon="Search"
+              class="search"
+              @click="handleSearch"
             />
-          </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="输入工单编号"
-                  style="width: 200px"
-                />
-              </el-row>
-              <el-button
-                type="primary"
-                :icon="Search"
-                @click="onSearch"
-              >定位</el-button>
-
-              <el-button
-                type="primary"
-                :icon="Search"
-                @click="handleShowDetail"
-              >查改</el-button>
-
-              <el-button
-                type="primary"
-                :icon="Search"
-                @click="handleShowAdd"
-              >新增</el-button>
-
-              <div style="margin-left: auto;">
-                <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
-              border
-              show-overflow-tooltip="true"
-              :row-style="{ height: '20px' }"
-              :cell-style="{ padding: '0px' }"
-              :header-row-style="{ height: '20px' }"
-              :header-cell-style="{ padding: '0px' }"
-              @selection-change="handleSelectionChange"
-              @row-click="currentRow = $event"
-              @row-dblclick="handleShowDetail"
-            >
-              <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"
-              />
 
-            </el-table>
-            <!-- 分页 -->
-            <div class="gva-pagination">
-              <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-button
+              type="primary"
+              icon="edit"
+              class="bt"
+              @click="handleShowDetail"
+            ><i class="el-icon-edit" />查改
+            </el-button>
+
+            <el-button
+              type="primary"
+              icon="edit"
+              class="bt"
+              @click="handleShowAdd"
+            >新增
+            </el-button>
+
+          </el-form-item>
+        </el-form>
+
+        <!-- 弹出框 -->
+        <div>
+          <!-- 详情页 -->
           <el-dialog
             v-model="dialogFormVisible"
             :before-close="closeDialog"
@@ -109,11 +49,12 @@
           >
             <!-- <el-scrollbar height="500px"> -->
             <el-form
+              id="detail-form"
               ref="elFormRef"
               :model="detailData"
-              :rules="rule"
               label-position="left"
               inline
+              @keyup="moveFocus"
             >
               <el-form-item
                 label="员工编号"
@@ -135,10 +76,29 @@
               <el-form-item
                 label="工序类别"
               >
-                <el-input
+                <el-select
                   v-model="detailData.sczl_Type"
                   style="width: 150px"
-                />
+                >
+                  <el-option
+                    label="拆片"
+                    value="拆片"
+                  />
+                  <el-option
+                    label="包装"
+                    value="包装"
+                  />
+                  <el-option
+                    label="打包"
+                    value="打包"
+                  />
+                  <el-option
+                    label="拉料"
+                    value="拉料"
+                  />
+
+                </el-select>
+
               </el-form-item>
 
               <el-form-item
@@ -169,18 +129,56 @@
                 label="工艺流程"
               >
                 <el-input
-                  v-model="detailData.image"
+                  v-model="detailData.jyGx"
                   style="width: 300px"
+                  @keyup.enter="handleGylcEnter"
                 />
                 <el-input
-                  v-model="detailData.image"
+                  v-model="detailData.sczl_gxh"
                   style="width: 100px; margin-left: 5px"
+                  readonly
                 />
               </el-form-item>
+              <br>
 
               <el-form-item
+                v-if="type === '新增'"
+                label=""
+                style="margin-left: 67px;"
+              >
+                <el-input
+                  v-model="leftData"
+                  style="width: 100px"
+                />
+              </el-form-item>
+
+              <el-form-item
+                v-if="type === '新增'"
+                label="X"
+              >
+                <el-input
+                  v-model="rightData"
+                  style="width: 100px;margin-left: 12px;"
+                  @keyup.enter="()=>{detailData.Sczl_cl = (leftData * rightData).toString()}"
+                  @keyup.down="()=>{detailData.Sczl_cl = (leftData * rightData).toString()}"
+                />
+              </el-form-item>
+
+              <el-form-item
+                v-if="type === '新增'"
                 label="计件产量"
-                style="margin-left: 300px"
+                style="margin-left: 30px;"
+              >
+                <el-input
+                  v-model="detailData.Sczl_cl"
+                  style="width: 100px"
+                />
+              </el-form-item>
+
+              <el-form-item
+                v-if="type === '查改'"
+                label="计件产量"
+                style="margin-left: 400px;"
               >
                 <el-input
                   v-model="detailData.Sczl_cl"
@@ -225,29 +223,128 @@
             </template>
           </el-dialog>
 
-        </el-main>
-      </el-container>
-    </el-container>
+          <!-- 工价代号弹窗 -->
+          <el-dialog
+            v-model="dialogDedh"
+            :before-close="()=>{dialogDedh = false}"
+            title="工价代号"
+            destroy-on-close
+          >
+
+            <el-scrollbar
+              style="height: 50vh;width: 50vw;"
+            >
+              <el-tree
+                :data="dedhTreeData"
+                highlight-current
+                style="width: 90%;"
+                @node-click="handleSelectDjdh"
+              />
+            </el-scrollbar>
+          </el-dialog>
+
+          <!-- 工艺流程弹窗 -->
+          <el-dialog
+            v-model="dialogGylc"
+            :before-close="()=>{dialogGylc = false}"
+            title="工艺流程"
+            destroy-on-close
+          >
+
+            <el-scrollbar
+              style="height: 50vh;width: 50vw;"
+            >
+              <el-tree
+                :data="gylcTreeData"
+                highlight-current
+                style="width: 90%;"
+                @node-click="handleSelectGylc"
+              />
+            </el-scrollbar>
+          </el-dialog>
+
+        </div>
+
+      </layout-header>
+
+      <layout>
+        <!--    左侧树侧形结构-->
+        <layout-sider
+          :resize-directions="['right']"
+          :width="220"
+          style="margin-right: 10px;"
+        >
+          <div
+            class="JKWTree-tree"
+            style="height: 70vh;"
+          >
+            <h3>其他计件单据维护</h3>
+            <el-tree
+              :data="treeData"
+              highlight-current
+              @node-click="handleNodeClick"
+            />
+          </div>
+        </layout-sider>
+
+        <layout-content>
+          <!-- 数据展示 -->
+          <el-table
+            ref="table"
+            style="width: 100%"
+            tooltip-effect="dark"
+            :data="tableData"
+            row-key="ID"
+            highlight-current-row
+            border
+            show-overflow-tooltip="true"
+            :row-style="{ height: '20px' }"
+            :cell-style="{ padding: '0px' }"
+            :header-row-style="{ height: '20px' }"
+            :header-cell-style="{ padding: '0px' }"
+            @selection-change="handleSelectionChange"
+            @row-dblclick="handleShowDetail"
+            @current-change="(row, oldRow) => { currentRow = row}"
+          >
+            <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"
+            />
+
+          </el-table>
+          <!-- 分页 -->
+          <div class="gva-pagination">
+            <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>
+        </layout-content>
+      </layout>
+    </layout>
 
   </div>
 </template>
 
 <script setup>
-import {
-  createCompany,
-  deleteCompany,
-  deleteCompanyByIds,
-  updateCompany,
-  findCompany,
-  getCompanyList
-} from '@/api/company'
-
-// 全量引入格式化工具 请按需保留
-import { getDictFunc, formatDate, formatBoolean, filterDict, ReturnArrImg, onDownloadFile } from '@/utils/format'
-import { ElMessage, ElMessageBox } from 'element-plus'
-import { Search, Refresh, Download } from '@element-plus/icons-vue'
-import { ref, reactive, onMounted, onBeforeMount } from 'vue'
-import { getSide, getTable, getInfo, getOtherInfo, updateData,add } from '@/api/mes_api_gty/otherDocuments'
+import { Layout, LayoutContent, LayoutHeader, LayoutSider } from '@arco-design/web-vue'
+import { ElMessage, dayjs } from 'element-plus'
+import { ref, reactive } from 'vue'
+import { getSide, getTable, getYg, getGdmc, getDedh, getGxMc, updateData, add } from '@/api/mes_api_gty/otherDocuments'
 
 defineOptions({
   name: '07OtherDocuments'
@@ -274,7 +371,6 @@ const getSideData = async() => {
 getSideData()
 
 const elFormRef = ref()
-const elSearchFormRef = ref()
 
 // ============== 表格页面 ==============
 const tableColumns = [
@@ -286,7 +382,7 @@ const tableColumns = [
   { prop: 'Gd_cpmc', label: '产品名称', width: '300' },
   { prop: 'Sczl_cl', label: '产量', width: '100' },
   { prop: '', label: '千件工价', width: '100' }, // prop 属性值需要补充
-  { prop: '', label: '工价备注', width: '200' }, // prop 属性值需要补充
+  { prop: 'sys_mc', label: '工价备注', width: '200' }, // prop 属性值需要补充
   { prop: 'Sczl_desc', label: '备注', width: '100' },
   { prop: 'Sczl_gxmc', label: '工序名称', width: '100' },
   { prop: 'sczl_yjno', label: '印件号', width: '100' },
@@ -297,7 +393,7 @@ const tableColumns = [
   { prop: 'UniqId', label: 'UNIQID', width: '100' }
 ]
 const tableData = reactive([])
-const currentRow = ref({})
+const currentRow = ref()
 const type = ref('')
 
 const page = ref(1)
@@ -312,6 +408,11 @@ const params = {
   limit: limit.value.toString(),
 }
 
+const table = ref()
+const setCurrent = (row) => {
+  table.value?.setCurrentRow(row)
+}
+
 // 获取表格数据
 const getTableData = async() => {
   try {
@@ -319,6 +420,7 @@ const getTableData = async() => {
     if (response.code === 0) {
       total.value = response.data.total
       tableData.splice(0, tableData.length, ...response.data.rows)
+      setCurrent(tableData[0])
     }
   } catch (e) {
     console.log(e)
@@ -349,7 +451,7 @@ const handleNodeClick = (node, check) => {
 }
 
 // 搜索
-function onSearch() {
+function handleSearch() {
   params.order = searchInfo.value
   params.date = ''
   params.Sczl_bh1 = ''
@@ -359,56 +461,121 @@ function onSearch() {
 
 // ============== 详情页面 ==============
 const detailData = reactive({})
+const leftData = ref(0)
+const rightData = ref(0)
+const dedhTreeData = ref()
+const gylcTreeData = ref()
 
 // 弹窗控制标记
 const dialogFormVisible = ref(false)
+const dialogDedh = ref(false)
+const dialogGylc = ref(false)
 // 新增数据
 const handleShowAdd = () => {
-    type.value = '新增'
-	Object.assign(detailData, currentRow.value)
-	dialogFormVisible.value = true
+  if (!currentRow.value) {
+    ElMessage({
+      type: 'info',
+      message: '请选择一条数据'
+    })
+    return
+  }
+  type.value = '新增'
+  Object.assign(detailData, currentRow.value)
+  // dialogFormVisible.value = true
+  const date = dayjs().format('YYYY-MM-DD')
+  detailData.Sczl_rq = date
+  showDialog()
 }
 // 查改
 const handleShowDetail = () => {
   type.value = '查改'
   Object.assign(detailData, currentRow.value)
-  console.log(detailData)
-  console.log(currentRow.value)
-  dialogFormVisible.value = true
+  // dialogFormVisible.value = true
+  showDialog()
 }
 const handleYgbhEnter = async() => {
-  const res = await getOtherInfo({ Sczl_bh1: detailData.Sczl_bh1 })
+  const res = await getYg({ sczl_bh: detailData.Sczl_bh1 })
   if (res.code === 0) {
-    detailData.name = res.data.name
+    detailData.name = res.data.ygxm
   }
 }
 
 const handleGdbhEnter = async() => {
-  const res = await getOtherInfo({ Sczl_gdbh: detailData.sczl_gdbh })
+  const res = await getGdmc({ gdbh: detailData.sczl_gdbh })
   if (res.code === 0) {
-    detailData.Gd_cpmc = res.data.name
+    detailData.Gd_cpmc = res.data.Gd_cpmc
   }
 }
 
+const handleGylcEnter = async() => {
+  const res = await getGxMc({ gdbh: detailData.sczl_gdbh, keyword: '' })
+  if (res.code === 0) {
+    const ret = res.data.map(item => ({
+      ...item,
+      label: item['jyGx'],
+    }))
+    gylcTreeData.value = ret
+    dialogGylc.value = true
+  }
+}
+
+const handleSelectGylc = (node, check) => {
+  detailData.jyGx = node['jyGx']
+  detailData.sczl_gxh = node['Gy0_gxh']
+  dialogGylc.value = false
+}
+
 const handleGjdhEnter = async() => {
-  const res = await getOtherInfo({ Sczl_dedh: detailData.Sczl_dedh })
+  const res = await getDedh({ sczl_jtbh: '' })
   if (res.code === 0) {
-    detailData.aaaa = res.data.name
+    const { data } = res
+
+    const transformData = (data) => {
+      if (Array.isArray(data)) {
+        return data.map((item) => transformData(item))
+      } else if (typeof data === 'object') {
+        const { Key_, sys_bh, sys_mc, bh_mc } = data
+        const label = `${sys_bh}【${sys_mc}】`
+        const node = { Key_, sys_bh, sys_mc, label }
+
+        if (bh_mc) {
+          node.children = transformData(bh_mc)
+        }
+
+        return node
+      } else {
+        return data
+      }
+    }
+
+    const temp = []
+    temp[0] = transformData(data)
+    dedhTreeData.value = temp
+    console.log(temp)
+    dialogDedh.value = true
+  }
+}
+
+const handleSelectDjdh = (node, check) => {
+  if (!node['children']) {
+    console.log(node)
+    const { sys_bh, sys_mc } = node
+    detailData.sys_bh = sys_bh
+    detailData.sys_mc = sys_mc
+    dialogDedh.value = false
   }
 }
 
 // 弹窗确定
 const enterDialog = async() => {
-	
-	if (type.value === '查改') {
-	  updateDetailData()
-	} else if (type.value === '新增') {
-	  addDetailData()
-	}
-}
-//新增
+  if (type.value === '查改') {
+    updateDetailData()
+  } else if (type.value === '新增') {
+    addDetailData()
+  }
+}
+// 新增
 const addDetailData = async() => {
-	
   const restoredData = {
     Sys_id: '[1009/李美芬]',
     Sczl_bh1: detailData.Sczl_bh1,
@@ -418,9 +585,9 @@ const addDetailData = async() => {
     Sczl_gdbh: detailData.sczl_gdbh,
     Sczl_gxmc: detailData.Sczl_gxmc,
     sczl_gxh: detailData.sczl_gxh,
-	Sczl_cl: detailData.Sczl_cl,
-	Sczl_dedh: detailData.sys_bh,
-	Sczl_desc: detailData.Sczl_desc,
+    Sczl_cl: detailData.Sczl_cl,
+    Sczl_dedh: detailData.sys_bh,
+    Sczl_desc: detailData.Sczl_desc,
   }
   console.log(restoredData)
   const res = await add(restoredData)
@@ -433,112 +600,87 @@ const addDetailData = async() => {
     })
     dialogFormVisible.value = false
   }
+  getSideData()
 }
-//修改
+// 修改
 const updateDetailData = 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,
-	}
-	const res = await updateData(params)
-	if (res.code === 0) {
-	  ElMessage({
-	    type: 'success',
-	    message: '更新成功',
-	  })
-	  dialogFormVisible.value = false
-	  params.order = ''
-	  // page.value = 1
-	  handleCurrentChange()
-	}
-}
-// 获取需要的字典 可能为空 按需保留
-const setOptions = async() => {
-}
-
-// 获取需要的字典 可能为空 按需保留
-setOptions()
-
-// 多选数据
-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
+  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,
   }
-  multipleSelection.value &&
-    multipleSelection.value.map(item => {
-      ids.push(item.ID)
-    })
-  const res = await deleteCompanyByIds({ ids })
+  const res = await updateData(params)
   if (res.code === 0) {
     ElMessage({
       type: 'success',
-      message: '删除成功'
+      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) {
-    detailData.value = res.data.recompany
-    dialogFormVisible.value = true
+    dialogFormVisible.value = false
+    params.order = ''
+    // page.value = 1
+    handleCurrentChange()
   }
 }
 
-// 打开弹窗
-const openDialog = () => {
-  type.value = 'create'
+// 开启弹窗
+const showDialog = () => {
   dialogFormVisible.value = true
+  // 在 setTimeout 中获取元素,确保在 DOM 渲染完毕后执行
+  setTimeout(() => {
+    formElements = document.getElementById('detail-form').elements
+    formElements[0].focus()
+  }, 0)
 }
 
 // 关闭弹窗
 const closeDialog = () => {
   dialogFormVisible.value = false
-  detailData.value = {
-    address: '',
-    image: '',
-    name: '',
-  }
 }
 
-// 导出excel
-function exportExcel() {
-  console.log('导出到excel')
+let formElements
+const moveFocus = (event) => {
+  const index = Array.from(formElements).indexOf(event.target)
+  const key = event.key
+  event.preventDefault()
+  switch (index) {
+    case 0:
+      if (key === 'ArrowDown') {
+        formElements[1].focus()
+      } else if (key === 'ArrowUp') {
+        formElements[formElements.length - 1].focus()
+      } else if (key === 'Enter') {
+        formElements[1].focus()
+      }
+      break
+
+    case formElements.length - 1 :
+      if (key === 'ArrowDown') {
+        formElements[0].focus()
+      } else if (key === 'ArrowUp') {
+        formElements[index - 1].focus()
+      } else if (key === 'Enter') {
+        formElements[0].focus()
+      }
+      break
+
+    default:
+      if (key === 'ArrowDown') {
+        formElements[index + 1].focus()
+      } else if (key === 'ArrowUp') {
+        formElements[index - 1].focus()
+      } else if (key === 'Enter') {
+        formElements[index + 1].focus()
+      }
+      break
+  }
 }
-
-// 生命周期钩子
-onMounted(() => {
-})
 </script>
 
 <style scoped>
@@ -547,7 +689,7 @@ onMounted(() => {
 }
 
 .JKWTree-tree {
-  width: 300px;
+  width: 100%;
   background-color: #fff;
   padding: 10px;
   margin-right: 20px;
@@ -568,3 +710,36 @@ onMounted(() => {
   background: #ff80ff !important;
 }
 </style>
+
+<style scoped>
+:deep(.el-table td .cell) {
+  line-height: 25px !important;
+}
+
+:deep(.el-tabs__header) {
+  margin-bottom: 0;
+}
+
+.search {
+  margin-left: 0px !important;
+  margin-right: 10px !important;
+}
+
+.bt {
+  margin-left: 2px !important;
+  padding: 3px !important;
+  font-size: 12px;
+}
+
+.el-tabs__header {
+  margin: 0px !important;
+}
+
+.gva-table-box {
+  padding: 0px !important;
+}
+
+.mab {
+  margin-bottom: 5px;
+}
+</style>

+ 213 - 240
src/view/performance/08-timesheet/index.vue

@@ -1,100 +1,45 @@
 <template>
   <div>
-    <el-container>
 
-      <!-- 左侧树形结构 -->
-      <el-scrollbar max-height="75vh">
-        <el-aside>
-          <div class="JKWTree-tree">
-            <h3>计件工计时单维护</h3>
-            <el-tree
-              :data="treeData"
-              :props="defaultProps"
-              highlight-current="true"
-              @node-click="handleNodeClick"
+    <layout>
+      <layout-header>
+        <!-- 按钮 -->
+        <el-form inline>
+          <el-form-item>
+            <el-input
+              v-model="searchInfo"
+              placeholder="搜索产品编号或产品名称"
+              clearable
+              style="width: 180px;"
             />
-          </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-row>
-              <el-button
-                type="primary"
-                :icon="Search"
-                @click="onSearch"
-              >搜索</el-button>
-			  <el-button
-			    type="primary"
-			    :icon="Search"
-			    @click="handleShowAdd"
-			  >新增</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>
-              </div>
-            </div>
-            <!-- 数据展示 -->
-            <el-table
-              ref="multipleTable"
-              style="width: 100%"
-              tooltip-effect="dark"
-              :data="tableData"
-              row-key="ID"
-              highlight-current-row
-              border
-              show-overflow-tooltip="true"
-              :row-style="{ height: '20px' }"
-              :cell-style="{ padding: '0px' }"
-              :header-row-style="{ height: '20px' }"
-              :header-cell-style="{ padding: '0px' }"
-              @selection-change="handleSelectionChange"
-              @row-dblclick="doubleClick"
-			  @row-click="Click"
-            >
-              <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"
-              />
-
-            </el-table>
-            <!-- 分页 -->
-            <div class="gva-pagination">
-              <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-button
+              type="primary"
+              icon="Search"
+              class="search"
+              @click="handleSearch"
+            />
+
+            <el-button
+              type="primary"
+              icon="edit"
+              class="bt"
+              @click="handleShowDetail"
+            ><i class="el-icon-edit" />查改
+            </el-button>
+
+            <el-button
+              type="primary"
+              icon="edit"
+              class="bt"
+              @click="handleShowAdd"
+            >新增
+            </el-button>
+
+          </el-form-item>
+        </el-form>
+
+        <!-- 弹出框 -->
+        <div>
           <!-- 弹出框 -->
           <el-dialog
             v-model="dialogFormVisible"
@@ -379,29 +324,90 @@
             </template>
           </el-dialog>
 
-        </el-main>
-      </el-container>
-    </el-container>
+        </div>
+
+      </layout-header>
+
+      <layout>
+        <!--    左侧树侧形结构-->
+        <layout-sider
+          :resize-directions="['right']"
+          :width="220"
+          style="margin-right: 10px;"
+        >
+          <div
+            class="JKWTree-tree"
+            style="height: 70vh;"
+          >
+            <h3>计件工计时单维护</h3>
+            <el-tree
+              :data="treeData"
+              highlight-current="true"
+              @node-click="handleNodeClick"
+            />
+          </div>
+
+        </layout-sider>
+
+        <layout-content>
+          <!-- 数据展示 -->
+          <el-table
+            ref="multipleTable"
+            style="width: 100%"
+            tooltip-effect="dark"
+            :data="tableData"
+            row-key="ID"
+            highlight-current-row
+            border
+            show-overflow-tooltip="true"
+            :row-style="{ height: '20px' }"
+            :cell-style="{ padding: '0px' }"
+            :header-row-style="{ height: '20px' }"
+            :header-cell-style="{ padding: '0px' }"
+            @selection-change="handleSelectionChange"
+            @row-dblclick="doubleClick"
+            @row-click="Click"
+          >
+            <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"
+            />
+
+          </el-table>
+          <!-- 分页 -->
+          <div class="gva-pagination">
+            <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>
+
+        </layout-content>
+      </layout>
+    </layout>
 
   </div>
 </template>
 
 <script setup>
-import {
-  createCompany,
-  deleteCompany,
-  deleteCompanyByIds,
-  updateCompany,
-  findCompany,
-  getCompanyList
-} from '@/api/company'
-
 // 全量引入格式化工具 请按需保留
-import { getDictFunc, formatDate, formatBoolean, filterDict, ReturnArrImg, onDownloadFile } from '@/utils/format'
-import { ElMessage, ElMessageBox } from 'element-plus'
-import { Search, Refresh, Download } from '@element-plus/icons-vue'
-import { ref, reactive, onMounted, onBeforeMount } from 'vue'
-import { getSide, getTable, getDetail, updateData, getLocate ,createData} from '@/api/mes_api_gty/timesheet'
+import { Layout, LayoutContent, LayoutHeader, LayoutSider } from '@arco-design/web-vue'
+import { ElMessage } from 'element-plus'
+import { ref, reactive } from 'vue'
+import { getSide, getTable, getDetail, updateData, getLocate, createData } from '@/api/mes_api_gty/timesheet'
 
 defineOptions({
   name: '08Timesheet'
@@ -428,7 +434,7 @@ const rule = reactive({
 })
 
 const elFormRef = ref()
-const elSearchFormRef = ref()
+// const elSearchFormRef = ref()
 
 // ============== 表格页面 ==============
 const tableColumns = [
@@ -530,16 +536,16 @@ const handleNodeClick = (node, check) => {
   }
 }
 // 新增数据
-const handleShowAdd = async () => {
-  const res = await getDetail({ wgjs_rq: value1.value, wgjs_bh1: value2.value });
+const handleShowAdd = async() => {
+  const res = await getDetail({ wgjs_rq: value1.value, wgjs_bh1: value2.value })
   if (res.code === 0) {
-	type.value='add'
-    Object.assign(detailData, res.data);
-	dialogFormVisible.value = true
+    type.value = 'add'
+    Object.assign(detailData, res.data)
+    dialogFormVisible.value = true
   }
-};
+}
 // 搜索
-function onSearch() {
+function handleSearch() {
   params.search = searchInfo.value
   params.type = 'getLocateData'
   page.value = 1
@@ -564,13 +570,13 @@ async function doubleClick(row, column, event) {
     dialogFormVisible.value = true
   }
 }
-const value1=ref()
-const value2=ref()
+const value1 = ref()
+const value2 = ref()
 // 单击表格操作
 async function Click(row, column, event) {
   const { wgjs_rq, wgjs_bh1 } = row
-  value1.value=wgjs_rq
-  value2.value=wgjs_bh1
+  value1.value = wgjs_rq
+  value2.value = wgjs_bh1
   // console.log(wgjs_rq)
   // console.log(wgjs_bh1)
   // const res = await getDetail({ wgjs_rq, wgjs_bh1 })
@@ -581,48 +587,45 @@ async function Click(row, column, event) {
 }
 // 更新数据
 const enterDialog = async() => {
-	
-	if (type.value === 'update') {
-	  updateDetailData()
-	} else if (type.value === 'add') {
-	  addDetailData()
-	}
-	
-  
+  if (type.value === 'update') {
+    updateDetailData()
+  } else if (type.value === 'add') {
+    addDetailData()
+  }
 }
-//新增
+// 新增
 const addDetailData = async() => {
   const restoredData = {
     wgjs_rq: detailData.wgjs_rq,
-	wgjs_bh1:detailData.wgjs_bh1,
-	wgjs_js1:detailData.wgjs_js1,
-	wgjs_yy1:detailData.wgjs_yy1,
-	wgjs_冲定额1:detailData.wgjs_冲定额1,
-	
-	wgjs_bh2:detailData.wgjs_bh2,
-	wgjs_js2:detailData.wgjs_js2,
-	wgjs_yy2:detailData.wgjs_yy2,
-	wgjs_冲定额2:detailData.wgjs_冲定额2,
-	
-	wgjs_bh3:detailData.wgjs_bh3,
-	wgjs_js3:detailData.wgjs_js3,
-	wgjs_yy3:detailData.wgjs_yy3,
-	wgjs_冲定额3:detailData.wgjs_冲定额3,
-	
-	wgjs_bh4:detailData.wgjs_bh4,
-	wgjs_js4:detailData.wgjs_js4,
-	wgjs_yy4:detailData.wgjs_yy4,
-	wgjs_冲定额4:detailData.wgjs_冲定额4,
-	
-	wgjs_bh5:detailData.wgjs_bh5,
-	wgjs_js5:detailData.wgjs_js5,
-	wgjs_yy5:detailData.wgjs_yy5,
-	wgjs_冲定额5:detailData.wgjs_冲定额5,
-	
-	wgjs_bh6:detailData.wgjs_bh6,
-	wgjs_js6:detailData.wgjs_js6,
-	wgjs_yy6:detailData.wgjs_yy6,
-	wgjs_冲定额6:detailData.wgjs_冲定额6,
+    wgjs_bh1: detailData.wgjs_bh1,
+    wgjs_js1: detailData.wgjs_js1,
+    wgjs_yy1: detailData.wgjs_yy1,
+    wgjs_冲定额1: detailData.wgjs_冲定额1,
+
+    wgjs_bh2: detailData.wgjs_bh2,
+    wgjs_js2: detailData.wgjs_js2,
+    wgjs_yy2: detailData.wgjs_yy2,
+    wgjs_冲定额2: detailData.wgjs_冲定额2,
+
+    wgjs_bh3: detailData.wgjs_bh3,
+    wgjs_js3: detailData.wgjs_js3,
+    wgjs_yy3: detailData.wgjs_yy3,
+    wgjs_冲定额3: detailData.wgjs_冲定额3,
+
+    wgjs_bh4: detailData.wgjs_bh4,
+    wgjs_js4: detailData.wgjs_js4,
+    wgjs_yy4: detailData.wgjs_yy4,
+    wgjs_冲定额4: detailData.wgjs_冲定额4,
+
+    wgjs_bh5: detailData.wgjs_bh5,
+    wgjs_js5: detailData.wgjs_js5,
+    wgjs_yy5: detailData.wgjs_yy5,
+    wgjs_冲定额5: detailData.wgjs_冲定额5,
+
+    wgjs_bh6: detailData.wgjs_bh6,
+    wgjs_js6: detailData.wgjs_js6,
+    wgjs_yy6: detailData.wgjs_yy6,
+    wgjs_冲定额6: detailData.wgjs_冲定额6,
   }
   console.log(restoredData)
   const res = await createData(restoredData)
@@ -636,83 +639,28 @@ const addDetailData = async() => {
     dialogFormVisible.value = false
   }
 }
-//修改
+// 修改
 const updateDetailData = async() => {
-	const obj = detailData
-	for (let i = 1; i <= 6; i++) {
-	  delete obj[`name${i}`]
-	}
-	const res = await updateData(obj)
-	if (res.code === 0) {
-	  ElMessage({
-	    type: 'success',
-	    message: '更新成功'
-	  })
-	  params.type = 'getTableData'
-	  // page.value = 1
-	  handleCurrentChange()
-	  // if(response.code==0){
-	  // 		 ElMessage({
-	  // 		   type: 'success',
-	  // 		   message: '更新成功',
-	  // 		 })
-	  // }
-	  dialogFormVisible.value = false
-	}
-}
-
-// 获取需要的字典 可能为空 按需保留
-const setOptions = async() => {
-}
-
-// 获取需要的字典 可能为空 按需保留
-setOptions()
-
-// 多选数据
-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
+  const obj = detailData
+  for (let i = 1; i <= 6; i++) {
+    delete obj[`name${i}`]
   }
-  multipleSelection.value &&
-    multipleSelection.value.map(item => {
-      ids.push(item.ID)
-    })
-  const res = await deleteCompanyByIds({ ids })
+  const res = await updateData(obj)
   if (res.code === 0) {
     ElMessage({
       type: 'success',
-      message: '删除成功'
+      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) {
-    detailData.value = res.data.recompany
-    dialogFormVisible.value = true
+    params.type = 'getTableData'
+    // page.value = 1
+    handleCurrentChange()
+    // if(response.code==0){
+    // 		 ElMessage({
+    // 		   type: 'success',
+    // 		   message: '更新成功',
+    // 		 })
+    // }
+    dialogFormVisible.value = false
   }
 }
 
@@ -721,14 +669,6 @@ const closeDialog = () => {
   dialogFormVisible.value = false
 }
 
-// 导出excel
-function exportExcel() {
-  console.log('导出到excel')
-}
-
-// 生命周期钩子
-onMounted(() => {
-})
 </script>
 
 <style scoped>
@@ -737,7 +677,7 @@ onMounted(() => {
 }
 
 .JKWTree-tree {
-  width: 300px;
+  width: 100%;
   background-color: #fff;
   padding: 10px;
   margin-right: 20px;
@@ -758,3 +698,36 @@ onMounted(() => {
   background: #ff80ff !important;
 }
 </style>
+
+<style scoped>
+:deep(.el-table td .cell) {
+  line-height: 25px !important;
+}
+
+:deep(.el-tabs__header) {
+  margin-bottom: 0;
+}
+
+.search {
+  margin-left: 0px !important;
+  margin-right: 10px !important;
+}
+
+.bt {
+  margin-left: 2px !important;
+  padding: 3px !important;
+  font-size: 12px;
+}
+
+.el-tabs__header {
+  margin: 0px !important;
+}
+
+.gva-table-box {
+  padding: 0px !important;
+}
+
+.mab {
+  margin-bottom: 5px;
+}
+</style>

+ 51 - 51
src/view/performance/12-orderAccounting/index.vue

@@ -73,51 +73,52 @@
             </el-form-item>
           </el-form>
 
-          <!--按钮弹窗部分-->
-
-          <!-- 查改 -->
-          <Detail
-            v-if="dialogDetail"
-            v-model="dialogDetail"
-            :gdbh="gdbh"
-          />
-
-          <!-- 工单超节损统计 -->
-          <el-dialog
-            v-model="dialogGdcjstj"
-            title="工单超节损统计"
-            destroy-on-close
-          >
-            <Gdcjstj :gdbh="gdbh" />
-          </el-dialog>
-
-          <!-- 修正工单印件质量考核设置 -->
-          <Khsz
-            v-if="dialogKhsz"
-            v-model="dialogKhsz"
-            :gdbh="gdbh"
-          />
-
-          <!-- 修正工单投料 -->
-          <Xzgdtl
-            v-if="dialogXzgdtl"
-            v-model="dialogXzgdtl"
-            :date="date"
-          />
-
-          <!-- 工序产量核查 -->
-          <Gxclhc
-            v-if="dialogGxclhc"
-            v-model="dialogGxclhc"
-            :gdbh="gdbh"
-          />
-
-          <!-- 工单质检废品统计 -->
-          <Gongdanzhijianfeipintongji
-            v-if="dialogGdzjfptj"
-            v-model="dialogGdzjfptj"
-            :val="gdbh"
-          />
+          <!-- 弹窗 -->
+          <div>
+            <!-- 查改 -->
+            <Detail
+              v-if="dialogDetail"
+              v-model="dialogDetail"
+              :gdbh="gdbh"
+            />
+
+            <!-- 工单超节损统计 -->
+            <el-dialog
+              v-model="dialogGdcjstj"
+              title="工单超节损统计"
+              destroy-on-close
+            >
+              <Gdcjstj :gdbh="gdbh" />
+            </el-dialog>
+
+            <!-- 修正工单印件质量考核设置 -->
+            <Khsz
+              v-if="dialogKhsz"
+              v-model="dialogKhsz"
+              :gdbh="gdbh"
+            />
+
+            <!-- 修正工单投料 -->
+            <Xzgdtl
+              v-if="dialogXzgdtl"
+              v-model="dialogXzgdtl"
+              :date="date"
+            />
+
+            <!-- 工序产量核查 -->
+            <Gxclhc
+              v-if="dialogGxclhc"
+              v-model="dialogGxclhc"
+              :gdbh="gdbh"
+            />
+
+            <!-- 工单质检废品统计 -->
+            <Gongdanzhijianfeipintongji
+              v-if="dialogGdzjfptj"
+              v-model="dialogGdzjfptj"
+              :val="gdbh"
+            />
+          </div>
 
         </div>
       </layout-header>
@@ -131,12 +132,12 @@
         >
           <div
             class="JKWTree-tree"
-            style="height: 200px"
+            style="height: 70vh;"
           >
             <h3> 产品管理</h3>
             <el-tree
               :data="treeData"
-              style="width: 100vw;"
+              highlight-current
               @node-click="handleNodeClick"
             />
           </div>
@@ -159,7 +160,6 @@
               :header-row-style="{ height: '20px' }"
               :header-cell-style="{ padding: '0px' }"
               @row-click="showOrderSuperLossGy"
-              @row-dblclick=""
               @current-change="(row, oldRow) => { currentRow = row}"
             >
               <el-table-column
@@ -211,10 +211,9 @@
   </div>
 </template>
 <script setup>
-// 全量引入格式化工具 请按需保留
 import { Layout, LayoutContent, LayoutHeader, LayoutSider } from '@arco-design/web-vue'
 import { ref, watch } from 'vue'
-import { getOrderGy, getOrderSuperLossGy, getSide, getTable, updateOrderGy } from '@/api/mes_api_gty/orderAccounting'
+import { getOrderSuperLossGy, getSide, getTable } from '@/api/mes_api_gty/orderAccounting'
 import Gdcjstj from '@/view/performance/12-orderAccounting/componets/gdcjstj.vue'
 import Khsz from '@/view/performance/12-orderAccounting/componets/khsz.vue'
 import Xzgdtl from '@/view/performance/12-orderAccounting/componets/xzgdtl.vue'
@@ -347,6 +346,7 @@ const rowClassName = ({ row, rowIndex }) => {
 
 }
 </script>
+
 <style scoped>
 :deep(.plan-usage-low div) {
   color: red !important;
@@ -357,7 +357,7 @@ const rowClassName = ({ row, rowIndex }) => {
 }
 
 .JKWTree-tree {
-  width: 300px;
+  width: 100%;
   background-color: #fff;
   /*background-color: rgba(241, 224, 224, 0.99);*/
   padding: 10px;