Browse Source

绩效管理

Lexie 1 year ago
parent
commit
9f266cf63c

+ 944 - 0
src/view/performance/Dayreportattached.vue

@@ -0,0 +1,944 @@
+<template>
+  <div>
+
+    <el-container>
+      <el-aside width="200px">
+        <div class="JKWTree-tree">
+
+          <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">
+                <template #label>
+        <span>
+          创建日期
+          <el-tooltip content="搜索范围是开始日期(包含)至结束日期(不包含)">
+            <el-icon><QuestionFilled /></el-icon>
+          </el-tooltip>
+        </span>
+                </template>
+                <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-button type="primary" icon="search" @click="onSubmit">查询</el-button>
+                <el-button icon="refresh" @click="onReset">重置</el-button>
+              </el-form-item>
+            </el-form>
+          </div>
+          <div class="gva-table-box">
+            <div class="gva-btn-list">
+              <el-button type="primary" icon="plus" @click="openDialog">新增</el-button>
+			  <el-button type="primary" icon="plus" @click="displayDialog">显示方式</el-button>
+			  <el-button type="primary" icon="plus" @click="positDialog">定位</el-button>
+			  <el-button type="primary" icon="plus" @click="displayDialog">查改</el-button>
+			  <el-button type="primary" icon="plus" @click="displayDialog">导出到Excel</el-button>
+			  <el-button type="primary" icon="plus" @click="dialogTableVisible">拆片系数修正 </el-button>
+			  <el-button type="primary" icon="plus" @click="dialogTableVisible2">工序产量核查 </el-button>			  
+			  <el-button type="primary" icon="plus" @click="displayDialog">机台异常明细</el-button>
+			  <el-button type="primary" icon="plus" @click="displayDialog">退出</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
+              :data="tableData"
+            				 height="600"
+            				 border
+            				 highlight-current-row
+			v-model="selectedRow"				 
+			@row-click="selectRow"
+            @current-change="handleCurrentChange"
+			@row-dblclick="dbSelected"
+			@cell-click="cellclick"
+			:cell-style="tableCellStyle">
+              style="width: 100%">
+              <el-table-column
+            				  fixed
+                prop="worknum"
+                label="工单编号"
+                width="100">
+              </el-table-column>
+              <el-table-column
+            				  fixed
+                prop="name"
+                label="产品名称"
+                width="180">
+              </el-table-column>
+              
+            				<el-table-column
+            				  prop="process"
+            				  label="印件及工序"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="manufacturetime"
+							  label="生产日期"
+							  width="180">
+							</el-table-column>
+            				<el-table-column
+            				  prop="Machine"
+            				  label="机台"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="Team"
+            				  label="班组"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="processsheet"
+							  label="流程单"
+							  width="180">
+							</el-table-column>
+            				
+							<el-table-column
+							  prop="production"
+							  label="车头产量"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="shades"
+            				  label="色度数"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="processwaste"
+            				  label="制程废"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="defective"
+							  label="次品"
+							  width="180">
+							</el-table-column>
+            				<el-table-column
+            				  prop="incomingerror"
+            				  label="来料异常"
+            				  width="180">
+            				</el-table-column>
+            				
+            				<el-table-column
+            				  prop="platework"
+            				  label="装版工时"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="maintenancework"
+            				  label="保养工时"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="proofingwork"
+							  label="打样工时"
+							  width="180">
+							</el-table-column>
+            				<el-table-column
+            				  prop="stopwork"
+            				  label="异常停机工时"
+            				  width="180">
+            				</el-table-column>
+            				
+            				<el-table-column
+            				  prop="runwork"
+            				  label="设备运行工时"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamnumber1"
+            				  label="组员编号1"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="teamname1"
+							  label="组员姓名1"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="teamnumber2"
+            				  label="组员编号2"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamname2"
+            				  label="组员姓名"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+            				  prop="teamnumber3"
+            				  label="组员编号3"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamname3"
+            				  label="组员姓名3"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+            				  prop="teamnumber4"
+            				  label="组员编号4"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamname4"
+            				  label="组员姓名4"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamnumber5"
+            				  label="组员编号5"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamname5"
+            				  label="组员姓名5"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamnumber6"
+            				  label="组员编号6"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamname6"
+            				  label="组员姓名6"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="combinecoefficients"
+            				  label="拆片联拼系数"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="casletcoefficient"
+							  label="拆片小盒系数"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="ratefactor"
+            				  label="工价系数"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="dailyquota"
+							  label="日定额"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="piecesprice "
+            				  label="千件工价"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="addstandards "
+							  label="补产标准"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="creatuser"
+            				  label="创建用户"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="creattime"
+							  label="创建时间"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="updatetime"
+            				  label="修改时间"
+            				  width="180">
+            				</el-table-column>							
+            </el-table>		    
+            <div class="gva-pagination">
+              <el-pagination
+                  layout="total, sizes, prev, pager, next, jumper"
+                  :current-page="page"
+                  :page-size="pageSize"
+                  :page-sizes="[10, 30, 50, 100]"
+                  :total="total"
+                  @current-change="handleCurrentChange"
+                  @size-change="handleSizeChange"
+              />
+            </div>
+          </div>
+		  
+          <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" :title="type==='create'?'添加':'修改'" destroy-on-close>             
+			 <el-card class="box-card">
+			  <el-radio v-model="radio" label="1">按工单显示</el-radio>
+			  <el-radio v-model="radio" label="2">按输单日期显示</el-radio>
+			 </el-card>
+			 <template #footer>		 
+			      <el-button type="primary" @click="enterDialog">确 定</el-button>	
+			      <el-button @click="closeDialog">放弃</el-button>			      		  
+			  </template>
+          </el-dialog>
+
+
+
+
+     <el-dialog v-model="dialogTableVisibleShow" :before-close="closeDialog" :title="type==='create'?'添加':'修改'" destroy-on-close>             
+			 <el-table :data="gridData">
+			     <el-table-column property="date" label="工单编号" width="150"></el-table-column>
+			     <el-table-column property="name" label="拆片名称" width="200"></el-table-column>
+			     <el-table-column property="address" label="印件工序及工艺" width="200"></el-table-column>
+				 <el-table-column property="date" label="生产日期" width="150"></el-table-column>
+				 <el-table-column property="name" label="产量" width="200"></el-table-column>
+				 <el-table-column property="address" label="原工价系数" width="200"></el-table-column>
+				 <el-table-column property="date" label="新工价系数" width="150"></el-table-column>
+				 <el-table-column property="name" label="联数系数" width="200"></el-table-column>
+				 <el-table-column property="address" label="条小盒系数" width="200"></el-table-column>
+				 <el-table-column property="date" label="日定额" width="150"></el-table-column>
+				 <el-table-column property="name" label="千件工价" width="200"></el-table-column>
+				 <el-table-column property="address" label="组员编号1" width="200"></el-table-column>
+				 <el-table-column property="name" label="组员姓名1" width="200"></el-table-column>
+				 <el-table-column property="address" label="组员编号2" width="200"></el-table-column>
+				 <el-table-column property="name" label="组员姓名2" width="200"></el-table-column>				 
+			   </el-table>
+          </el-dialog>
+
+
+  <el-dialog v-model="dialogTableVisibleShow2" :before-close="closeDialog" :title="type==='create'?'添加':'修改'" destroy-on-close>             
+			<el-form-item label="工单编号:"  prop="address" >
+			  <el-input v-model="formData.address" :clearable="true"  placeholder="请输入班组" style="width:200px" />
+			  <el-input v-model="formData.address" :clearable="true"  placeholder="请输入班组" style="width:200px" />
+			</el-form-item>
+			 <el-table :data="gridData">
+			     <el-table-column property="date" label="印件及工序名称" width="150"></el-table-column>
+			     <el-table-column property="name" label="工序计划产量" width="200"></el-table-column>
+			     <el-table-column property="address" label="联数" width="200"></el-table-column>
+				 <el-table-column property="date" label="折算车头产量" width="150"></el-table-column>
+				 <el-table-column property="name" label="实际上报产量" width="200"></el-table-column>
+				 <el-table-column property="address" label="制程废品" width="200"></el-table-column>
+				 <el-table-column property="date" label="制程废品率" width="150"></el-table-column>
+				 <el-table-column property="name" label="来料异常" width="200"></el-table-column>
+				 <el-table-column property="address" label="流程单数" width="200"></el-table-column>
+				 <el-table-column property="date" label="当前设备" width="150"></el-table-column>
+				 <el-table-column property="name" label="工序状态" width="200"></el-table-column>
+				 <el-table-column property="address" label="首版生产日期" width="200"></el-table-column>
+			   </el-table>
+          </el-dialog>
+
+          <el-dialog v-model="positVisible" :before-close="closeDialog" :title="type==='create'?'添加':'修改'" destroy-on-close>             
+			 <el-card class="box-card">
+			  <div class="demo-input-suffix">
+			    工单编号:<el-input   placeholder=""  prefix-icon="el-icon-search"  v-model="input2"> </el-input>		
+			  </div>
+			  <div class="demo-input-suffix">
+			    产品名称:			    
+			    <el-input
+			      placeholder=""
+			      v-model="input4">
+			      <i slot="prefix" class="el-input__icon el-icon-search"></i>
+			    </el-input>
+			  </div>
+			 </el-card>
+			 <template #footer>		 
+			      <el-button type="primary" @click="enterDialog">继续</el-button>	
+			      <el-button @click="closeDialog">放弃</el-button>			      		  
+			  </template>
+          </el-dialog>
+
+
+
+
+
+
+
+                   <el-dialog v-model="dialogFormVisible2" :before-close="closeDialog" :title="type==='create'?'添加':'修改'" destroy-on-close>
+                     <el-scrollbar height="500px">
+                       <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="" style="width: 400px;"/>
+                         </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="请输入日期" style="width: 400px;" />
+         			    </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-item label="工艺名称:"  prop="address" >
+						  <el-input v-model="formData.address" :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" label="机器" >
+         			      <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-item label="加工联数:"  prop="address" >
+						  <el-input v-model="formData.address" :clearable="true"  placeholder="请输入抽检数量" style="width: 123px;" />
+						</el-form-item>	
+						<el-form-item label="产量:"  prop="address" >
+						  <el-input v-model="formData.address" :clearable="true"  placeholder="请输入抽检数量" style="width: 123px;" />
+						</el-form-item>		
+						<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="95px">
+					    <el-form-item label="装版总工时:"  prop="address" >
+					      <el-input v-model="formData.address" :clearable="true"  placeholder="请输入抽检数量" style="width: 95px;" />
+					    </el-form-item>	
+						<el-form-item label="装版补产工时:"  prop="address">
+						  <el-input v-model="formData.address" :clearable="true"  placeholder="请输入抽检数量" style="width: 95px;" />
+						</el-form-item>	
+						<el-form-item label="保养工时:"  prop="address" >
+						  <el-input v-model="formData.address" :clearable="true"  placeholder="请输入抽检数量" style="width: 123px;" />
+						</el-form-item>		
+						<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="95px">
+					    <el-form-item label="打样总工时:"  prop="address" >
+					      <el-input v-model="formData.address" :clearable="true"  placeholder="请输入抽检数量" style="width: 95px;" />
+					    </el-form-item>	
+						<el-form-item label="打样补产工时:"  prop="address">
+						  <el-input v-model="formData.address" :clearable="true"  placeholder="请输入抽检数量" style="width: 95px;" />
+						</el-form-item>	
+						<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="95px">
+					    <el-form-item label="拆片联拼系数:"  prop="address" >
+					      <el-input v-model="formData.address" :clearable="true"  placeholder="请输入抽检数量" style="width: 95px;" />
+					    </el-form-item>	
+						<el-form-item label="拆片小盒系数:"  prop="address">
+						  <el-input v-model="formData.address" :clearable="true"  placeholder="请输入抽检数量" style="width: 95px;" />
+						</el-form-item>																
+					  </el-form>
+					  <el-form :model="formData" :inline="true" label-position="right" ref="elFormRef" :rules="rule" label-width="95px">
+					    <el-form-item label="定额代号:"  prop="address" >
+					      <el-input v-model="formData.address" :clearable="true"  placeholder="请输入抽检数量" style="width: 95px;" />
+					    </el-form-item>	
+						<el-form-item label="工价系数:"  prop="address">
+						  <el-input v-model="formData.address" :clearable="true"  placeholder="请输入抽检数量" style="width: 95px;" />
+						</el-form-item>	
+						<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="55px">
+					    <el-form-item label="班组成员"  prop="address" >					      
+					    </el-form-item>
+					    <el-form-item label="组员1:"  prop="image" >					      
+					    </el-form-item>
+					  	<el-form-item label="组员2"  prop="address" >					  	  
+					  	</el-form-item>		
+						<el-form-item label="组员3"  prop="address" >
+						</el-form-item>
+						<el-form-item label="组员4"  prop="image" >					      
+						</el-form-item>
+						<el-form-item label="组员5"  prop="address" >					  	  
+						</el-form-item>	
+						<el-form-item label="组员6"  prop="address" >
+						</el-form-item>
+						<el-form-item label="组员7"  prop="image" >					      
+						</el-form-item>
+						<el-form-item label="组员8"  prop="address" >					  	  
+						</el-form-item>	
+						<el-form-item label="组员9"  prop="address" >
+						</el-form-item>
+						<el-form-item label="特殊组员"  prop="image" >					      
+						</el-form-item>						
+					  </el-form>
+					  <el-form :model="formData" :inline="true" label-position="right" ref="elFormRef" :rules="rule" label-width="55px">
+					   <el-form-item label=""  prop="address" >
+					   </el-form-item>
+					    <el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+					    <el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+					    <el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+						<el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+						<el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+						<el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+						<el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+						<el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+						<el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+						<el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />					      
+					  </el-form>
+					  <el-form :model="formData" :inline="true" label-position="right" ref="elFormRef" :rules="rule" label-width="55px">
+					   <el-form-item label=""  prop="address" >
+					   </el-form-item>
+					    <el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+					    <el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+					    <el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+							<el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+							<el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+							<el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+							<el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+							<el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+							<el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+							<el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />					      
+					  </el-form>
+					  <el-form :model="formData" :inline="true" label-position="right" ref="elFormRef" :rules="rule" label-width="55px">
+					   <el-form-item label=""  prop="address" >
+					   </el-form-item>
+					    <el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+					    <el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+					    <el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+						<el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+						<el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+						<el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+						<el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+						<el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+						<el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />
+						<el-input class="input-space" v-model="formData.address" :clearable="true"  placeholder="请输入A类废品" style="width: 75px;" />					      
+					  </el-form>        		
+                     </el-scrollbar>                     
+                   </el-dialog>
+
+
+
+     <el-dialog v-model="DismantlingShow" style="width: 800px" lock-scroll :before-close="closeDetailShow" title="查看详情" destroy-on-close>
+       <el-form :model="formData" :inline="true" label-position="right" ref="elFormRef" :rules="rule" label-width="95px">
+         <el-form-item label="工单编号:"  prop="address" >
+           <el-input v-model="formData.address" :clearable="true"  placeholder="请输入抽检数量" style="width: 95px;" />
+         </el-form-item>					
+       </el-form>	  
+     </el-dialog>
+
+          <el-dialog v-model="detailShow" style="width: 800px" lock-scroll :before-close="closeDetailShow" title="查看详情" destroy-on-close>
+            <el-scrollbar height="550px">
+              <el-descriptions column="1" border>
+                <el-descriptions-item label="address字段">
+                  {{ formData.address }}
+                </el-descriptions-item>
+                <el-descriptions-item label="image字段">
+                  {{ formData.image }}
+                </el-descriptions-item>
+                <el-descriptions-item label="name字段">
+                  {{ formData.name }}
+                </el-descriptions-item>
+              </el-descriptions>
+            </el-scrollbar>
+          </el-dialog>
+
+        </el-main>
+
+      </el-container>
+    </el-container>
+
+
+
+
+
+  </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 { ref, reactive } from 'vue'
+
+
+
+
+
+
+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 handleNodeClick = (node,check) => {
+  //存放当前节点的nodeId
+  console.log(node,check);
+
+}
+// 自动化生成的字典(可能为空)以及字段
+const formData = ref({
+        worknum: '',
+        dailyquota: '',
+        name: '',
+        })
+
+
+// 验证规则
+const rule = reactive({
+})
+
+
+
+
+const searchRule = reactive({
+  createdAt: [
+    { validator: (rule, value, callback) => {
+      if (searchInfo.value.startCreatedAt && !searchInfo.value.endCreatedAt) {
+        callback(new Error('请填写结束日期'))
+      } else if (!searchInfo.value.startCreatedAt && searchInfo.value.endCreatedAt) {
+        callback(new Error('请填写开始日期'))
+      } else if (searchInfo.value.startCreatedAt && searchInfo.value.endCreatedAt && (searchInfo.value.startCreatedAt.getTime() === searchInfo.value.endCreatedAt.getTime() || searchInfo.value.startCreatedAt.getTime() > searchInfo.value.endCreatedAt.getTime())) {
+        callback(new Error('开始日期应当早于结束日期'))
+      } else {
+        callback()
+      }
+    }, trigger: 'change' }
+  ],
+})
+
+const elFormRef = ref()
+const elSearchFormRef = ref()
+
+// =========== 表格控制部分 ===========
+const page = ref(1)
+const total = ref(0)
+const pageSize = ref(10)
+const tableData = ref([])
+const searchInfo = ref({})
+
+// 重置
+const onReset = () => {
+  searchInfo.value = {}
+  getTableData()
+}
+
+// 搜索
+const onSubmit = () => {
+  elSearchFormRef.value?.validate(async(valid) => {
+    if (!valid) return
+    page.value = 1
+    pageSize.value = 10
+    getTableData()
+  })
+}
+
+// 分页
+const handleSizeChange = (val) => {
+  pageSize.value = val
+  getTableData()
+}
+
+// 修改页面容量
+const handleCurrentChange = (val) => {
+  page.value = val
+  getTableData()
+}
+
+// 查询
+const getTableData = async() => {
+  const table = await getCompanyList({ page: page.value, pageSize: pageSize.value, ...searchInfo.value })
+  if (table.code === 0) {
+    tableData.value = table.data.list
+    total.value = table.data.total
+    page.value = table.data.page
+    pageSize.value = table.data.pageSize
+  }
+}
+
+getTableData()
+
+// ============== 表格控制部分结束 ===============
+
+// 获取需要的字典 可能为空 按需保留
+const setOptions = async () =>{
+}
+
+// 获取需要的字典 可能为空 按需保留
+setOptions()
+
+
+// 多选数据
+const multipleSelection = ref([])
+// 多选
+const handleSelectionChange = (val) => {
+    multipleSelection.value = val
+}
+
+// 删除行
+const deleteRow = (row) => {
+    ElMessageBox.confirm('确定要删除吗?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+    }).then(() => {
+            deleteCompanyFunc(row)
+        })
+    }
+
+
+// 批量删除控制标记
+const deleteVisible = ref(false)
+
+// 多选删除
+const onDelete = async() => {
+      const ids = []
+      if (multipleSelection.value.length === 0) {
+        ElMessage({
+          type: 'warning',
+          message: '请选择要删除的数据'
+        })
+        return
+      }
+      multipleSelection.value &&
+        multipleSelection.value.map(item => {
+          ids.push(item.ID)
+        })
+      const res = await deleteCompanyByIds({ ids })
+      if (res.code === 0) {
+        ElMessage({
+          type: 'success',
+          message: '删除成功'
+        })
+        if (tableData.value.length === ids.length && page.value > 1) {
+          page.value--
+        }
+        deleteVisible.value = false
+        getTableData()
+      }
+    }
+
+// 行为控制标记(弹窗内部需要增还是改)
+const type = ref('')
+
+// 更新行
+const updateCompanyFunc = async(row) => {
+    const res = await findCompany({ ID: row.ID })
+    type.value = 'update'
+    if (res.code === 0) {
+        formData.value = res.data.recompany
+        dialogFormVisible.value = true
+    }
+}
+
+
+// 删除行
+const deleteCompanyFunc = async (row) => {
+    const res = await deleteCompany({ ID: row.ID })
+    if (res.code === 0) {
+        ElMessage({
+                type: 'success',
+                message: '删除成功'
+            })
+            if (tableData.value.length === 1 && page.value > 1) {
+            page.value--
+        }
+        getTableData()
+    }
+}
+
+// 弹窗控制标记
+const dialogFormVisible = ref(false)
+const positVisible = ref(false)
+const DismantlingShow= ref(false)
+// 查看详情控制标记
+const detailShow = ref(false)
+const dialogTableVisibleShow = ref(false)
+const dialogTableVisibleShow2 = ref(false)
+
+// 打开详情弹窗
+const openDetailShow = () => {
+  detailShow.value = true
+}
+
+
+// 打开详情
+const getDetails = async (row) => {
+  // 打开弹窗
+  const res = await findCompany({ ID: row.ID })
+  if (res.code === 0) {
+    formData.value = res.data.recompany
+    openDetailShow()
+  }
+}
+
+
+// 关闭详情弹窗
+const closeDetailShow = () => {
+  detailShow.value = false
+  formData.value = {
+          address: '',
+          image: '',
+          name: '',
+          }
+}
+
+
+// 打开弹窗
+const openDialog = () => {
+    type.value = 'create'
+    dialogFormVisible.value = true
+}
+
+const dbSelected = () => {
+	
+    type.value = 'create'
+    dialogFormVisible.value = true
+}
+
+const displayDialog2 = () => {
+    type.value = 'create'
+    dialogFormVisible2.value = true
+}
+
+const positDialog = () => {
+    type.value = 'create'
+    positVisible.value = true
+}
+const Dismantling = () => {
+    type.value = 'create'
+    DismantlingShow.value = true
+}
+const dialogTableVisible = () => {
+    type.value = 'create'
+    dialogTableVisibleShow.value = true
+}
+
+const dialogTableVisible2 = () => {
+    type.value = 'create'
+    dialogTableVisibleShow2.value = true
+}
+// 关闭弹窗
+const closeDialog = () => {
+    dialogFormVisible.value = false
+    formData.value = {
+        address: '',
+        image: '',
+        name: '',
+        }
+}
+// 弹窗确定
+const enterDialog = async () => {
+     elFormRef.value?.validate( async (valid) => {
+             if (!valid) return
+              let res
+              switch (type.value) {
+                case 'create':
+                  res = await createCompany(formData.value)
+                  break
+                case 'update':
+                  res = await updateCompany(formData.value)
+                  break
+                default:
+                  res = await createCompany(formData.value)
+                  break
+              }
+              if (res.code === 0) {
+                ElMessage({
+                  type: 'success',
+                  message: '创建/更改成功'
+                })
+                closeDialog()
+                getTableData()
+              }
+      })
+}
+
+</script>
+
+<style>
+.JKWTree-container {
+  display: flex;
+}
+
+.JKWTree-tree {
+  width: 300px;
+  background-color: #fff;
+  padding: 10px;
+  margin-right: 20px;
+}
+
+.JKWTree-tree h3 {
+  font-size: 15px;
+  font-weight: 700;
+  margin: 10px 0;
+}
+
+.JKWTree-content {
+  flex: 1;
+}
+.input-space {
+    margin: 7px;
+  }
+</style>

