Bläddra i källkod

基本资料管理

su 1 år sedan
förälder
incheckning
28cc6a1619

+ 76 - 0
src/api/mes/job.js

@@ -0,0 +1,76 @@
+import service from '@/utils/request'
+
+export const getMachineInfo = (params) => {
+  return service({
+    url: '/mes_server/Machine/getMachineInfo',
+    method: 'get',
+    params
+  })
+}
+export const getDepartment = (data) => {
+  return service({
+    url: '/mes_server/Machine/getDepartment',
+    method: 'get',
+    data
+  })
+}
+
+export const getProcessLoss = (params) => {
+  return service({
+    url: '/mes_server/Process/getProcessLoss',
+    method: 'get',
+    params
+  })
+}
+export const getProcess = (data) => {
+  return service({
+    url: '/mes_server/Process/getProcess',
+    method: 'get',
+    data
+  })
+}
+
+export const getOnePieceWork = (params) => {
+  return service({
+    url: '/mes_server/piece_work/getOnePieceWork',
+    method: 'get',
+    params
+  })
+}
+export const getPieceWork = (data) => {
+  return service({
+    url: '/mes_server/piece_work/getPieceWork',
+    method: 'get',
+    data
+  })
+}
+
+export const getSpotTab = (data) => {
+  return service({
+    url: '/mes_server/work_order_spot_check/getTab',
+    method: 'get',
+    data
+  })
+}
+export const getSpotList = (params) => {
+  return service({
+    url: '/mes_server/work_order_spot_check/getList',
+    method: 'get',
+    params
+  })
+}
+
+export const getRewardTab = (data) => {
+  return service({
+    url: '/mes_server/large_waste_reward_punish/getTab',
+    method: 'get',
+    data
+  })
+}
+export const getRewardList = (params) => {
+  return service({
+    url: '/mes_server/large_waste_reward_punish/getList',
+    method: 'get',
+    params
+  })
+}

+ 167 - 62
src/view/job/job/job.vue

@@ -1,17 +1,22 @@
 <template>
   <div>
+
     <el-container>
       <el-aside width="200px">
         <div class="JKWTree-tree">
-          <h3>工种定额及比例管理</h3>
+
+          <h3  > 工种定额及比例管理</h3>
           <el-tree :data="treeData" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
         </div>
+
       </el-aside>
       <el-container>
+<!--        <el-header>dd</el-header>-->
         <el-main>
+
           <div class="gva-search-box">
             <el-form ref="elSearchFormRef" :inline="true" :model="searchInfo" class="demo-form-inline" :rules="searchRule" @keyup.enter="onSubmit">
-              <el-form-item label="创建日期" prop="createdAt">
+              <!-- <el-form-item label="创建日期" prop="createdAt">
                 <template #label>
         <span>
           创建日期
@@ -23,7 +28,11 @@
                 <el-date-picker v-model="searchInfo.startCreatedAt" type="datetime" placeholder="开始日期" :disabled-date="time=> searchInfo.endCreatedAt ? time.getTime() > searchInfo.endCreatedAt.getTime() : false"></el-date-picker>
                 <el-date-picker v-model="searchInfo.endCreatedAt" type="datetime" placeholder="结束日期" :disabled-date="time=> searchInfo.startCreatedAt ? time.getTime() < searchInfo.startCreatedAt.getTime() : false"></el-date-picker>
-              </el-form-item>
+              </el-form-item> -->
+			  <el-form-item>
+			    <el-input v-model="searchInfo.search" :clearable="true"  placeholder="输入工单编号或产品名称"/>
+				<div>{{searchInfo.search}}</div>
+			  </el-form-item>
               <el-form-item>
                 <el-button type="primary" icon="search" @click="onSubmit">查询</el-button>
                 <el-button icon="refresh" @click="onReset">重置</el-button>
@@ -32,7 +41,17 @@
           </div>
           <div class="gva-table-box">
             <div class="gva-btn-list">
-			  <el-button type="primary" icon="plus" @click="">导出到excel</el-button>
+              <el-button type="primary" icon="plus" @click="openDialog">新增</el-button>
+              <el-popover v-model:visible="deleteVisible" :disabled="!multipleSelection.length" placement="top" width="160">
+                <p>确定要删除吗?</p>
+                <div style="text-align: right; margin-top: 8px;">
+                  <el-button type="primary" link @click="deleteVisible = false">取消</el-button>
+                  <el-button type="primary" @click="onDelete">确定</el-button>
+                </div>
+                <template #reference>
+                  <el-button icon="delete" style="margin-left: 10px;" :disabled="!multipleSelection.length" @click="deleteVisible = true">删除</el-button>
+                </template>
+              </el-popover>
             </div>
             <el-table
                 ref="multipleTable"
@@ -42,27 +61,37 @@
                 row-key="ID"
                 @selection-change="handleSelectionChange"
             >