+ 659 - 0
src/view/performance/Dayreports.vue

@@ -0,0 +1,659 @@
+<template>
+  <div>
+
+    <el-container>
+      <el-aside width="200px">
+        <div class="JKWTree-tree">
+
+          <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">
+                <template #label>
+        <span>
+          创建日期
+          <el-tooltip content="搜索范围是开始日期(包含)至结束日期(不包含)">
+            <el-icon><QuestionFilled /></el-icon>
+          </el-tooltip>
+        </span>
+                </template>
+                <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-button type="primary" icon="search" @click="onSubmit">查询</el-button>
+                <el-button icon="refresh" @click="onReset">重置</el-button>
+              </el-form-item>
+            </el-form>
+          </div>
+          <div class="gva-table-box">
+            <div class="gva-btn-list">
+              <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
+              :data="tableData"
+            				 height="300"
+            				 border
+            				 highlight-current-row
+              @current-change="handleCurrentChange"
+			  @row-dblclick="dbSelected"
+              style="width: 100%">
+              <el-table-column
+            				  fixed
+                prop="worknum"
+                label="工单编号"
+                width="100">
+              </el-table-column>
+              <el-table-column
+            				  fixed
+                prop="name"
+                label="产品名称"
+                width="180">
+              </el-table-column>
+              
+            				<el-table-column
+            				  prop="process"
+            				  label="印件及工序"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="manufacturetime"
+							  label="生产日期"
+							  width="180">
+							</el-table-column>
+            				<el-table-column
+            				  prop="Machine"
+            				  label="机台"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="Team"
+            				  label="班组"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="processsheet"
+							  label="流程单"
+							  width="180">
+							</el-table-column>
+            				
+							<el-table-column
+							  prop="production"
+							  label="车头产量"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="shades"
+            				  label="色度数"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="processwaste"
+            				  label="制程废"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="defective"
+							  label="次品"
+							  width="180">
+							</el-table-column>
+            				<el-table-column
+            				  prop="incomingerror"
+            				  label="来料异常"
+            				  width="180">
+            				</el-table-column>
+            				
+            				<el-table-column
+            				  prop="platework"
+            				  label="装版工时"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="maintenancework"
+            				  label="保养工时"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="proofingwork"
+							  label="打样工时"
+							  width="180">
+							</el-table-column>
+            				<el-table-column
+            				  prop="stopwork"
+            				  label="异常停机工时"
+            				  width="180">
+            				</el-table-column>
+            				
+            				<el-table-column
+            				  prop="runwork"
+            				  label="设备运行工时"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamnumber1"
+            				  label="组员编号1"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="teamname1"
+							  label="组员姓名1"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="teamnumber2"
+            				  label="组员编号2"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamname2"
+            				  label="组员姓名"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+            				  prop="teamnumber3"
+            				  label="组员编号3"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamname3"
+            				  label="组员姓名3"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+            				  prop="teamnumber4"
+            				  label="组员编号4"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamname4"
+            				  label="组员姓名4"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamnumber5"
+            				  label="组员编号5"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamname5"
+            				  label="组员姓名5"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamnumber6"
+            				  label="组员编号6"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamname6"
+            				  label="组员姓名6"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="combinecoefficients"
+            				  label="拆片联拼系数"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="casletcoefficient"
+							  label="拆片小盒系数"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="ratefactor"
+            				  label="工价系数"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="dailyquota"
+							  label="日定额"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="piecesprice "
+            				  label="千件工价"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="addstandards "
+							  label="补产标准"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="creatuser"
+            				  label="创建用户"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="creattime"
+							  label="创建时间"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="updatetime"
+            				  label="修改时间"
+            				  width="180">
+            				</el-table-column>							
+            </el-table>		    
+            <div class="gva-pagination">
+              <el-pagination
+                  layout="total, sizes, prev, pager, next, jumper"
+                  :current-page="page"
+                  :page-size="pageSize"
+                  :page-sizes="[10, 30, 50, 100]"
+                  :total="total"
+                  @current-change="handleCurrentChange"
+                  @size-change="handleSizeChange"
+              />
+            </div>
+          </div>
+          <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" :title="type==='create'?'添加':'修改'" destroy-on-close>
+            <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-form-item>
+                <el-form-item label="name字段:"  prop="name" >
+                  <el-input v-model="formData.name" :clearable="true"  placeholder="请输入name字段" />
+                </el-form-item>
+              </el-form>
+            </el-scrollbar>
+            <template #footer>
+              <div class="dialog-footer">
+                <el-button @click="closeDialog">取 消</el-button>
+                <el-button type="primary" @click="enterDialog">确 定</el-button>
+              </div>
+            </template>
+          </el-dialog>
+
+          <el-dialog v-model="detailShow" style="width: 800px" lock-scroll :before-close="closeDetailShow" title="查看详情" destroy-on-close>
+            <el-scrollbar height="550px">
+              <el-descriptions column="1" border>
+                <el-descriptions-item label="address字段">
+                  {{ formData.address }}
+                </el-descriptions-item>
+                <el-descriptions-item label="image字段">
+                  {{ formData.image }}
+                </el-descriptions-item>
+                <el-descriptions-item label="name字段">
+                  {{ formData.name }}
+                </el-descriptions-item>
+              </el-descriptions>
+            </el-scrollbar>
+          </el-dialog>
+
+        </el-main>
+
+      </el-container>
+    </el-container>
+
+
+
+
+
+  </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 { ref, reactive } from 'vue'
+
+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 handleNodeClick = (node,check) => {
+  //存放当前节点的nodeId
+  console.log(node,check);
+
+}
+// 自动化生成的字典(可能为空)以及字段
+const formData = ref({
+        worknum: '',
+        dailyquota: '',
+        name: '',
+        })
+
+
+// 验证规则
+const rule = reactive({
+})
+
+const searchRule = reactive({
+  createdAt: [
+    { validator: (rule, value, callback) => {
+      if (searchInfo.value.startCreatedAt && !searchInfo.value.endCreatedAt) {
+        callback(new Error('请填写结束日期'))
+      } else if (!searchInfo.value.startCreatedAt && searchInfo.value.endCreatedAt) {
+        callback(new Error('请填写开始日期'))
+      } else if (searchInfo.value.startCreatedAt && searchInfo.value.endCreatedAt && (searchInfo.value.startCreatedAt.getTime() === searchInfo.value.endCreatedAt.getTime() || searchInfo.value.startCreatedAt.getTime() > searchInfo.value.endCreatedAt.getTime())) {
+        callback(new Error('开始日期应当早于结束日期'))
+      } else {
+        callback()
+      }
+    }, trigger: 'change' }
+  ],
+})
+
+const elFormRef = ref()
+const elSearchFormRef = ref()
+
+// =========== 表格控制部分 ===========
+const page = ref(1)
+const total = ref(0)
+const pageSize = ref(10)
+const tableData = ref([])
+const searchInfo = ref({})
+
+// 重置
+const onReset = () => {
+  searchInfo.value = {}
+  getTableData()
+}
+
+// 搜索
+const onSubmit = () => {
+  elSearchFormRef.value?.validate(async(valid) => {
+    if (!valid) return
+    page.value = 1
+    pageSize.value = 10
+    getTableData()
+  })
+}
+
+// 分页
+const handleSizeChange = (val) => {
+  pageSize.value = val
+  getTableData()
+}
+
+// 修改页面容量
+const handleCurrentChange = (val) => {
+  page.value = val
+  getTableData()
+}
+
+// 查询
+const getTableData = async() => {
+  const table = await getCompanyList({ page: page.value, pageSize: pageSize.value, ...searchInfo.value })
+  if (table.code === 0) {
+    tableData.value = table.data.list
+    total.value = table.data.total
+    page.value = table.data.page
+    pageSize.value = table.data.pageSize
+  }
+}
+
+getTableData()
+
+// ============== 表格控制部分结束 ===============
+
+// 获取需要的字典 可能为空 按需保留
+const setOptions = async () =>{
+}
+
+// 获取需要的字典 可能为空 按需保留
+setOptions()
+
+
+// 多选数据
+const multipleSelection = ref([])
+// 多选
+const handleSelectionChange = (val) => {
+    multipleSelection.value = val
+}
+
+// 删除行
+const deleteRow = (row) => {
+    ElMessageBox.confirm('确定要删除吗?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+    }).then(() => {
+            deleteCompanyFunc(row)
+        })
+    }
+
+
+// 批量删除控制标记
+const deleteVisible = ref(false)
+
+// 多选删除
+const onDelete = async() => {
+      const ids = []
+      if (multipleSelection.value.length === 0) {
+        ElMessage({
+          type: 'warning',
+          message: '请选择要删除的数据'
+        })
+        return
+      }
+      multipleSelection.value &&
+        multipleSelection.value.map(item => {
+          ids.push(item.ID)
+        })
+      const res = await deleteCompanyByIds({ ids })
+      if (res.code === 0) {
+        ElMessage({
+          type: 'success',
+          message: '删除成功'
+        })
+        if (tableData.value.length === ids.length && page.value > 1) {
+          page.value--
+        }
+        deleteVisible.value = false
+        getTableData()
+      }
+    }
+
+// 行为控制标记(弹窗内部需要增还是改)
+const type = ref('')
+
+// 更新行
+const updateCompanyFunc = async(row) => {
+    const res = await findCompany({ ID: row.ID })
+    type.value = 'update'
+    if (res.code === 0) {
+        formData.value = res.data.recompany
+        dialogFormVisible.value = true
+    }
+}
+
+
+// 删除行
+const deleteCompanyFunc = async (row) => {
+    const res = await deleteCompany({ ID: row.ID })
+    if (res.code === 0) {
+        ElMessage({
+                type: 'success',
+                message: '删除成功'
+            })
+            if (tableData.value.length === 1 && page.value > 1) {
+            page.value--
+        }
+        getTableData()
+    }
+}
+
+// 弹窗控制标记
+const dialogFormVisible = ref(false)
+
+
+// 查看详情控制标记
+const detailShow = ref(false)
+
+
+// 打开详情弹窗
+const openDetailShow = () => {
+  detailShow.value = true
+}
+
+
+// 打开详情
+const getDetails = async (row) => {
+  // 打开弹窗
+  const res = await findCompany({ ID: row.ID })
+  if (res.code === 0) {
+    formData.value = res.data.recompany
+    openDetailShow()
+  }
+}
+
+
+// 关闭详情弹窗
+const closeDetailShow = () => {
+  detailShow.value = false
+  formData.value = {
+          address: '',
+          image: '',
+          name: '',
+          }
+}
+
+
+// 打开弹窗
+const openDialog = () => {
+    type.value = 'create'
+    dialogFormVisible.value = true
+}
+
+const dbSelected = () => {
+	
+    type.value = 'create'
+    dialogFormVisible.value = true
+}
+
+// 关闭弹窗
+const closeDialog = () => {
+    dialogFormVisible.value = false
+    formData.value = {
+        address: '',
+        image: '',
+        name: '',
+        }
+}
+// 弹窗确定
+const enterDialog = async () => {
+     elFormRef.value?.validate( async (valid) => {
+             if (!valid) return
+              let res
+              switch (type.value) {
+                case 'create':
+                  res = await createCompany(formData.value)
+                  break
+                case 'update':
+                  res = await updateCompany(formData.value)
+                  break
+                default:
+                  res = await createCompany(formData.value)
+                  break
+              }
+              if (res.code === 0) {
+                ElMessage({
+                  type: 'success',
+                  message: '创建/更改成功'
+                })
+                closeDialog()
+                getTableData()
+              }
+      })
+}
+
+</script>
+
+<style>
+.JKWTree-container {
+  display: flex;
+}
+
+.JKWTree-tree {
+  width: 300px;
+  background-color: #fff;
+  padding: 10px;
+  margin-right: 20px;
+}
+
+.JKWTree-tree h3 {
+  font-size: 15px;
+  font-weight: 700;
+  margin: 10px 0;
+}
+
+.JKWTree-content {
+  flex: 1;
+}
+</style>

+ 659 - 0
src/view/performance/MachineDocuments.vue

@@ -0,0 +1,659 @@
+<template>
+  <div>
+
+    <el-container>
+      <el-aside width="200px">
+        <div class="JKWTree-tree">
+
+          <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">
+                <template #label>
+        <span>
+          创建日期
+          <el-tooltip content="搜索范围是开始日期(包含)至结束日期(不包含)">
+            <el-icon><QuestionFilled /></el-icon>
+          </el-tooltip>
+        </span>
+                </template>
+                <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-button type="primary" icon="search" @click="onSubmit">查询</el-button>
+                <el-button icon="refresh" @click="onReset">重置</el-button>
+              </el-form-item>
+            </el-form>
+          </div>
+          <div class="gva-table-box">
+            <div class="gva-btn-list">
+              <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
+              :data="tableData"
+            				 height="300"
+            				 border
+            				 highlight-current-row
+              @current-change="handleCurrentChange"
+			  @row-dblclick="dbSelected"
+              style="width: 100%">
+              <el-table-column
+            				  fixed
+                prop="worknum"
+                label="工单编号"
+                width="100">
+              </el-table-column>
+              <el-table-column
+            				  fixed
+                prop="name"
+                label="产品名称"
+                width="180">
+              </el-table-column>
+              
+            				<el-table-column
+            				  prop="process"
+            				  label="印件及工序"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="manufacturetime"
+							  label="生产日期"
+							  width="180">
+							</el-table-column>
+            				<el-table-column
+            				  prop="Machine"
+            				  label="机台"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="Team"
+            				  label="班组"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="processsheet"
+							  label="流程单"
+							  width="180">
+							</el-table-column>
+            				
+							<el-table-column
+							  prop="production"
+							  label="车头产量"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="shades"
+            				  label="色度数"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="processwaste"
+            				  label="制程废"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="defective"
+							  label="次品"
+							  width="180">
+							</el-table-column>
+            				<el-table-column
+            				  prop="incomingerror"
+            				  label="来料异常"
+            				  width="180">
+            				</el-table-column>
+            				
+            				<el-table-column
+            				  prop="platework"
+            				  label="装版工时"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="maintenancework"
+            				  label="保养工时"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="proofingwork"
+							  label="打样工时"
+							  width="180">
+							</el-table-column>
+            				<el-table-column
+            				  prop="stopwork"
+            				  label="异常停机工时"
+            				  width="180">
+            				</el-table-column>
+            				
+            				<el-table-column
+            				  prop="runwork"
+            				  label="设备运行工时"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamnumber1"
+            				  label="组员编号1"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="teamname1"
+							  label="组员姓名1"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="teamnumber2"
+            				  label="组员编号2"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamname2"
+            				  label="组员姓名"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+            				  prop="teamnumber3"
+            				  label="组员编号3"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamname3"
+            				  label="组员姓名3"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+            				  prop="teamnumber4"
+            				  label="组员编号4"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamname4"
+            				  label="组员姓名4"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamnumber5"
+            				  label="组员编号5"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamname5"
+            				  label="组员姓名5"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamnumber6"
+            				  label="组员编号6"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamname6"
+            				  label="组员姓名6"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="combinecoefficients"
+            				  label="拆片联拼系数"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="casletcoefficient"
+							  label="拆片小盒系数"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="ratefactor"
+            				  label="工价系数"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="dailyquota"
+							  label="日定额"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="piecesprice "
+            				  label="千件工价"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="addstandards "
+							  label="补产标准"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="creatuser"
+            				  label="创建用户"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="creattime"
+							  label="创建时间"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="updatetime"
+            				  label="修改时间"
+            				  width="180">
+            				</el-table-column>							
+            </el-table>		    
+            <div class="gva-pagination">
+              <el-pagination
+                  layout="total, sizes, prev, pager, next, jumper"
+                  :current-page="page"
+                  :page-size="pageSize"
+                  :page-sizes="[10, 30, 50, 100]"
+                  :total="total"
+                  @current-change="handleCurrentChange"
+                  @size-change="handleSizeChange"
+              />
+            </div>
+          </div>
+          <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" :title="type==='create'?'添加':'修改'" destroy-on-close>
+            <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-form-item>
+                <el-form-item label="name字段:"  prop="name" >
+                  <el-input v-model="formData.name" :clearable="true"  placeholder="请输入name字段" />
+                </el-form-item>
+              </el-form>
+            </el-scrollbar>
+            <template #footer>
+              <div class="dialog-footer">
+                <el-button @click="closeDialog">取 消</el-button>
+                <el-button type="primary" @click="enterDialog">确 定</el-button>
+              </div>
+            </template>
+          </el-dialog>
+
+          <el-dialog v-model="detailShow" style="width: 800px" lock-scroll :before-close="closeDetailShow" title="查看详情" destroy-on-close>
+            <el-scrollbar height="550px">
+              <el-descriptions column="1" border>
+                <el-descriptions-item label="address字段">
+                  {{ formData.address }}
+                </el-descriptions-item>
+                <el-descriptions-item label="image字段">
+                  {{ formData.image }}
+                </el-descriptions-item>
+                <el-descriptions-item label="name字段">
+                  {{ formData.name }}
+                </el-descriptions-item>
+              </el-descriptions>
+            </el-scrollbar>
+          </el-dialog>
+
+        </el-main>
+
+      </el-container>
+    </el-container>
+
+
+
+
+
+  </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 { ref, reactive } from 'vue'
+
+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 handleNodeClick = (node,check) => {
+  //存放当前节点的nodeId
+  console.log(node,check);
+
+}
+// 自动化生成的字典(可能为空)以及字段
+const formData = ref({
+        worknum: '',
+        dailyquota: '',
+        name: '',
+        })
+
+
+// 验证规则
+const rule = reactive({
+})
+
+const searchRule = reactive({
+  createdAt: [
+    { validator: (rule, value, callback) => {
+      if (searchInfo.value.startCreatedAt && !searchInfo.value.endCreatedAt) {
+        callback(new Error('请填写结束日期'))
+      } else if (!searchInfo.value.startCreatedAt && searchInfo.value.endCreatedAt) {
+        callback(new Error('请填写开始日期'))
+      } else if (searchInfo.value.startCreatedAt && searchInfo.value.endCreatedAt && (searchInfo.value.startCreatedAt.getTime() === searchInfo.value.endCreatedAt.getTime() || searchInfo.value.startCreatedAt.getTime() > searchInfo.value.endCreatedAt.getTime())) {
+        callback(new Error('开始日期应当早于结束日期'))
+      } else {
+        callback()
+      }
+    }, trigger: 'change' }
+  ],
+})
+
+const elFormRef = ref()
+const elSearchFormRef = ref()
+
+// =========== 表格控制部分 ===========
+const page = ref(1)
+const total = ref(0)
+const pageSize = ref(10)
+const tableData = ref([])
+const searchInfo = ref({})
+
+// 重置
+const onReset = () => {
+  searchInfo.value = {}
+  getTableData()
+}
+
+// 搜索
+const onSubmit = () => {
+  elSearchFormRef.value?.validate(async(valid) => {
+    if (!valid) return
+    page.value = 1
+    pageSize.value = 10
+    getTableData()
+  })
+}
+
+// 分页
+const handleSizeChange = (val) => {
+  pageSize.value = val
+  getTableData()
+}
+
+// 修改页面容量
+const handleCurrentChange = (val) => {
+  page.value = val
+  getTableData()
+}
+
+// 查询
+const getTableData = async() => {
+  const table = await getCompanyList({ page: page.value, pageSize: pageSize.value, ...searchInfo.value })
+  if (table.code === 0) {
+    tableData.value = table.data.list
+    total.value = table.data.total
+    page.value = table.data.page
+    pageSize.value = table.data.pageSize
+  }
+}
+
+getTableData()
+
+// ============== 表格控制部分结束 ===============
+
+// 获取需要的字典 可能为空 按需保留
+const setOptions = async () =>{
+}
+
+// 获取需要的字典 可能为空 按需保留
+setOptions()
+
+
+// 多选数据
+const multipleSelection = ref([])
+// 多选
+const handleSelectionChange = (val) => {
+    multipleSelection.value = val
+}
+
+// 删除行
+const deleteRow = (row) => {
+    ElMessageBox.confirm('确定要删除吗?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+    }).then(() => {
+            deleteCompanyFunc(row)
+        })
+    }
+
+
+// 批量删除控制标记
+const deleteVisible = ref(false)
+
+// 多选删除
+const onDelete = async() => {
+      const ids = []
+      if (multipleSelection.value.length === 0) {
+        ElMessage({
+          type: 'warning',
+          message: '请选择要删除的数据'
+        })
+        return
+      }
+      multipleSelection.value &&
+        multipleSelection.value.map(item => {
+          ids.push(item.ID)
+        })
+      const res = await deleteCompanyByIds({ ids })
+      if (res.code === 0) {
+        ElMessage({
+          type: 'success',
+          message: '删除成功'
+        })
+        if (tableData.value.length === ids.length && page.value > 1) {
+          page.value--
+        }
+        deleteVisible.value = false
+        getTableData()
+      }
+    }
+
+// 行为控制标记(弹窗内部需要增还是改)
+const type = ref('')
+
+// 更新行
+const updateCompanyFunc = async(row) => {
+    const res = await findCompany({ ID: row.ID })
+    type.value = 'update'
+    if (res.code === 0) {
+        formData.value = res.data.recompany
+        dialogFormVisible.value = true
+    }
+}
+
+
+// 删除行
+const deleteCompanyFunc = async (row) => {
+    const res = await deleteCompany({ ID: row.ID })
+    if (res.code === 0) {
+        ElMessage({
+                type: 'success',
+                message: '删除成功'
+            })
+            if (tableData.value.length === 1 && page.value > 1) {
+            page.value--
+        }
+        getTableData()
+    }
+}
+
+// 弹窗控制标记
+const dialogFormVisible = ref(false)
+
+
+// 查看详情控制标记
+const detailShow = ref(false)
+
+
+// 打开详情弹窗
+const openDetailShow = () => {
+  detailShow.value = true
+}
+
+
+// 打开详情
+const getDetails = async (row) => {
+  // 打开弹窗
+  const res = await findCompany({ ID: row.ID })
+  if (res.code === 0) {
+    formData.value = res.data.recompany
+    openDetailShow()
+  }
+}
+
+
+// 关闭详情弹窗
+const closeDetailShow = () => {
+  detailShow.value = false
+  formData.value = {
+          address: '',
+          image: '',
+          name: '',
+          }
+}
+
+
+// 打开弹窗
+const openDialog = () => {
+    type.value = 'create'
+    dialogFormVisible.value = true
+}
+
+const dbSelected = () => {
+	
+    type.value = 'create'
+    dialogFormVisible.value = true
+}
+
+// 关闭弹窗
+const closeDialog = () => {
+    dialogFormVisible.value = false
+    formData.value = {
+        address: '',
+        image: '',
+        name: '',
+        }
+}
+// 弹窗确定
+const enterDialog = async () => {
+     elFormRef.value?.validate( async (valid) => {
+             if (!valid) return
+              let res
+              switch (type.value) {
+                case 'create':
+                  res = await createCompany(formData.value)
+                  break
+                case 'update':
+                  res = await updateCompany(formData.value)
+                  break
+                default:
+                  res = await createCompany(formData.value)
+                  break
+              }
+              if (res.code === 0) {
+                ElMessage({
+                  type: 'success',
+                  message: '创建/更改成功'
+                })
+                closeDialog()
+                getTableData()
+              }
+      })
+}
+
+</script>
+
+<style>
+.JKWTree-container {
+  display: flex;
+}
+
+.JKWTree-tree {
+  width: 300px;
+  background-color: #fff;
+  padding: 10px;
+  margin-right: 20px;
+}
+
+.JKWTree-tree h3 {
+  font-size: 15px;
+  font-weight: 700;
+  margin: 10px 0;
+}
+
+.JKWTree-content {
+  flex: 1;
+}
+</style>