-              <el-table-column align="left" label="设备编号" prop="address" width="120" />
-              <el-table-column align="left" label="设备名称" prop="image" width="120" />
-              <el-table-column align="left" label="生产工序" prop="name" width="120" />
-			  <el-table-column align="left" label="日定额" prop="address" width="120" />
-			  <el-table-column align="left" label="千件工价" prop="image" width="120" />
-			  <el-table-column align="left" label="机长" prop="name" width="120" />
-			  <el-table-column align="left" label="副机" prop="address" width="120" />
-			  <el-table-column align="left" label="调墨" prop="image" width="120" />
-			  <el-table-column align="left" label="二手" prop="name" width="120" />
-			  <el-table-column align="left" label="飞达" prop="address" width="120" />
-			  <el-table-column align="left" label="辅助" prop="image" width="120" />
-			  <el-table-column align="left" label="放卷" prop="name" width="120" />
-			  <el-table-column align="left" label="分切1" prop="address" width="120" />
-			  <el-table-column align="left" label="分切2" prop="image" width="120" />
-			  <el-table-column align="left" label="检验" prop="name" width="120" />
-			  <el-table-column align="left" label="使用部门" prop="address" width="120" />
-			  <el-table-column align="left" label="设备编组" prop="image" width="120" />
-			  <el-table-column align="left" label="创建用户" prop="name" width="120" />
-			  <el-table-column align="left" label="创建时间" prop="address" width="120" />
-			  <el-table-column align="left" label="修改时间" prop="image" width="120" />
-			  <el-table-column align="left" label="UNIQID" prop="name" width="120" >
+              <el-table-column type="selection" width="55" />
+              <el-table-column align="left" label="设备编号" prop="设备编号" width="120" />
+              <el-table-column align="left" label="设备名称" prop="设备名称" width="120" />
+              <el-table-column align="left" label="生产工序" prop="生产工序" width="120" />
+              <el-table-column align="left" label="日定额" prop="日定额" width="120" />
+              <el-table-column align="left" label="千件工价" prop="千件工价" width="120" />
+              <el-table-column align="left" label="机长" prop="机长" width="120" />
+              <el-table-column align="left" label="副机" prop="副机" width="120" />
+              <el-table-column align="left" label="调墨" prop="调墨" width="120" />
+              <el-table-column align="left" label="二手" prop="二手" width="120" />
+              <el-table-column align="left" label="飞达" prop="飞达" width="120" />
+              <el-table-column align="left" label="辅助" prop="辅助" width="120" />
+              <el-table-column align="left" label="放卷" prop="放卷" width="120" />
+              <el-table-column align="left" label="分切1" prop="分切1" width="120" />
+              <el-table-column align="left" label="分切2" prop="分切2" width="120" />
+              <el-table-column align="left" label="检验" prop="检验" width="120" />
+              <el-table-column align="left" label="使用部门" prop="使用部门" width="120" />
+              <el-table-column align="left" label="设备编组" prop="sys_id" width="120" />
+              <el-table-column align="left" label="创建用户" prop="sys_id" width="120" />
+              <el-table-column align="left" label="创建时间" prop="mod_rq" width="120" />
+              <el-table-column align="left" label="修改时间" prop="sys_rq" width="120" />
+              <el-table-column align="left" label="UNIQID" prop="UniqId" width="120" />
+              <el-table-column align="center" fixed="right" label="操作"  min-width="250">
+                <template #default="scope">
+                  <el-button type="primary" link class="table-button" @click="getDetails(scope.row)">
+                    <el-icon style="margin-right: 5px"><InfoFilled /></el-icon>
+                    查看详情
+                  </el-button>
+                  <el-button type="primary" link icon="edit" class="table-button" @click="updateCompanyFunc(scope.row)">变更</el-button>
+                  <el-button type="primary" link icon="delete" @click="deleteRow(scope.row)">删除</el-button>
+                </template>
               </el-table-column>
             </el-table>
             <div class="gva-pagination">
@@ -78,18 +107,63 @@
             </div>
           </div>
           <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" :title="type==='create'?'添加':'修改'" destroy-on-close>
-            <el-scrollbar height="500px">
-              <el-form :model="formData" label-position="right" ref="elFormRef" :rules="rule" label-width="80px">
-                <el-form-item label="address字段:"  prop="address" >
-                  <el-input v-model="formData.address" :clearable="true"  placeholder="请输入address字段" />
-                </el-form-item>
-                <el-form-item label="image字段:"  prop="image" >
-                  <el-input v-model="formData.image" :clearable="true"  placeholder="请输入image字段" />
+            <el-scrollbar height="340px">
+              <el-form :model="formData" :inline="true" label-position="right" ref="elFormRef" :rules="rule" label-width="75px">
+                <el-form-item label="员工编号:"  prop="address" >
+                  <el-input v-model="formData.address" :clearable="true"  placeholder="请输入员工编号" />
                 </el-form-item>
-                <el-form-item label="name字段:"  prop="name" >
-                  <el-input v-model="formData.name" :clearable="true"  placeholder="请输入name字段" />
+                <el-form-item prop="image" >
+                  <el-input v-model="formData.image" :clearable="true"  placeholder="请输入员工姓名" />
                 </el-form-item>
               </el-form>
+			  <el-form :model="formData" :inline="true" label-position="right" ref="elFormRef" :rules="rule" label-width="75px">
+			    <el-form-item label="班组:"  prop="address" >
+			      <el-input v-model="formData.address" :clearable="true"  placeholder="请输入班组" />
+			    </el-form-item>
+			    <el-form-item label="日期:" prop="image" >
+			      <el-input v-model="formData.image" :clearable="true"  placeholder="请输入日期" />
+			    </el-form-item>
+			  </el-form>
+			  <el-form :model="formData" :inline="true" label-position="right" ref="elFormRef" :rules="rule" label-width="75px">
+			    <el-form-item label="工单编号:"  prop="address" >
+			      <el-input v-model="formData.address" :clearable="true"  placeholder="请输入工单编号" />
+			    </el-form-item>
+			    <el-form-item prop="image" >
+			      <el-input v-model="formData.image" :clearable="true"  placeholder="请输入产品名称" />
+			    </el-form-item>
+			  </el-form>
+			  <el-form :model="formData" :inline="true" label-position="right" ref="elFormRef" :rules="rule" label-width="75px">
+			    <el-form-item label="工序名称:"  prop="address" >
+			      <el-input v-model="formData.address" :clearable="true"  placeholder="请输入工序名称" style="width: 140px;" />
+			    </el-form-item>
+			    <el-form-item prop="image" >
+			      <el-input v-model="formData.image" :clearable="true"  placeholder="请输入工序号" style="width: 140px;" />
+			    </el-form-item>
+			  	<el-form-item label="流程单号:"  prop="address" >
+			  	  <el-input v-model="formData.address" :clearable="true"  placeholder="请输入流程单号" style="width: 140px;" />
+			  	</el-form-item>			
+			  </el-form>
+			  <el-form :model="formData" :inline="true" label-position="right" ref="elFormRef" :rules="rule" label-width="75px">
+			    <el-form-item label="抽检数量:"  prop="address" >
+			      <el-input v-model="formData.address" :clearable="true"  placeholder="请输入抽检数量" style="width: 123px;" />
+			    </el-form-item>			
+			  </el-form>
+			  <el-form :model="formData" :inline="true" label-position="right" ref="elFormRef" :rules="rule" label-width="75px">
+			    <el-form-item label="A类废品:"  prop="address" >
+			      <el-input v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 123px;" />
+			    </el-form-item>
+			    <el-form-item label="B类废品:"  prop="image" >
+			      <el-input v-model="formData.image" :clearable="true"  placeholder="请输入B类废品" style="width: 123px;" />
+			    </el-form-item>
+			  	<el-form-item label="C类废品:"  prop="address" >
+			  	  <el-input v-model="formData.address" :clearable="true"  placeholder="请输入C类废品" style="width: 123px;" />
+			  	</el-form-item>			
+			  </el-form>
+			  <el-form :model="formData" label-position="right" ref="elFormRef" :rules="rule" label-width="80px">
+			    <el-form-item label="其他备注:"  prop="address" >
+			      <el-input v-model="formData.address" :clearable="true"  placeholder="请输入其他备注" />
+			    </el-form-item>
+			  </el-form>
             </el-scrollbar>
             <template #footer>
               <div class="dialog-footer">