+ 659 - 0
src/view/performance/Manualdocuments.vue

@@ -0,0 +1,659 @@
+<template>
+  <div>
+
+    <el-container>
+      <el-aside width="200px">
+        <div class="JKWTree-tree">
+
+          <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">
+                <template #label>
+        <span>
+          创建日期
+          <el-tooltip content="搜索范围是开始日期(包含)至结束日期(不包含)">
+            <el-icon><QuestionFilled /></el-icon>
+          </el-tooltip>
+        </span>
+                </template>
+                <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-button type="primary" icon="search" @click="onSubmit">查询</el-button>
+                <el-button icon="refresh" @click="onReset">重置</el-button>
+              </el-form-item>
+            </el-form>
+          </div>
+          <div class="gva-table-box">
+            <div class="gva-btn-list">
+              <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
+              :data="tableData"
+            				 height="300"
+            				 border
+            				 highlight-current-row
+              @current-change="handleCurrentChange"
+			  @row-dblclick="dbSelected"
+              style="width: 100%">
+              <el-table-column
+            				  fixed
+                prop="worknum"
+                label="工单编号"
+                width="100">
+              </el-table-column>
+              <el-table-column
+            				  fixed
+                prop="name"
+                label="产品名称"
+                width="180">
+              </el-table-column>
+              
+            				<el-table-column
+            				  prop="process"
+            				  label="印件及工序"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="manufacturetime"
+							  label="生产日期"
+							  width="180">
+							</el-table-column>
+            				<el-table-column
+            				  prop="Machine"
+            				  label="机台"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="Team"
+            				  label="班组"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="processsheet"
+							  label="流程单"
+							  width="180">
+							</el-table-column>
+            				
+							<el-table-column
+							  prop="production"
+							  label="车头产量"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="shades"
+            				  label="色度数"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="processwaste"
+            				  label="制程废"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="defective"
+							  label="次品"
+							  width="180">
+							</el-table-column>
+            				<el-table-column
+            				  prop="incomingerror"
+            				  label="来料异常"
+            				  width="180">
+            				</el-table-column>
+            				
+            				<el-table-column
+            				  prop="platework"
+            				  label="装版工时"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="maintenancework"
+            				  label="保养工时"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="proofingwork"
+							  label="打样工时"
+							  width="180">
+							</el-table-column>
+            				<el-table-column
+            				  prop="stopwork"
+            				  label="异常停机工时"
+            				  width="180">
+            				</el-table-column>
+            				
+            				<el-table-column
+            				  prop="runwork"
+            				  label="设备运行工时"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamnumber1"
+            				  label="组员编号1"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="teamname1"
+							  label="组员姓名1"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="teamnumber2"
+            				  label="组员编号2"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamname2"
+            				  label="组员姓名"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+            				  prop="teamnumber3"
+            				  label="组员编号3"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamname3"
+            				  label="组员姓名3"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+            				  prop="teamnumber4"
+            				  label="组员编号4"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamname4"
+            				  label="组员姓名4"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamnumber5"
+            				  label="组员编号5"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamname5"
+            				  label="组员姓名5"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamnumber6"
+            				  label="组员编号6"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamname6"
+            				  label="组员姓名6"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="combinecoefficients"
+            				  label="拆片联拼系数"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="casletcoefficient"
+							  label="拆片小盒系数"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="ratefactor"
+            				  label="工价系数"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="dailyquota"
+							  label="日定额"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="piecesprice "
+            				  label="千件工价"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="addstandards "
+							  label="补产标准"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="creatuser"
+            				  label="创建用户"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="creattime"
+							  label="创建时间"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="updatetime"
+            				  label="修改时间"
+            				  width="180">
+            				</el-table-column>							
+            </el-table>		    
+            <div class="gva-pagination">
+              <el-pagination
+                  layout="total, sizes, prev, pager, next, jumper"
+                  :current-page="page"
+                  :page-size="pageSize"
+                  :page-sizes="[10, 30, 50, 100]"
+                  :total="total"
+                  @current-change="handleCurrentChange"
+                  @size-change="handleSizeChange"
+              />
+            </div>
+          </div>
+          <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" :title="type==='create'?'添加':'修改'" destroy-on-close>
+            <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-form-item>
+                <el-form-item label="name字段:"  prop="name" >
+                  <el-input v-model="formData.name" :clearable="true"  placeholder="请输入name字段" />
+                </el-form-item>
+              </el-form>
+            </el-scrollbar>
+            <template #footer>
+              <div class="dialog-footer">
+                <el-button @click="closeDialog">取 消</el-button>
+                <el-button type="primary" @click="enterDialog">确 定</el-button>
+              </div>
+            </template>
+          </el-dialog>
+
+          <el-dialog v-model="detailShow" style="width: 800px" lock-scroll :before-close="closeDetailShow" title="查看详情" destroy-on-close>
+            <el-scrollbar height="550px">
+              <el-descriptions column="1" border>
+                <el-descriptions-item label="address字段">
+                  {{ formData.address }}
+                </el-descriptions-item>
+                <el-descriptions-item label="image字段">
+                  {{ formData.image }}
+                </el-descriptions-item>
+                <el-descriptions-item label="name字段">
+                  {{ formData.name }}
+                </el-descriptions-item>
+              </el-descriptions>
+            </el-scrollbar>
+          </el-dialog>
+
+        </el-main>
+
+      </el-container>
+    </el-container>
+
+
+
+
+
+  </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 { ref, reactive } from 'vue'
+
+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 handleNodeClick = (node,check) => {
+  //存放当前节点的nodeId
+  console.log(node,check);
+
+}
+// 自动化生成的字典(可能为空)以及字段
+const formData = ref({
+        worknum: '',
+        dailyquota: '',
+        name: '',
+        })
+
+
+// 验证规则
+const rule = reactive({
+})
+
+const searchRule = reactive({
+  createdAt: [
+    { validator: (rule, value, callback) => {
+      if (searchInfo.value.startCreatedAt && !searchInfo.value.endCreatedAt) {
+        callback(new Error('请填写结束日期'))
+      } else if (!searchInfo.value.startCreatedAt && searchInfo.value.endCreatedAt) {
+        callback(new Error('请填写开始日期'))
+      } else if (searchInfo.value.startCreatedAt && searchInfo.value.endCreatedAt && (searchInfo.value.startCreatedAt.getTime() === searchInfo.value.endCreatedAt.getTime() || searchInfo.value.startCreatedAt.getTime() > searchInfo.value.endCreatedAt.getTime())) {
+        callback(new Error('开始日期应当早于结束日期'))
+      } else {
+        callback()
+      }
+    }, trigger: 'change' }
+  ],
+})
+
+const elFormRef = ref()
+const elSearchFormRef = ref()
+
+// =========== 表格控制部分 ===========
+const page = ref(1)
+const total = ref(0)
+const pageSize = ref(10)
+const tableData = ref([])
+const searchInfo = ref({})
+
+// 重置
+const onReset = () => {
+  searchInfo.value = {}
+  getTableData()
+}
+
+// 搜索
+const onSubmit = () => {
+  elSearchFormRef.value?.validate(async(valid) => {
+    if (!valid) return
+    page.value = 1
+    pageSize.value = 10
+    getTableData()
+  })
+}
+
+// 分页
+const handleSizeChange = (val) => {
+  pageSize.value = val
+  getTableData()
+}
+
+// 修改页面容量
+const handleCurrentChange = (val) => {
+  page.value = val
+  getTableData()
+}
+
+// 查询
+const getTableData = async() => {
+  const table = await getCompanyList({ page: page.value, pageSize: pageSize.value, ...searchInfo.value })
+  if (table.code === 0) {
+    tableData.value = table.data.list
+    total.value = table.data.total
+    page.value = table.data.page
+    pageSize.value = table.data.pageSize
+  }
+}
+
+getTableData()
+
+// ============== 表格控制部分结束 ===============
+
+// 获取需要的字典 可能为空 按需保留
+const setOptions = async () =>{
+}
+
+// 获取需要的字典 可能为空 按需保留
+setOptions()
+
+
+// 多选数据
+const multipleSelection = ref([])
+// 多选
+const handleSelectionChange = (val) => {
+    multipleSelection.value = val
+}
+
+// 删除行
+const deleteRow = (row) => {
+    ElMessageBox.confirm('确定要删除吗?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+    }).then(() => {
+            deleteCompanyFunc(row)
+        })
+    }
+
+
+// 批量删除控制标记
+const deleteVisible = ref(false)
+
+// 多选删除
+const onDelete = async() => {
+      const ids = []
+      if (multipleSelection.value.length === 0) {
+        ElMessage({
+          type: 'warning',
+          message: '请选择要删除的数据'
+        })
+        return
+      }
+      multipleSelection.value &&
+        multipleSelection.value.map(item => {
+          ids.push(item.ID)
+        })
+      const res = await deleteCompanyByIds({ ids })
+      if (res.code === 0) {
+        ElMessage({
+          type: 'success',
+          message: '删除成功'
+        })
+        if (tableData.value.length === ids.length && page.value > 1) {
+          page.value--
+        }
+        deleteVisible.value = false
+        getTableData()
+      }
+    }
+
+// 行为控制标记(弹窗内部需要增还是改)
+const type = ref('')
+
+// 更新行
+const updateCompanyFunc = async(row) => {
+    const res = await findCompany({ ID: row.ID })
+    type.value = 'update'
+    if (res.code === 0) {
+        formData.value = res.data.recompany
+        dialogFormVisible.value = true
+    }
+}
+
+
+// 删除行
+const deleteCompanyFunc = async (row) => {
+    const res = await deleteCompany({ ID: row.ID })
+    if (res.code === 0) {
+        ElMessage({
+                type: 'success',
+                message: '删除成功'
+            })
+            if (tableData.value.length === 1 && page.value > 1) {
+            page.value--
+        }
+        getTableData()
+    }
+}
+
+// 弹窗控制标记
+const dialogFormVisible = ref(false)
+
+
+// 查看详情控制标记
+const detailShow = ref(false)
+
+
+// 打开详情弹窗
+const openDetailShow = () => {
+  detailShow.value = true
+}
+
+
+// 打开详情
+const getDetails = async (row) => {
+  // 打开弹窗
+  const res = await findCompany({ ID: row.ID })
+  if (res.code === 0) {
+    formData.value = res.data.recompany
+    openDetailShow()
+  }
+}
+
+
+// 关闭详情弹窗
+const closeDetailShow = () => {
+  detailShow.value = false
+  formData.value = {
+          address: '',
+          image: '',
+          name: '',
+          }
+}
+
+
+// 打开弹窗
+const openDialog = () => {
+    type.value = 'create'
+    dialogFormVisible.value = true
+}
+
+const dbSelected = () => {
+	
+    type.value = 'create'
+    dialogFormVisible.value = true
+}
+
+// 关闭弹窗
+const closeDialog = () => {
+    dialogFormVisible.value = false
+    formData.value = {
+        address: '',
+        image: '',
+        name: '',
+        }
+}
+// 弹窗确定
+const enterDialog = async () => {
+     elFormRef.value?.validate( async (valid) => {
+             if (!valid) return
+              let res
+              switch (type.value) {
+                case 'create':
+                  res = await createCompany(formData.value)
+                  break
+                case 'update':
+                  res = await updateCompany(formData.value)
+                  break
+                default:
+                  res = await createCompany(formData.value)
+                  break
+              }
+              if (res.code === 0) {
+                ElMessage({
+                  type: 'success',
+                  message: '创建/更改成功'
+                })
+                closeDialog()
+                getTableData()
+              }
+      })
+}
+
+</script>
+
+<style>
+.JKWTree-container {
+  display: flex;
+}
+
+.JKWTree-tree {
+  width: 300px;
+  background-color: #fff;
+  padding: 10px;
+  margin-right: 20px;
+}
+
+.JKWTree-tree h3 {
+  font-size: 15px;
+  font-weight: 700;
+  margin: 10px 0;
+}
+
+.JKWTree-content {
+  flex: 1;
+}
+</style>

+ 659 - 0
src/view/performance/Packagingoutput.vue

@@ -0,0 +1,659 @@
+<template>
+  <div>
+
+    <el-container>
+      <el-aside width="200px">
+        <div class="JKWTree-tree">
+
+          <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">
+                <template #label>
+        <span>
+          创建日期
+          <el-tooltip content="搜索范围是开始日期(包含)至结束日期(不包含)">
+            <el-icon><QuestionFilled /></el-icon>
+          </el-tooltip>
+        </span>
+                </template>
+                <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-button type="primary" icon="search" @click="onSubmit">查询</el-button>
+                <el-button icon="refresh" @click="onReset">重置</el-button>
+              </el-form-item>
+            </el-form>
+          </div>
+          <div class="gva-table-box">
+            <div class="gva-btn-list">
+              <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
+              :data="tableData"
+            				 height="300"
+            				 border
+            				 highlight-current-row
+              @current-change="handleCurrentChange"
+			  @row-dblclick="dbSelected"
+              style="width: 100%">
+              <el-table-column
+            				  fixed
+                prop="worknum"
+                label="工单编号"
+                width="100">
+              </el-table-column>
+              <el-table-column
+            				  fixed
+                prop="name"
+                label="产品名称"
+                width="180">
+              </el-table-column>
+              
+            				<el-table-column
+            				  prop="process"
+            				  label="印件及工序"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="manufacturetime"
+							  label="生产日期"
+							  width="180">
+							</el-table-column>
+            				<el-table-column
+            				  prop="Machine"
+            				  label="机台"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="Team"
+            				  label="班组"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="processsheet"
+							  label="流程单"
+							  width="180">
+							</el-table-column>
+            				
+							<el-table-column
+							  prop="production"
+							  label="车头产量"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="shades"
+            				  label="色度数"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="processwaste"
+            				  label="制程废"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="defective"
+							  label="次品"
+							  width="180">
+							</el-table-column>
+            				<el-table-column
+            				  prop="incomingerror"
+            				  label="来料异常"
+            				  width="180">
+            				</el-table-column>
+            				
+            				<el-table-column
+            				  prop="platework"
+            				  label="装版工时"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="maintenancework"
+            				  label="保养工时"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="proofingwork"
+							  label="打样工时"
+							  width="180">
+							</el-table-column>
+            				<el-table-column
+            				  prop="stopwork"
+            				  label="异常停机工时"
+            				  width="180">
+            				</el-table-column>
+            				
+            				<el-table-column
+            				  prop="runwork"
+            				  label="设备运行工时"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamnumber1"
+            				  label="组员编号1"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="teamname1"
+							  label="组员姓名1"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="teamnumber2"
+            				  label="组员编号2"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamname2"
+            				  label="组员姓名"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+            				  prop="teamnumber3"
+            				  label="组员编号3"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamname3"
+            				  label="组员姓名3"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+            				  prop="teamnumber4"
+            				  label="组员编号4"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamname4"
+            				  label="组员姓名4"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamnumber5"
+            				  label="组员编号5"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamname5"
+            				  label="组员姓名5"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamnumber6"
+            				  label="组员编号6"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="teamname6"
+            				  label="组员姓名6"
+            				  width="180">
+            				</el-table-column>
+            				<el-table-column
+            				  prop="combinecoefficients"
+            				  label="拆片联拼系数"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="casletcoefficient"
+							  label="拆片小盒系数"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="ratefactor"
+            				  label="工价系数"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="dailyquota"
+							  label="日定额"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="piecesprice "
+            				  label="千件工价"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="addstandards "
+							  label="补产标准"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="creatuser"
+            				  label="创建用户"
+            				  width="180">
+            				</el-table-column>
+							<el-table-column
+							  prop="creattime"
+							  label="创建时间"
+							  width="180">
+							</el-table-column>
+            				
+            				<el-table-column
+            				  prop="updatetime"
+            				  label="修改时间"
+            				  width="180">
+            				</el-table-column>							
+            </el-table>		    
+            <div class="gva-pagination">
+              <el-pagination
+                  layout="total, sizes, prev, pager, next, jumper"
+                  :current-page="page"
+                  :page-size="pageSize"
+                  :page-sizes="[10, 30, 50, 100]"
+                  :total="total"
+                  @current-change="handleCurrentChange"
+                  @size-change="handleSizeChange"
+              />
+            </div>
+          </div>
+          <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" :title="type==='create'?'添加':'修改'" destroy-on-close>
+            <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-form-item>
+                <el-form-item label="name字段:"  prop="name" >
+                  <el-input v-model="formData.name" :clearable="true"  placeholder="请输入name字段" />
+                </el-form-item>
+              </el-form>
+            </el-scrollbar>
+            <template #footer>
+              <div class="dialog-footer">
+                <el-button @click="closeDialog">取 消</el-button>
+                <el-button type="primary" @click="enterDialog">确 定</el-button>
+              </div>
+            </template>
+          </el-dialog>
+
+          <el-dialog v-model="detailShow" style="width: 800px" lock-scroll :before-close="closeDetailShow" title="查看详情" destroy-on-close>
+            <el-scrollbar height="550px">
+              <el-descriptions column="1" border>
+                <el-descriptions-item label="address字段">
+                  {{ formData.address }}
+                </el-descriptions-item>
+                <el-descriptions-item label="image字段">
+                  {{ formData.image }}
+                </el-descriptions-item>
+                <el-descriptions-item label="name字段">
+                  {{ formData.name }}
+                </el-descriptions-item>
+              </el-descriptions>
+            </el-scrollbar>
+          </el-dialog>
+
+        </el-main>
+
+      </el-container>
+    </el-container>
+
+
+
+
+
+  </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 { ref, reactive } from 'vue'
+
+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 handleNodeClick = (node,check) => {
+  //存放当前节点的nodeId
+  console.log(node,check);
+
+}
+// 自动化生成的字典(可能为空)以及字段
+const formData = ref({
+        worknum: '',
+        dailyquota: '',
+        name: '',
+        })
+
+
+// 验证规则
+const rule = reactive({
+})
+
+const searchRule = reactive({
+  createdAt: [
+    { validator: (rule, value, callback) => {
+      if (searchInfo.value.startCreatedAt && !searchInfo.value.endCreatedAt) {
+        callback(new Error('请填写结束日期'))
+      } else if (!searchInfo.value.startCreatedAt && searchInfo.value.endCreatedAt) {
+        callback(new Error('请填写开始日期'))
+      } else if (searchInfo.value.startCreatedAt && searchInfo.value.endCreatedAt && (searchInfo.value.startCreatedAt.getTime() === searchInfo.value.endCreatedAt.getTime() || searchInfo.value.startCreatedAt.getTime() > searchInfo.value.endCreatedAt.getTime())) {
+        callback(new Error('开始日期应当早于结束日期'))
+      } else {
+        callback()
+      }
+    }, trigger: 'change' }
+  ],
+})
+
+const elFormRef = ref()
+const elSearchFormRef = ref()
+
+// =========== 表格控制部分 ===========
+const page = ref(1)
+const total = ref(0)
+const pageSize = ref(10)
+const tableData = ref([])
+const searchInfo = ref({})
+
+// 重置
+const onReset = () => {
+  searchInfo.value = {}
+  getTableData()
+}
+
+// 搜索
+const onSubmit = () => {
+  elSearchFormRef.value?.validate(async(valid) => {
+    if (!valid) return
+    page.value = 1
+    pageSize.value = 10
+    getTableData()
+  })
+}
+
+// 分页
+const handleSizeChange = (val) => {
+  pageSize.value = val
+  getTableData()
+}
+
+// 修改页面容量
+const handleCurrentChange = (val) => {
+  page.value = val
+  getTableData()
+}
+
+// 查询
+const getTableData = async() => {
+  const table = await getCompanyList({ page: page.value, pageSize: pageSize.value, ...searchInfo.value })
+  if (table.code === 0) {
+    tableData.value = table.data.list
+    total.value = table.data.total
+    page.value = table.data.page
+    pageSize.value = table.data.pageSize
+  }
+}
+
+getTableData()
+
+// ============== 表格控制部分结束 ===============
+
+// 获取需要的字典 可能为空 按需保留
+const setOptions = async () =>{
+}
+
+// 获取需要的字典 可能为空 按需保留
+setOptions()
+
+
+// 多选数据
+const multipleSelection = ref([])
+// 多选
+const handleSelectionChange = (val) => {
+    multipleSelection.value = val
+}
+
+// 删除行
+const deleteRow = (row) => {
+    ElMessageBox.confirm('确定要删除吗?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+    }).then(() => {
+            deleteCompanyFunc(row)
+        })
+    }
+
+
+// 批量删除控制标记
+const deleteVisible = ref(false)
+
+// 多选删除
+const onDelete = async() => {
+      const ids = []
+      if (multipleSelection.value.length === 0) {
+        ElMessage({
+          type: 'warning',
+          message: '请选择要删除的数据'
+        })
+        return
+      }
+      multipleSelection.value &&
+        multipleSelection.value.map(item => {
+          ids.push(item.ID)
+        })
+      const res = await deleteCompanyByIds({ ids })
+      if (res.code === 0) {
+        ElMessage({
+          type: 'success',
+          message: '删除成功'
+        })
+        if (tableData.value.length === ids.length && page.value > 1) {
+          page.value--
+        }
+        deleteVisible.value = false
+        getTableData()
+      }
+    }
+
+// 行为控制标记(弹窗内部需要增还是改)
+const type = ref('')
+
+// 更新行
+const updateCompanyFunc = async(row) => {
+    const res = await findCompany({ ID: row.ID })
+    type.value = 'update'
+    if (res.code === 0) {
+        formData.value = res.data.recompany
+        dialogFormVisible.value = true
+    }
+}
+
+
+// 删除行
+const deleteCompanyFunc = async (row) => {
+    const res = await deleteCompany({ ID: row.ID })
+    if (res.code === 0) {
+        ElMessage({
+                type: 'success',
+                message: '删除成功'
+            })
+            if (tableData.value.length === 1 && page.value > 1) {
+            page.value--
+        }
+        getTableData()
+    }
+}
+
+// 弹窗控制标记
+const dialogFormVisible = ref(false)
+
+
+// 查看详情控制标记
+const detailShow = ref(false)
+
+
+// 打开详情弹窗
+const openDetailShow = () => {
+  detailShow.value = true
+}
+
+
+// 打开详情
+const getDetails = async (row) => {
+  // 打开弹窗
+  const res = await findCompany({ ID: row.ID })
+  if (res.code === 0) {
+    formData.value = res.data.recompany
+    openDetailShow()
+  }
+}
+
+
+// 关闭详情弹窗
+const closeDetailShow = () => {
+  detailShow.value = false
+  formData.value = {
+          address: '',
+          image: '',
+          name: '',
+          }
+}
+
+
+// 打开弹窗
+const openDialog = () => {
+    type.value = 'create'
+    dialogFormVisible.value = true
+}
+
+const dbSelected = () => {
+	
+    type.value = 'create'
+    dialogFormVisible.value = true
+}
+
+// 关闭弹窗
+const closeDialog = () => {
+    dialogFormVisible.value = false
+    formData.value = {
+        address: '',
+        image: '',
+        name: '',
+        }
+}
+// 弹窗确定
+const enterDialog = async () => {
+     elFormRef.value?.validate( async (valid) => {
+             if (!valid) return
+              let res
+              switch (type.value) {
+                case 'create':
+                  res = await createCompany(formData.value)
+                  break
+                case 'update':
+                  res = await updateCompany(formData.value)
+                  break
+                default:
+                  res = await createCompany(formData.value)
+                  break
+              }
+              if (res.code === 0) {
+                ElMessage({
+                  type: 'success',
+                  message: '创建/更改成功'
+                })
+                closeDialog()
+                getTableData()
+              }
+      })
+}
+
+</script>
+
+<style>
+.JKWTree-container {
+  display: flex;
+}
+
+.JKWTree-tree {
+  width: 300px;
+  background-color: #fff;
+  padding: 10px;
+  margin-right: 20px;
+}
+
+.JKWTree-tree h3 {
+  font-size: 15px;
+  font-weight: 700;
+  margin: 10px 0;
+}
+
+.JKWTree-content {
+  flex: 1;
+}
+</style>