@@ -114,13 +188,24 @@
               </el-descriptions>
             </el-scrollbar>
           </el-dialog>
+
         </el-main>
+
       </el-container>
     </el-container>
+
+
+
+
+
   </div>
 </template>
 
 <script setup>
+import {
+  getDepartment,
+  getMachineInfo
+} from '@/api/mes/job'
 import {
   createCompany,
   deleteCompany,
@@ -129,7 +214,6 @@ import {
   findCompany,
   getCompanyList
 } from '@/api/company'
-
 // 全量引入格式化工具 请按需保留
 import { getDictFunc, formatDate, formatBoolean, filterDict, ReturnArrImg, onDownloadFile } from '@/utils/format'
 import { ElMessage, ElMessageBox } from 'element-plus'
@@ -139,25 +223,39 @@ defineOptions({
     name: 'Company'
 })
 
-const treeData=ref([{
-  label: '设备定额及分配参数设置',
-  children: [{
-    label: '胶印车间'
-  },{
-    label: '凹印车间'
-  },{
-    label: '丝印车间'
-  },{
-    label: '烫模车间'
-  },{
-    label: '检验车间'
-  },{
-    label: '研发中心'
-  }]
-}])
+const treeData=ref([])
+const Department = async() => {
+  const getDepartments = await getDepartment()
+  if (getDepartments.code === 0) {
+ //    // treeData.value = getDepartments.data
+	// getDepartments.data.forEach(function(i,index){
+	// 	console.log(i,index)
+	// })
+	// console.log(getDepartments.data)
+	const arrData = getDepartments.data.map((item) => ({
+		label:item,
+		params: {
+		  department: item,
+		}
+		}))
+    treeData.value = [
+		{
+			label: '设备定额及分配参数设置',
+			children:arrData,
+		}
+	]
+  }
+}
+Department()
 const handleNodeClick = (node,check) => {
   //存放当前节点的nodeId
   console.log(node,check);
+  if (node.params) {
+      params.department = node.params.department;
+      // params.sys_id = node.params.sys_id;
+      // total.value = node.params.total;
+      getTableData();
+    }
 
 }
 // 自动化生成的字典(可能为空)以及字段
@@ -197,6 +295,11 @@ const total = ref(0)
 const pageSize = ref(10)
 const tableData = ref([])
 const searchInfo = ref({})
+const params = {
+  department: '',
+  page: page.value.toString(),
+  limit: pageSize.value.toString(),
+}
 
 // 重置
 const onReset = () => {
@@ -217,27 +320,30 @@ const onSubmit = () => {
 // 分页
 const handleSizeChange = (val) => {
   pageSize.value = val
+  params.limit = val.toString();
   getTableData()
 }
 
 // 修改页面容量
 const handleCurrentChange = (val) => {
   page.value = val
+  params.page = val.toString();
   getTableData()
 }
 
 // 查询
 const getTableData = async() => {
-  const table = await getCompanyList({ page: page.value, pageSize: pageSize.value, ...searchInfo.value })
+  const table = await getMachineInfo(params)
   if (table.code === 0) {
-    tableData.value = table.data.list
+    tableData.value = table.data.data
     total.value = table.data.total
-    page.value = table.data.page
-    pageSize.value = table.data.pageSize
+	console.log(tableData);
+    // page.value = table.data.page
+    // pageSize.value = table.data.pageSize
   }
 }
 
-getTableData()
+// getTableData()
 
 // ============== 表格控制部分结束 ===============
 
@@ -344,13 +450,12 @@ const openDetailShow = () => {
 
 // 打开详情
 const getDetails = async (row) => {
-	openDetailShow()
   // 打开弹窗
-  // const res = await findCompany({ ID: row.ID })
-  // if (res.code === 0) {
-  //   formData.value = res.data.recompany
-  //   openDetailShow()
-  // }
+  const res = await findCompany({ ID: row.ID })
+  if (res.code === 0) {
+    formData.value = res.data.recompany
+    openDetailShow()
+  }
 }
 
 

+ 86 - 138
src/view/job/piece/piece.vue

@@ -104,59 +104,59 @@
             <el-scrollbar height="550px">
               <el-descriptions column="1" border>
                 <el-descriptions-item label="编号">
-                  {{ formData.address }}
+                  {{ pieceData.sys_bh }}
                 </el-descriptions-item>
                 <el-descriptions-item label="名称">
-                  {{ formData.image }}
+                  {{ pieceData.sys_mc }}
                 </el-descriptions-item>
                 <el-descriptions-item label="适用工序">
-                  {{ formData.name }}
+                  {{ pieceData.sygx }}
                 </el-descriptions-item>
 				<el-descriptions-item label="适用机型">
-				  {{ formData.name }}
+				  {{ pieceData.syjx }}
 				</el-descriptions-item>
               </el-descriptions>
 			  <el-descriptions column="3" border>
 			  	<el-descriptions-item label="日定额">
-			  	  {{ formData.name }}
+			  	  {{ pieceData.daily_quota }}
 			  	</el-descriptions-item>
 				<el-descriptions-item label="千件工价">
-				  {{ formData.address }}
+				  {{ pieceData.thousand_piece }}
 				</el-descriptions-item>
 				<el-descriptions-item label="小时补产标准">
-				  {{ formData.image }}
+				  {{ pieceData.production_standard }}
 				</el-descriptions-item>
 			  </el-descriptions>
 			  <el-descriptions column="10" direction="vertical" border>
 			    <el-descriptions-item label="机长">
-			      {{ formData.address }}
+			      {{ pieceData.fir_proportion }}
 			    </el-descriptions-item>
 			    <el-descriptions-item label="副机">
-			      {{ formData.image }}
+			      {{ pieceData.sec_proportion }}
 			    </el-descriptions-item>
 			    <el-descriptions-item label="调墨">
-			      {{ formData.name }}
+			      {{ pieceData.ink_proportion }}
 			    </el-descriptions-item>
 			  	<el-descriptions-item label="二手">
-			  	  {{ formData.name }}
+			  	  {{ pieceData.second_hand_proportion }}
 			  	</el-descriptions-item>
 			  	<el-descriptions-item label="飞达">
-			  	  {{ formData.name }}
+			  	  {{ pieceData.feeder_proportion }}
 			  	</el-descriptions-item>
 				<el-descriptions-item label="辅助">
-				  {{ formData.address }}
+				  {{ pieceData.auxiliary_proportion }}
 				</el-descriptions-item>
 				<el-descriptions-item label="放卷">
-				  {{ formData.image }}
+				  {{ pieceData.unwinder_proportion }}
 				</el-descriptions-item>
 				<el-descriptions-item label="分切1">
-				  {{ formData.name }}
+				  {{ pieceData.cutting_one_proportion }}
 				</el-descriptions-item>
 				<el-descriptions-item label="分切2">
-				  {{ formData.name }}
+				  {{ pieceData.cutting_two_proportion }}
 				</el-descriptions-item>
 				<el-descriptions-item label="检验">
-				  {{ formData.name }}
+				  {{ pieceData.inspect_proportion }}
 				</el-descriptions-item>
 			  </el-descriptions>
             </el-scrollbar>
@@ -168,6 +168,10 @@
 </template>
 
 <script setup>
+import {
+  getOnePieceWork,
+  getPieceWork
+} from '@/api/mes/job'
 import {
   createCompany,
   deleteCompany,
@@ -186,129 +190,63 @@ defineOptions({
     name: 'Company'
 })
 
-const treeData=ref([{
-  label: '机器作业计件定额',
-  children: [{
-    label: '胶印车间【020001】',
-	children:[{
-		label:'胶印 JY01#【020001001】'
-	},{
-		label:'胶印 JY02#【020001002】'
-	},{
-		label:'胶印 JY03#【020001003】'
-	},{
-		label:'胶印 JY04#【020001004】'
-	},{
-		label:'胶印 JY05#【020001005】'
-	},{
-		label:'胶印 JY06#【020001006】'
-	},{
-		label:'胶印 JY07#【020001007】'
-	},{
-		label:'胶印 JY08#【020001008】'
-	},{
-		label:'胶印 JY09#【020001009】'
-	}]
-  },{
-    label: '凹印车间【020002】',
-	children:[{
-		label:'卷凹 WY01#【020002001】'
-	},{
-		label:'卷凹 WY02#【020002002】'
-	},{
-		label:'卷凹 WY03#【020002003】'
-	},{
-		label:'圆烫 WY04#【020002004】'
-	},{
-		label:'圆烫 WY05#【020002005】'
-	},{
-		label:'圆切 WY06#【020002006】'
-	},{
-		label:'圆切 WY07#【020002007】'
-	},{
-		label:'单凹 DY01#【020002008】'
-	},{
-		label:'单凹 DY02#【020002009】'
-	},{
-		label:'单凹 DY03#【020002010】'
-	}]
-  }]
-},{
-  label: '凹印车间',
-  children: [{
-    label: '卷凹【002001】'
-  },{
-    label: '单凹【002002】'
-  },{
-    label: '额【002003】'
-  }]
-},{
-  label: '丝印',
-  children: [{
-    label: '精细线条、精准套印、低于140g软包纸张【003001】'
-  },{
-    label: '实地、非精细线条、粗套印【003002】'
-  },{
-    label: '喷码【003003】'
-  }]
-},{
-  label: '烫模车间',
-  children: [{
-    label: '烫金【004001】',
-	children: [{
-		label: '先烫后印【004001001】',
-		children: [{
-			label:'80-140g薄纸【004001001001】'
-		},{
-			label:'150-145g厚纸【004001001002】'
-		}]
-	},{
-		label: '后烫【004001002】',
-		children: [{
-			label:'薄纸(80-140g)【004002001001】'
-		},{
-			label:'厚纸(140-450g)【004002001002】'
-		}]
-	}]
-  },{
-    label: '凹凸/压纹/立体凹凸【004002】',
-	children:[{
-		label:'薄纸(80-140g)凹凸/压纹/立体凹凸【004002001】'
-	},{
-		label:'厚纸(140-450g)凹凸【004002002】'
-	},{
-		label:'厚纸(140-450g)压纹【004002003】'
-	}]
-  },{
-    label: '模切【004003】',
-	children: [{
-		label:'薄纸(80-140g)【004003001】'
-	},{
-		label:'厚纸(140-450g)【004003002】'
-	}]
-  },{
-    label: '薄纸(80-140g)裁切【004004】'
-  },{
-    label: '凹凸+模切【004008】'
-  },{
-    label: '圆压圆凹凸压纹模切检验【004009】'
-  },{
-    label: '圆压圆凹凸模切检验【004010】'
-  },{
-    label: '拆片(清废)【004011】'
-  }]
-},{
-  label: '检验车间',
-  children: [{
-    label: '机检【005001】'
-  },{
-    label: '人工检【005002】'
-  }]
-}])
+
+const treeData=ref([])
+const PieceWork = async() => {
+  const getPieceWorks = await getPieceWork()
+  if (getPieceWorks.code === 0) {
+	  
+	  const transformedData1 = getPieceWorks.data.machineData.map(item => ({
+	          label: `${item.sys_mc}【${item.sys_bh}】`,
+	          children: item.child.map(sysItem => ({
+	            label: `${sysItem.gx} ${sysItem.jx}【${sysItem.sys_bh}】`,
+	            params: {
+	              code: sysItem.sys_bh,
+	            },
+				children: sysItem.children.map(syssItem => ({
+				  label: `${syssItem.sys_mc}【${syssItem.sys_bh}】`,
+				  params: {
+				    code: sysItem.sys_bh,
+				  },
+				}))
+	          })),
+	        }));
+		const transformedData2 = getPieceWorks.data.handData.map(item => ({
+		        label: `${item.gx}【${item.sys_bh}】`,
+		        children: item.child.map(sysItem => ({
+		          label: `${sysItem.sys_mc}【${sysItem.sys_bh}】`,
+		          params: {
+		            code: sysItem.sys_bh,
+		          },
+						children: sysItem.children.map(syssItem => ({
+						  label: `${syssItem.sys_mc}【${syssItem.sys_bh}】`,
+						  params: {
+						    code: sysItem.sys_bh,
+						  },
+						}))
+		        })),
+		      }));
+			  
+	    treeData.value = [
+	    	{
+	    		label: '机器作业计件定额',
+	    		children:transformedData1,
+	    	},
+			{
+				label: '人工作业计件定额',
+				children:transformedData2,
+			}
+	    ]
+  }
+}
+PieceWork()
 const handleNodeClick = (node,check) => {
   //存放当前节点的nodeId
+  if (node.params) {
+  		sys_bh.value = node.params.code;
+  		getDetails();
+  	}
   console.log(node,check);
-
 }
 // 自动化生成的字典(可能为空)以及字段
 const formData = ref({
@@ -347,6 +285,8 @@ const total = ref(0)
 const pageSize = ref(10)
 const tableData = ref([])
 const searchInfo = ref({})
+const sys_bh = ref()
+const pieceData = ref([])
 
 // 重置
 const onReset = () => {
@@ -493,7 +433,15 @@ const openDetailShow = () => {
 
 
 // 打开详情
-const getDetails = async (row) => {
+const getDetails = async () => {
+	const getOnePieceWorks = await getOnePieceWork({code:sys_bh.value})
+	if (getOnePieceWorks.code === 0) {
+	  // getProcessLosss.data[0].forEach(function(i,index){
+	  // 	console.log(i)
+	  // })
+	  pieceData.value=getOnePieceWorks.data[0]
+	  openDetailShow()
+	}
 	openDetailShow()
   // 打开弹窗
   // const res = await findCompany({ ID: row })

+ 100 - 101
src/view/job/process/process.vue

@@ -9,7 +9,7 @@
       </el-aside>
       <el-container>
         <el-main>
-          <div class="gva-search-box">
+          <!-- <div class="gva-search-box">
             <el-form ref="elSearchFormRef" :inline="true" :model="searchInfo" class="demo-form-inline" :rules="searchRule" @keyup.enter="onSubmit">
               <el-form-item label="创建日期" prop="createdAt">
                 <template #label>
@@ -29,8 +29,8 @@
                 <el-button icon="refresh" @click="onReset">重置</el-button>
               </el-form-item>
             </el-form>
-          </div>
-          <div class="gva-table-box">
+          </div> -->
+          <!-- <div class="gva-table-box">
             <div class="gva-btn-list">
 			  <el-button type="primary" icon="upload" @click="">导出到excel</el-button>
 			  <el-button type="primary" icon="plus" @click="getDetails(2)">详情</el-button>
@@ -77,7 +77,7 @@
                   @size-change="handleSizeChange"
               />
             </div>
-          </div>
+          </div> -->
           <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" :title="type==='create'?'添加':'修改'" destroy-on-close>
             <el-scrollbar height="500px">
               <el-form :model="formData" label-position="right" ref="elFormRef" :rules="rule" label-width="80px">
@@ -104,25 +104,43 @@
             <el-scrollbar height="550px">
               <el-descriptions column="1" border>
                 <el-descriptions-item label="编号">
-                  {{ formData.address }}
+                  {{ processData.sys_bh }}
                 </el-descriptions-item>
                 <el-descriptions-item label="名称">
-                  {{ formData.image }}
+                  {{ processData.sys_mc }}
                 </el-descriptions-item>
               </el-descriptions>
 			  <el-descriptions column="2" border>
 			    <el-descriptions-item label="基本损耗">
-			      {{ formData.name }}
+			      {{ processData.sys_rate0 }}
 			    </el-descriptions-item>
 			    <el-descriptions-item label="损耗率">
-			      {{ formData.name }}
+			      {{ processData.sys_rate1 }}
 			    </el-descriptions-item>
 			  </el-descriptions>
 			  <el-descriptions column="1" border>
 			  <el-descriptions-item label="备注(机型)">
-			    {{ formData.name }}
+			    {{ processData.remark }}
 			  </el-descriptions-item>
 			  </el-descriptions>
+			  
+			  <!-- <el-form :model="processData" label-position="right" ref="elFormRef" :rules="rule" label-width="80px">
+			    <el-form-item label="编号:"  prop="sys_bh" >
+			      <el-input v-model="processData.sys_bh" :clearable="true" />
+			    </el-form-item>
+			    <el-form-item label="名称:"  prop="sys_mc" >
+			      <el-input v-model="processData.sys_mc" :clearable="true" />
+			    </el-form-item>
+			    <el-form-item label="基本损耗:"  prop="sys_rate0" >
+			      <el-input v-model="processData.sys_rate0" :clearable="true"  />
+			    </el-form-item>
+				<el-form-item label="损耗率:"  prop="sys_rate1" >
+				  <el-input v-model="processData.sys_rate1" :clearable="true" />
+				</el-form-item>
+				<el-form-item label="备注(机型):"  prop="备注(机型)" >
+				  <el-input v-model="item" :clearable="true"  />
+				</el-form-item>
+			  </el-form> -->
             </el-scrollbar>
           </el-dialog>
         </el-main>
@@ -132,6 +150,10 @@
 </template>
 
 <script setup>
+import {
+  getProcessLoss,
+  getProcess
+} from '@/api/mes/job'
 import {
   createCompany,
   deleteCompany,
@@ -150,89 +172,51 @@ defineOptions({
     name: 'Company'
 })
 
-const treeData=ref([{
-  label: '胶印车间',
-  children: [{
-    label: '胶印【001001】'
-  },{
-    label: '光边【001002】'
-  }]
-},{
-  label: '凹印车间',
-  children: [{
-    label: '卷凹【002001】'
-  },{
-    label: '单凹【002002】'
-  },{
-    label: '额【002003】'
-  }]
-},{
-  label: '丝印',
-  children: [{
-    label: '精细线条、精准套印、低于140g软包纸张【003001】'
-  },{
-    label: '实地、非精细线条、粗套印【003002】'
-  },{
-    label: '喷码【003003】'
-  }]
-},{
-  label: '烫模车间',
-  children: [{
-    label: '烫金【004001】',
-	children: [{
-		label: '先烫后印【004001001】',
-		children: [{
-			label:'80-140g薄纸【004001001001】'
-		},{
-			label:'150-145g厚纸【004001001002】'
-		}]
-	},{
-		label: '后烫【004001002】',
-		children: [{
-			label:'薄纸(80-140g)【004002001001】'
-		},{
-			label:'厚纸(140-450g)【004002001002】'
-		}]
-	}]
-  },{
-    label: '凹凸/压纹/立体凹凸【004002】',
-	children:[{
-		label:'薄纸(80-140g)凹凸/压纹/立体凹凸【004002001】'
-	},{
-		label:'厚纸(140-450g)凹凸【004002002】'
-	},{
-		label:'厚纸(140-450g)压纹【004002003】'
-	}]
-  },{
-    label: '模切【004003】',
-	children: [{
-		label:'薄纸(80-140g)【004003001】'
-	},{
-		label:'厚纸(140-450g)【004003002】'
-	}]
-  },{
-    label: '薄纸(80-140g)裁切【004004】'
-  },{
-    label: '凹凸+模切【004008】'
-  },{
-    label: '圆压圆凹凸压纹模切检验【004009】'
-  },{
-    label: '圆压圆凹凸模切检验【004010】'
-  },{
-    label: '拆片(清废)【004011】'
-  }]
-},{
-  label: '检验车间',
-  children: [{
-    label: '机检【005001】'
-  },{
-    label: '人工检【005002】'
-  }]
-}])
+const treeData=ref([])
+const Process = async() => {
+  const getProcesss = await getProcess()
+  console.log(getProcesss.data)
+  if (getProcesss.code === 0) {
+	  
+	  const transformedData = getProcesss.data.map(item => ({
+	          label: item.sys_mc,
+	          children: item.child.map(sysItem => ({
+	            label: sysItem.sys_mc,
+	            params: {
+	              code: sysItem.sys_bh,
+	            },
+	  				children: sysItem.children.map(syssItem => ({
+	  				  label: syssItem.sys_mc,
+	  				  params: {
+	  				    code: sysItem.sys_bh,
+	  				  },
+					  children: syssItem.childrens.map(syssItems => ({
+					    label: syssItems.sys_mc,
+					    params: {
+					      code: syssItems.sys_bh,
+					    },
+					    
+					  }))
+					  
+	  				}))
+	          })),
+	        }));
+	  console.log(transformedData)
+    treeData.value = transformedData
+  }
+}
+Process()
 const handleNodeClick = (node,check) => {
   //存放当前节点的nodeId
-  console.log(node,check);
-
+ //  if (node.child==[]) {
+	// 	sys_bh.value = node.sys_bh;
+	// 	getDetails();
+	// }
+	if (node.params) {
+			sys_bh.value = node.params.code;
+			getDetails();
+		}
+     console.log(node,check);
 }
 // 自动化生成的字典(可能为空)以及字段
 const formData = ref({
@@ -241,7 +225,7 @@ const formData = ref({
         name: '',
         })
 
-
+const processData = ref({})
 // 验证规则
 const rule = reactive({
 })
@@ -271,6 +255,11 @@ const total = ref(0)
 const pageSize = ref(10)
 const tableData = ref([])
 const searchInfo = ref({})
+// const defaultProps = {
+//   children: 'child',
+//   label: 'sys_mc'
+// };
+const sys_bh = ref()
 
 // 重置
 const onReset = () => {
@@ -416,18 +405,28 @@ const openDetailShow = () => {
 }
 
 
-// 打开详情
-const getDetails = async (row) => {
-  // 打开弹窗
-  // const res = await findCompany({ ID: row })
-  // if (res.code === 0) {
-  //   formData.value = res.data.recompany
-  //   openDetailShow()
-  // }
-  openDetailShow()
+// // 打开详情
+// const getDetails = async (row) => {
+//   // 打开弹窗
+//   // const res = await findCompany({ ID: row })
+//   // if (res.code === 0) {
+//   //   formData.value = res.data.recompany
+//   //   openDetailShow()
+//   // }
+//   openDetailShow()
+// }
+
+const getDetails = async () => {
+	const getProcessLosss = await getProcessLoss({code:sys_bh.value})
+	if (getProcessLosss.code === 0) {
+	  // getProcessLosss.data[0].forEach(function(i,index){
+	  // 	console.log(i)
+	  // })
+	  processData.value=getProcessLosss.data[0]
+	  openDetailShow()
+	}
 }
 
-
 // 关闭详情弹窗
 const closeDetailShow = () => {
   detailShow.value = false

+ 70 - 58
src/view/job/rewards/rewards.vue

@@ -5,7 +5,7 @@
       <el-aside width="200px">
         <div class="JKWTree-tree">
 
-          <h3  > 组织列表</h3>
+          <h3  >工序大废品奖惩记录</h3>
           <el-tree :data="treeData" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
         </div>
 
@@ -61,23 +61,23 @@
                 @selection-change="handleSelectionChange"
             >
               <el-table-column type="selection" width="55" />
-              <el-table-column align="left" label="工单编号" prop="address" width="120" />
-              <el-table-column align="left" label="印件名称" prop="image" width="120" />
-			  <el-table-column align="left" label="日期" prop="address" width="120" />
-			  <el-table-column align="left" label="流程单备注" prop="image" width="120" />
-			  <el-table-column align="left" label="联数" prop="name" width="120" />
-			  <el-table-column align="left" label="责任部门" prop="address" width="120" />
-			  <el-table-column align="left" label="大废品数" prop="image" width="120" />
-			  <el-table-column align="left" label="废品类型" prop="name" width="120" />
-			  <el-table-column align="left" label="废品来源" prop="address" width="120" />
-			  <el-table-column align="left" label="奖励班组" prop="image" width="120" />
-              <el-table-column align="left" label="检验员工" prop="name" width="120" />
-			  <el-table-column align="left" label="责任班组" prop="address" width="120" />
-			  <el-table-column align="left" label="责任员工1" prop="image" width="120" />
-			  <el-table-column align="left" label="责任员工2" prop="name" width="120" />
-			  <el-table-column align="left" label="创建用户" prop="address" width="120" />
-			  <el-table-column align="left" label="创建时间" prop="image" width="120" />
-			  <el-table-column align="left" label="UNIQID" prop="name" width="120" />
+              <el-table-column align="left" label="工单编号" prop="sczl_gdbh" width="120" />
+              <el-table-column align="left" label="印件名称" prop="Gd_cpmc" width="120" />
+			  <el-table-column align="left" label="日期" prop="sczl_rq" width="120" />
+			  <el-table-column align="left" label="流程单备注" prop="sczl_numDesc" width="120" />
+			  <el-table-column align="left" label="联数" prop="sczl_ls" width="120" />
+			  <el-table-column align="left" label="责任部门" prop="责任部门" width="120" />
+			  <el-table-column align="left" label="大废品数" prop="sczl_cl" width="120" />
+			  <el-table-column align="left" label="废品类型" prop="sczl_fplxA" width="120" />
+			  <el-table-column align="left" label="废品来源" prop="sczl_fplxB" width="120" />
+			  <el-table-column align="left" label="奖励班组" prop="Jl_bzdh" width="120" />
+              <el-table-column align="left" label="检验员工" prop="JL_bh1" width="120" />
+			  <el-table-column align="left" label="责任班组" prop="sczl_bzdh" width="120" />
+			  <el-table-column align="left" label="责任员工1" prop="sczl_bh1" width="120" />
+			  <el-table-column align="left" label="责任员工2" prop="sczl_bh2" width="120" />
+			  <el-table-column align="left" label="创建用户" prop="sys_id" width="120" />
+			  <el-table-column align="left" label="创建时间" prop="sys_rq" width="120" />
+			  <el-table-column align="left" label="UNIQID" prop="UniqId" width="120" />
               <el-table-column align="left" label="操作" min-width="250">
                 <template #default="scope">
                   <el-button type="primary" link class="table-button" @click="getDetails(scope.row)">
@@ -306,6 +306,10 @@
 </template>
 
 <script setup>
+import {
+  getRewardTab,
+  getRewardList
+} from '@/api/mes/job'
 import {
   createCompany,
   deleteCompany,
@@ -324,44 +328,47 @@ defineOptions({
     name: 'Company'
 })
 
-const treeData=ref([{
-  label: '一级 1',
-  children: [{
-    label: '二级 1-1',
-    children: [{
-      label: '三级 1-1-1'
-    }]
-  }]
-}, {
-  label: '一级 2',
-  children: [{
-    label: '二级 2-1',
-    children: [{
-      label: '三级 2-1-1'
-    }]
-  }, {
-    label: '二级 2-2',
-    children: [{
-      label: '三级 2-2-1'
-    }]
-  }]
-}, {
-  label: '一级 3',
-  children: [{
-    label: '二级 3-1',
-    children: [{
-      label: '三级 3-1-1'
-    }]
-  }, {
-    label: '二级 3-2',
-    children: [{
-      label: '三级 3-2-1'
-    }]
-  }]
-}])
+const treeData=ref([])
+// 侧边栏
+const RewardTab = async() => {
+  const getRewardTabs = await getRewardTab()
+  if (getRewardTabs.code === 0) {
+	  // const transformedData = getRewardTabs.data.map(item => ({
+	  //         label: `${item.date.replace(/-/g, '.')}【单据数: ${item.counts}张】`,
+	  //         children: item.sys.map(sysItem => ({
+	  //           label: `${sysItem.Sys_id} 【记录数: ${sysItem.count}张】`,
+	  //           params: {
+	  //             date: item.date.replace(/\./g, '-'),
+	  //             sys_id: sysItem.sys_id,
+	  //             total: sysItem.count,
+	  //           },
+	  //         })),
+	  //       }));
+	  const transformedData = getRewardTabs.data.map((item) => ({
+		  label:`${item.date.replace(/-/g, '.')}【单据数: ${item.counts}张】`,
+		  params: {
+		              date: item.date.replace(/\./g, '-'),
+		            }
+		  }))
+			// console.log(arrData);
+	  treeData.value = transformedData
+	// treeData.value=getRewardTabs.data
+    // tableData.value = table.data.list
+    // total.value = table.data.total
+    // page.value = table.data.page
+    // pageSize.value = table.data.pageSize
+  }
+}
+RewardTab()
 const handleNodeClick = (node,check) => {
   //存放当前节点的nodeId
   console.log(node,check);
+  if (node.params) {
+      params.date = node.params.date;
+      // params.sys_id = node.params.sys_id;
+      // total.value = node.params.total;
+      getTableData();
+    }
 
 }
 // 自动化生成的字典(可能为空)以及字段
@@ -401,6 +408,11 @@ const total = ref(0)
 const pageSize = ref(10)
 const tableData = ref([])
 const searchInfo = ref({})
+const params = {
+  date: '',
+  page: page.value.toString(),
+  limit: pageSize.value.toString(),
+}
 
 // 重置
 const onReset = () => {
@@ -421,27 +433,27 @@ const onSubmit = () => {
 // 分页
 const handleSizeChange = (val) => {
   pageSize.value = val
+  params.limit = val.toString();
   getTableData()
 }
 
 // 修改页面容量
 const handleCurrentChange = (val) => {
   page.value = val
+  params.page = val.toString();
   getTableData()
 }
 
 // 查询
 const getTableData = async() => {
-  const table = await getCompanyList({ page: page.value, pageSize: pageSize.value, ...searchInfo.value })
+  const table = await getRewardList(params)
   if (table.code === 0) {
-    tableData.value = table.data.list
+	tableData.value = table.data.rows
     total.value = table.data.total
-    page.value = table.data.page
-    pageSize.value = table.data.pageSize
   }
 }
 
-getTableData()
+// getTableData()
 
 // ============== 表格控制部分结束 ===============
 

+ 59 - 56
src/view/job/sampling/sampling.vue

@@ -5,7 +5,7 @@
       <el-aside width="200px">
         <div class="JKWTree-tree">
 
-          <h3  > 组织列表</h3>
+          <h3  > 工单抽检记录维护</h3>
           <el-tree :data="treeData" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
         </div>
 
@@ -62,20 +62,20 @@
                 @selection-change="handleSelectionChange"
             >
               <el-table-column type="selection" width="55" />
-              <el-table-column align="left" label="日期" prop="address" width="120" />
-              <el-table-column align="left" label="员工编号" prop="image" width="120" />
-              <el-table-column align="left" label="印件号" prop="name" width="120" />
-			  <el-table-column align="left" label="工序号" prop="address" width="120" />
-			  <el-table-column align="left" label="流程单号" prop="image" width="120" />
-			  <el-table-column align="left" label="抽检数" prop="name" width="120" />
-			  <el-table-column align="left" label="A类度" prop="address" width="120" />
-			  <el-table-column align="left" label="B类度" prop="image" width="120" />
-			  <el-table-column align="left" label="C类度" prop="name" width="120" />
-			  <el-table-column align="left" label="备注" prop="address" width="120" />
-			  <el-table-column align="left" label="创建用户" prop="image" width="120" />
-			  <el-table-column align="left" label="创建时间" prop="name" width="120" />
-			  <el-table-column align="left" label="修改时间" prop="address" width="120" />
-			  <el-table-column align="left" label="UNIQID" prop="image" width="120" />
+              <el-table-column align="left" label="日期" prop="Sczl_rq" width="120" />
+              <el-table-column align="left" label="员工编号" prop="Sczl_bh" width="120" />
+              <el-table-column align="left" label="印件号" prop="Sczl_gdbh" width="120" />
+			  <el-table-column align="left" label="工序号" prop="sczl_gxh" width="120" />
+			  <el-table-column align="left" label="流程单号" prop="Sczl_num" width="120" />
+			  <el-table-column align="left" label="抽检数" prop="Sczl_抽检数" width="120" />
+			  <el-table-column align="left" label="A类废" prop="sczl_A类废" width="120" />
+			  <el-table-column align="left" label="B类废" prop="sczl_B类废" width="120" />
+			  <el-table-column align="left" label="C类废" prop="sczl_C类废" width="120" />
+			  <el-table-column align="left" label="备注" prop="Sczl_desc" width="120" />
+			  <el-table-column align="left" label="创建用户" prop="Sys_id" width="120" />
+			  <el-table-column align="left" label="创建时间" prop="Sys_rq" width="120" />
+			  <el-table-column align="left" label="修改时间" prop="Mod_rq" width="120" />
+			  <el-table-column align="left" label="UNIQID" prop="UniqId" width="120" />
               <el-table-column align="center" fixed="right" label="操作"  min-width="250">
                 <template #default="scope">
                   <el-button type="primary" link class="table-button" @click="getDetails(scope.row)">
@@ -195,6 +195,10 @@
 </template>
 
 <script setup>
+import {
+  getSpotTab,
+  getSpotList
+} from '@/api/mes/job'
 import {
   createCompany,
   deleteCompany,
@@ -203,7 +207,6 @@ import {
   findCompany,
   getCompanyList
 } from '@/api/company'
-
 // 全量引入格式化工具 请按需保留
 import { getDictFunc, formatDate, formatBoolean, filterDict, ReturnArrImg, onDownloadFile } from '@/utils/format'
 import { ElMessage, ElMessageBox } from 'element-plus'
@@ -213,44 +216,36 @@ defineOptions({
     name: 'Company'
 })
 
-const treeData=ref([{
-  label: '一级 1',
-  children: [{
-    label: '二级 1-1',
-    children: [{
-      label: '三级 1-1-1'
-    }]
-  }]
-}, {
-  label: '一级 2',
-  children: [{
-    label: '二级 2-1',
-    children: [{
-      label: '三级 2-1-1'
-    }]
-  }, {
-    label: '二级 2-2',
-    children: [{
-      label: '三级 2-2-1'
-    }]
-  }]
-}, {
-  label: '一级 3',
-  children: [{
-    label: '二级 3-1',
-    children: [{
-      label: '三级 3-1-1'
-    }]
-  }, {
-    label: '二级 3-2',
-    children: [{
-      label: '三级 3-2-1'
-    }]
-  }]
-}])
+const treeData=ref([])
+const SpotTab = async() => {
+  const getSpotTabs = await getSpotTab()
+  if (getSpotTabs.code === 0) {
+	  
+	   const transformedData = getSpotTabs.data.map(item => ({
+	        label: `${item.date.replace(/-/g, '.')}【单据数: ${item.counts}张】`,
+	        children: item.sys.map(sysItem => ({
+	          label: `${sysItem.Sys_id} 【记录数: ${sysItem.count}张】`,
+	          params: {
+	            date: item.date.replace(/\./g, '-'),
+	            sys_id: sysItem.sys_id,
+	            total: sysItem.count,
+	          },
+	        })),
+	      }));
+	  // console.log(getSpotTabs);
+    treeData.value = transformedData
+  }
+}
+SpotTab()
 const handleNodeClick = (node,check) => {
   //存放当前节点的nodeId
   console.log(node,check);
+  if (node.params) {
+      params.date = node.params.date;
+      params.sys_id = node.params.sys_id;
+      // total.value = node.params.total;
+      getTableData();
+    }
 
 }
 // 自动化生成的字典(可能为空)以及字段
@@ -290,6 +285,12 @@ const total = ref(0)
 const pageSize = ref(10)
 const tableData = ref([])
 const searchInfo = ref({})
+const params = {
+  date: '',
+  sys_id: '',
+  page: page.value.toString(),
+  limit: pageSize.value.toString(),
+}
 
 // 重置
 const onReset = () => {
@@ -310,27 +311,29 @@ const onSubmit = () => {
 // 分页
 const handleSizeChange = (val) => {
   pageSize.value = val
+  params.limit = val.toString();
   getTableData()
 }
 
 // 修改页面容量
 const handleCurrentChange = (val) => {
   page.value = val
+  params.page = val.toString();
   getTableData()
 }
 
 // 查询
 const getTableData = async() => {
-  const table = await getCompanyList({ page: page.value, pageSize: pageSize.value, ...searchInfo.value })
+  const table = await getSpotList(params)
   if (table.code === 0) {
-    tableData.value = table.data.list
+    tableData.value = table.data.rows
     total.value = table.data.total
-    page.value = table.data.page
-    pageSize.value = table.data.pageSize
+    // page.value = table.data.page
+    // pageSize.value = table.data.pageSize
   }
 }
 
-getTableData()
+// getTableData()
 
 // ============== 表格控制部分结束 ===============