+ 111 - 0
src/view/performance/chaipianxishu.vue

@@ -0,0 +1,111 @@
+<template>
+	<label>工单编号 </label><input />
+	<el-table
+	    :data="tableData"
+	    border
+	    style="width: 100%">
+	    <el-table-column
+	      prop="date"
+	      label="工单编号"
+	      width="180">
+	    </el-table-column>
+	    <el-table-column
+	      prop="name"
+	      label="拆片名称"
+	      width="180">
+	    </el-table-column>
+	    <el-table-column
+	      prop="address"
+	      label="印件工序及工艺"
+		  width="180">
+	    </el-table-column>
+		<el-table-column
+		  prop="address"
+		  label="生产日期"
+		  width="180">
+		</el-table-column>
+		<el-table-column
+		  prop="address"
+		  label="产量"
+		  width="180">
+		</el-table-column>
+		<el-table-column
+		  prop="address"
+		  label="原工价系数"
+		  width="180">
+		</el-table-column>
+		<el-table-column
+		  prop="address"
+		  label="新工价系数"
+		  width="180">
+		</el-table-column>
+		<el-table-column
+		  prop="address"
+		  label="联数系数"
+		  width="180">
+		</el-table-column>
+		<el-table-column
+		  prop="address"
+		  label="条小盒系数"
+		  width="180">
+		</el-table-column>
+		<el-table-column
+		  prop="address"
+		  label="日定额"
+		  width="180">
+		</el-table-column>
+		<el-table-column
+		  prop="address"
+		  label="千件工价"
+		  width="180">
+		</el-table-column>
+		<el-table-column
+		  prop="address"
+		  label="组员编号1"
+		  width="180">
+		</el-table-column>
+		<el-table-column
+		  prop="address"
+		  label="组员姓名1"
+		  width="180">
+		</el-table-column>
+		<el-table-column
+		  prop="address"
+		  label="组员编号2"
+		  width="180">
+		</el-table-column>
+		<el-table-column
+		  prop="address"
+		  label="组员姓名2"
+		  width="180">
+		</el-table-column>
+	  </el-table>
+</template>
+<script>
+	export default {
+	    data() {
+	      return {
+	        tableData: [{
+	          date: '2016-05-02',
+	          name: '王小虎',
+	          address: '上海市普陀区金沙江路 1518 弄'
+	        }, {
+	          date: '2016-05-04',
+	          name: '王小虎',
+	          address: '上海市普陀区金沙江路 1517 弄'
+	        }, {
+	          date: '2016-05-01',
+	          name: '王小虎',
+	          address: '上海市普陀区金沙江路 1519 弄'
+	        }, {
+	          date: '2016-05-03',
+	          name: '王小虎',
+	          address: '上海市普陀区金沙江路 1516 弄'
+	        }]
+	      }
+	    }
+	  }
+</script>
+<style>
+	
+</style>