Browse Source

Merge branch 'master' of https://git.7in6.com/Minong/mes-admin-backend-ui

liuhairui 1 year ago
parent
commit
2253262fdb

+ 2 - 1
package.json

@@ -18,7 +18,7 @@
         "@wangeditor/editor-for-vue": "^5.1.12",
         "axios": "^1.4.0",
         "core-js": "^3.31.1",
-        "echarts": "5.4.3",
+        "echarts": "^5.4.3",
         "element-plus": "^2.4.4",
         "highlight.js": "^11.8.0",
         "marked": "4.3.0",
@@ -33,6 +33,7 @@
         "tailwindcss": "^3.3.3",
         "vue": "^3.3.4",
         "vue-contextmenu": "^1.5.11",
+        "vue-echarts": "^6.6.8",
         "vue-router": "^4.2.4"
     },
     "devDependencies": {

+ 72 - 1
src/api/jixiaoguanli/jitairibaobiao.js

@@ -582,6 +582,14 @@ export const  facilityProduction= (params) => {
 	params
   })
 }
+//管理人员现场巡检记录->展示
+export const  fieldInspectionRecord= (params) => {
+  return service({
+    url:'/mes_server/facility/FieldInspectionRecord',
+    method: 'get',
+	params
+  })
+}
 //班组人员及分配比例
 export const  facilityTeam= (params) => {
   return service({
@@ -663,6 +671,14 @@ export const  relatedAllList= (params) => {
 	params
   })
 }
+//关联组员权重查询
+export const  weightDetail= (params) => {
+  return service({
+    url:'/mes_server/related_salary_accounting/weightDetail',
+    method: 'get',
+	params
+  })
+}
 //关联工资设置
 export const  setting= (params) => {
   return service({
@@ -671,7 +687,62 @@ export const  setting= (params) => {
 	params
   })
 }
-
+//更新关联系数
+export const  updateNum= (params) => {
+  return service({
+    url:'/mes_server/related_salary_accounting/updateNum',
+    method: 'get',
+	params
+  })
+}
+//批量附加组员定位
+export const  batchAddSearch= (params) => {
+  return service({
+    url:'/mes_server/related_salary_accounting/batchAddSearch',
+    method: 'get',
+	params
+  })
+}
+//批量附加组员列表
+export const  batchAddLst= (params) => {
+  return service({
+    url:'/mes_server/related_salary_accounting/batchAddLst',
+    method: 'get',
+	params
+  })
+}
+//关联组员复制列表
+export const  copyLst= (params) => {
+  return service({
+    url:'/mes_server/related_salary_accounting/copyLst',
+    method: 'get',
+	params
+  })
+}
+//批量附加组员
+export const  batchAdd= (data) => {
+  return service({
+    url:'/mes_server/related_salary_accounting/batchAdd',
+    method: 'post',
+	data
+  })
+}
+//批量删除组员
+export const  batchDel= (data) => {
+  return service({
+    url:'/mes_server/related_salary_accounting/batchDel',
+    method: 'post',
+	data
+  })
+}
+//关联组员复制
+export const  copy= (data) => {
+  return service({
+    url:'/mes_server/related_salary_accounting/copy',
+    method: 'post',
+	data
+  })
+}
 //车间报工
 //获取机台生产信息
 export const  reportProduceInfo= (params) => {

+ 524 - 39
src/view/job/related/related.vue

@@ -32,7 +32,7 @@
 			   :row-style="{ height: '20px' }" 
 			   :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
 			   :header-cell-style="{ padding: '0px' }" @row-click="ontable" @row-dblclick="doubleClick">
-              <el-table-column type="selection" width="55" />
+              <!-- <el-table-column type="selection" width="55" /> -->
 			  <el-table-column align="left" label="员工编号" prop="员工编号" width="120"/>
               <el-table-column align="left" label="员工姓名" prop="员工姓名" width="120"/>
 			  <el-table-column align="left" label="职称职务" prop="职称职务" width="160"/>
@@ -82,7 +82,7 @@
 		  </div>
           <!-- 弹出框 -->
           <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" :title="type === 'create' ? '添加' : '修改'"
-            destroy-on-close width="1200px">
+            destroy-on-close width="1200px" style="height: 700px;" >
             <!-- <el-scrollbar height="500px"> -->
             <el-form :model="formData" label-position="left" ref="elFormRef" :rules="rule">
 
@@ -91,10 +91,10 @@
                   <el-form-item label="关联人员工号" prop="name">
                     <el-row :gutter="20">
                       <el-col :span="12">
-                        <el-input v-model="formData.员工号" :clearable="true" placeholder="ZT01733" />
+                        <el-input v-model="formData.关联人员工号" @keyup.enter.native="getygsubmit" :clearable="true" placeholder="ZT01733" />
                       </el-col>
 					  <el-col :span="12">
-					    <el-input v-model="formData.员姓名" :clearable="true" placeholder="ZT01733" />
+					    <el-input v-model="formData.关联人员姓名" :clearable="true" placeholder="ZT01733" />
 					  </el-col>
                     </el-row>
                   </el-form-item>
@@ -112,14 +112,14 @@
 				  <el-form-item label="关联系数" prop="name">
 				    <el-row :gutter="3">
 				      <el-col :span="12">
-				        <el-input v-model="formData.关联系数" :clearable="true" placeholder="ZT01733" />
+				        <el-input v-model="formData.关联系数" :clearable="true" placeholder="ZT01733" />
 				      </el-col>
 				    </el-row>
 				  </el-form-item>
 				</el-col>
 				<el-col :span="3">
 					<el-col :span="3">
-					  <el-button type="primary" @click="onrelevancy">刷新</el-button>
+					  <el-button type="primary" @click="onflushed">刷新</el-button>
 					</el-col>
 				  
 				</el-col>
@@ -127,19 +127,68 @@
 				  <el-form-item label="关联人数" prop="name">
 				    <el-row :gutter="20">
 				      <el-col :span="12">
-				        <el-input v-model="formData.关联人数" :clearable="true" placeholder="ZT01733" />
+				        <el-input v-model="formData.关联人数" :clearable="true" placeholder="ZT01733" />
 				      </el-col>
 				    </el-row>
 				  </el-form-item>
 				</el-col>
               </el-row>
-
-
             </el-form>
+			
+			
+			<el-table
+			  tooltip-effect="dark"
+			  :data="relevancyselectData"
+			  row-key="ID"
+			  highlight-current-row="true"
+			  border
+			  style="width:100%"
+			  height="400px"
+			  @row-dblclick="relevancySelectClick"
+			  :selectable="row => rowSelectable(row)"
+			  @selection-change="relevancySelectionChange"
+			>
+			  <el-table-column type="selection" width="55" align="center" label=""></el-table-column>
+			  <el-table-column
+			    prop="日期"
+			    label="日期"
+			    width="150"
+			  />
+			  <el-table-column
+				prop="班组员工编号"
+				label="班组员工编号"
+				width="400"
+			  />
+			  <el-table-column
+			    prop="组员权重"
+			    label="组员权重"
+			    width="150"
+			  />
+			  <el-table-column
+				prop="计件工资基数"
+				label="计件工资基数"
+				width="400"
+			  />
+			  <el-table-column
+			    prop="加班工资基数"
+			    label="加班工资基数"
+			    width="150"
+			  />
+			  <el-table-column
+			    prop="UniqID"
+			    label="UniqID"
+			    width="150"
+			  />
+			</el-table>
+			
             <!-- </el-scrollbar> -->
             <template #footer>
               <div class="dialog-footer">
-                <el-button @click="closeDialog">取 消</el-button>
+                <el-button @click="batchadd">批量附加组员</el-button>
+				<el-button @click="batchdel">批量删除组员</el-button>
+				<el-button @click="uprelevancy">更新关联系数</el-button>
+				<el-button @click="oncopy">组员复制</el-button>
+				<el-button @click="closeDialog">取 消</el-button>
                 <el-button type="primary" @click="enterDialog">确 定</el-button>
               </div>
             </template>
@@ -147,18 +196,226 @@
 
 
           <el-dialog v-model="positioningVisibleshow" :before-close="closepositioningVisible" :title="type==='create'?'添加':'修改'" destroy-on-close>
-            <el-card>
-          				<el-form-item label="员工编号" prop="name">
-          				  <el-row :gutter="20">
-          				    <el-col :span="12">
-          				      <el-input v-model="positionvalue" :clearable="true" placeholder="ZT01733" />
-          				    </el-col>                      
-          				  </el-row>
-          				</el-form-item>
-          			</el-card>
-          			<el-button type="primary" @click="enterpositioning">确 定</el-button>
+            
+          	<el-row :gutter="20">
+          	
+          	  <el-col :span="6">
+          	    <el-form-item label="员工编号" prop="name">
+          	      <el-row :gutter="20">
+          	        <el-col :span="12">
+          	          <el-input v-model="formData.员工编号" :clearable="true" placeholder="ZT01733" />
+          	        </el-col>
+          	      </el-row>				  
+          	    </el-form-item>
+          	  </el-col>
+			  <el-col :span="6">
+			    <el-form-item label="姓名" prop="name">
+			      <el-row :gutter="20">
+			        <el-col :span="12">
+			          <el-input v-model="formData.姓名" :clearable="true" placeholder="ZT01733" />
+			        </el-col>
+			      </el-row>				  
+			    </el-form-item>
+			  </el-col>
+          	</el-row>
+			
+			<el-row :gutter="20">
+			
+			  <el-col :span="6">
+			    <el-form-item label="部门名称" prop="name">
+			      <el-row :gutter="20">
+			        <el-col :span="12">
+			          <el-input v-model="formData.部门名称" :clearable="true" placeholder="ZT01733" />
+			        </el-col>
+			      </el-row>				  
+			    </el-form-item>
+			  </el-col>
+			  <el-col :span="6">
+			    <el-form-item label="职务" prop="name">
+			      <el-row :gutter="20">
+			        <el-col :span="12">
+			          <el-input v-model="formData.职务" :clearable="true" placeholder="ZT01733" />
+			        </el-col>
+			      </el-row>				  
+			    </el-form-item>
+			  </el-col>
+			</el-row>
+			
+			
+			<el-row :gutter="20">
+			
+			  <el-col :span="6">
+			    <el-form-item label="入职日期" prop="name">
+			      <el-row :gutter="20">
+			        <el-col :span="12">
+			          <el-input v-model="formData.入职日期" :clearable="true" placeholder="ZT01733" />
+			        </el-col>
+			      </el-row>
+			    </el-form-item>
+			  </el-col>
+			</el-row>
+			
+			
+			<el-row :gutter="20">
+			  <el-col :span="6">
+			    <el-form-item label="关联权重" prop="name">
+			      <el-row :gutter="20">
+			        <el-col :span="12">
+			          <el-input v-model="formData.关联权重" :clearable="true" placeholder="ZT01733" />
+			        </el-col>
+			      </el-row>
+			    </el-form-item>
+			  </el-col>
+			</el-row>
           </el-dialog>
          
+		 
+		 <el-dialog v-model="batchaddshow" :before-close="closepositioningVisible" :title="type==='create'?'添加':'修改'" destroy-on-close>
+		   
+		 	<el-col :span="12">
+		 	  <el-form-item label="定位" prop="name">
+		 	    <el-row :gutter="3">
+		 	      <el-col :span="12">
+		 	        <el-input v-model="formData.定位" :clearable="true" placeholder="ZT01733" />
+		 	      </el-col>
+				  <el-col :span="3">
+				    <el-button type="primary" @click="oninvestigate">查找</el-button>
+				  </el-col>
+		 	    </el-row>
+		 	  </el-form-item>
+		 	</el-col>
+		 	
+		 	<el-table
+		 	  tooltip-effect="dark"
+		 	  :data="batchaddselectData"
+		 	  row-key="ID"
+		 	  highlight-current-row="true"
+		 	  border
+		 	  style="width:100%"
+		 	  height="400px"
+		 	  @row-dblclick="batchaddSelectClick"
+		 	  :selectable="row => rowSelectable(row)"
+		 	  @selection-change="batchaddSelectionChange"
+		 	>
+		 	  <el-table-column type="selection" width="55" align="center" label=""></el-table-column>
+		 	  <el-table-column
+		 	    prop="日期"
+		 	    label="日期"
+		 	    width="150"
+		 	  />
+		 	  <el-table-column
+		 		prop="所在部门"
+		 		label="所在部门"
+		 		width="400"
+		 	  />
+		 	  <el-table-column
+		 	    prop="职称职务"
+		 	    label="职称职务"
+		 	    width="150"
+		 	  />
+		 	  <el-table-column
+		 		prop="班组员工编号"
+		 		label="班组员工编号"
+		 		width="400"
+		 	  />
+		 	  <el-table-column
+		 	    prop="班组"
+		 	    label="班组"
+		 	    width="150"
+		 	  />
+			  <el-table-column
+			    prop="计件工资基数"
+			    label="计件工资基数"
+			    width="150"
+			  />
+			  <el-table-column
+			    prop="加班工资基数"
+			    label="加班工资基数"
+			    width="150"
+			  />
+		 	  <el-table-column
+		 	    prop="UniqID"
+		 	    label="UniqID"
+		 	    width="150"
+		 	  />
+		 	</el-table>	
+				
+			<template #footer>
+			  <div class="dialog-footer">
+				<el-button @click="batchup">提 交</el-button>
+			  </div>
+			</template>
+		 </el-dialog>
+		 
+		 
+		 <el-dialog v-model="copyshow" :before-close="closepositioningVisible" :title="type==='create'?'添加':'修改'" destroy-on-close>
+		   
+		 	<el-col :span="10">
+		 	  <el-form-item label="日期" prop="name">
+		 	    <el-row :gutter="3">
+		 	      <el-col :span="10">
+		 	        <el-input v-model="formData.old_time" @keyup.enter.native="getcopylist" :clearable="true" placeholder="ZT01733" />
+		 	      </el-col>
+		 				  
+						 <el-col :span="13">
+						   <el-form-item label="复制成" prop="name">
+						     <el-row :gutter="3">
+						       <el-col :span="20">
+						         <el-input v-model="formData.new_time" :clearable="true" placeholder="ZT01733" />
+						       </el-col>
+						 			  <el-col :span="3">
+						 			    <el-button type="primary" @click="oncopyup">执行</el-button>
+						 			  </el-col>						 			 
+						     </el-row>						 	
+						   </el-form-item>
+						 </el-col>
+		 	    </el-row>
+				
+		 	  </el-form-item>
+		 	</el-col>
+		 	
+		 	<el-table
+		 	  tooltip-effect="dark"
+		 	  :data="copyselectData"
+		 	  row-key="ID"
+		 	  highlight-current-row="true"
+		 	  border
+		 	  style="width:100%"
+		 	  height="400px"
+		 	  @row-dblclick="copySelectClick"
+		 	  :selectable="row => rowSelectable(row)"
+		 	  @selection-change="copySelectionChange"
+		 	>
+		 	  <el-table-column type="selection" width="55" align="center" label=""></el-table-column>
+		 	  <el-table-column
+		 	    prop="员工编号"
+		 	    label="员工编号"
+		 	    width="150"
+		 	  />
+		 	  <el-table-column
+		 		prop="员工姓名"
+		 		label="员工姓名"
+		 		width="400"
+		 	  />
+			  <el-table-column
+			    prop="所在部门"
+			    label="所在部门"
+			    width="150"
+			  />
+		 	  <el-table-column
+		 	    prop="职称职务"
+		 	    label="职称职务"
+		 	    width="150"
+		 	  />
+			  <el-table-column
+				prop="UniqID"
+				label="UniqID"
+				width="150"
+			  />
+		 	</el-table>	
+		 				
+		 </el-dialog>
+		 
         </el-main>
       </el-container>
     </el-container>
@@ -179,7 +436,16 @@ import {
   relatedList,
   relatedsearch,
   relatedAllList,
-  setting
+  setting,
+  getYg,
+  weightDetail,
+  updateNum,
+  batchAddLst,
+  copyLst,
+  batchAdd,
+  batchDel,
+  copy,
+  batchAddSearch
 } from '@/api/jixiaoguanli/jitairibaobiao'
 
 // 全量引入格式化工具 请按需保留
@@ -188,6 +454,7 @@ import { ElMessage, ElMessageBox } from 'element-plus'
 import { Search, Refresh, Download } from '@element-plus/icons-vue'
 import { ref, reactive, onMounted, onBeforeMount } from 'vue'
 import { getPackingSideTable, getPackingTable } from '@/api/mes_api_gty/myapi'
+import { Value } from 'sass'
 
 defineOptions({
   name: '06-packingDocuments'
@@ -223,11 +490,22 @@ getTabdata();
 
 // 自动化生成的字典(可能为空)以及字段
 const formData = ref({
- 员工编号: '',
- 员工姓名: '',
+ 关联人员工号: '',
+ 关联人员姓名: '',
+ 日关联系数: '',
+ 日关联人数: '',
  日期: '',
- 关联系数: '',
- 关联人数: ''
+
+ 员工编号:'',
+ 姓名:'',
+ 部门名称:'',
+ 职务:'',
+ 入职日期:'',
+ 关联权重:'',
+ 定位:'',
+ 
+ old_time:'',
+ new_time:'',
 })
 
 // 验证规则
@@ -357,11 +635,207 @@ const handleNodeClick = (node, check) => {
 	
   }
 }
-
+const relevancyselectData=ref([]);
 // 关联工资设置
 function onrelevancy() {
 	console.log(formData)
-dialogFormVisible.value=true
+	console.log(code)
+	console.log(time)
+	Setting(time.value,code.value)
+    
+}
+//获取关联工资信息
+const Setting = async (date,code) => {
+
+  const res = await setting({date:date,code:code})
+  console.log(res)
+  if (res.code === 0) {
+  relevancyselectData.value=res.data
+  formData.value.日期=res.data[0].日期
+  formData.value.关联人员工号=res.data[0].关联人员工号
+  formData.value.关联人员姓名=res.data[0].关联人员姓名
+  formData.value.日关联人数=res.data[0].日关联人数
+  formData.value.日关联系数=res.data[0].日关联系数
+  dialogFormVisible.value=true
+  }
+}
+//员工编号回车事件
+const getygsubmit = (event) => {
+	   GetYg()  
+}
+//获取员工信息
+const GetYg = async () => {
+  const response = await getYg({sczl_bh:formData.value.关联人员工号});
+  console.log(response) 
+  if (response.code === 0) {
+	console.log(response.data.ygxm) 
+	formData.value.关联人员姓名=response.data.ygxm
+  }
+}
+function onflushed() {
+	Setting(formData.value.日期,formData.value.关联人员工号)
+}
+
+const relevancySelection=ref([])
+//列表勾选
+const relevancySelectionChange = (val) => {
+     relevancySelection.value = val.map(item => {
+          return {
+            UniqID: item.UniqID,
+          };
+        });
+		console.log(relevancySelection.value)
+}
+const copyselectData=ref([])
+// 组员复制
+const oncopy = () => {
+  copyshow.value=true
+}
+
+//时间回车事件
+const getcopylist = (event, inputName) => {
+	  CopyLst()
+}
+//获取复制信息
+const CopyLst = async () => {
+  const response = await copyLst({date:formData.value.old_time});
+  console.log(response) 
+  if (response.code === 0) {
+	copyselectData.value=response.data
+  }
+}
+const copySelection=ref([])
+//列表勾选
+const copySelectionChange = (val) => {
+       copySelection.value = val.map(item => {
+          return {
+            old_time:formData.value.old_time,
+			new_time:formData.value.new_time,
+            关联员工: item.员工编号
+          };
+        });
+		console.log(copySelection.value)
+}
+const oncopyup = () => {
+	
+ Copy()
+}
+//提交数组
+const Copy= async () => {
+  const response = await copy(copySelection.value);
+  console.log(response) 
+  if (response.code === 0) {
+	  copyshow.value=false
+	  // batchaddselectData.value=response.data
+	  // batchaddshow.value=true
+  }
+}
+// 更新关联系数
+const uprelevancy = () => {
+  UpdateNum()
+}
+//更新关联系数
+const UpdateNum = async () => {
+  const response = await updateNum({date:formData.value.日期,code:formData.value.关联人员工号,num:formData.value.日关联系数});
+  console.log(response) 
+  if (response.code === 0) {
+     // Setting(formData.value.日期,formData.value.关联人员工号)
+	 tableData[rowIndex.value].关联系数=formData.value.日关联系数
+	  console.log(); // Accessing the value of rowIndex
+	 
+  }
+}
+// 批量删除
+const batchdel = () => {
+  BatchDel()
+}
+//删除提交
+const BatchDel = async () => {
+  const response = await batchDel(relevancySelection.value);
+  console.log(response) 
+  if (response.code === 0) {
+     Setting(formData.value.日期,formData.value.关联人员工号)
+  }
+}
+//关联表格双击事件
+const relevancySelectClick = (row, column, event) => {
+	console.log(row.日期)
+	console.log(row.班组员工编号)
+    WeightDetail(row.日期,row.班组员工编号)
+}
+//获取关联员工信息
+const WeightDetail = async (date,code) => {
+  const response = await weightDetail({date:date,code:code.split("(")[0]});
+  console.log(response.data[0].员工编号) 
+  if (response.code === 0) {
+	formData.value.员工编号=response.data[0].员工编号
+	formData.value.姓名=response.data[0].姓名
+	formData.value.部门名称=response.data[0].部门名称
+	formData.value.职务=response.data[0].职务
+	formData.value.入职日期=response.data[0].入职日期
+	formData.value.关联权重=response.data[0].关联权重
+	console.log(formData)
+	positioningVisibleshow.value=true
+  }
+}
+
+
+// 批量添加
+const batchadd = () => {
+	BatchAddLst()
+  
+}
+const batchaddselectData=ref([])
+
+
+//批量附加组员列表
+const BatchAddLst = async () => {
+  const response = await batchAddLst({date:formData.value.日期,code:formData.value.关联人员工号});
+  console.log(response) 
+  if (response.code === 0) {
+	  batchaddselectData.value=response.data
+	  batchaddshow.value=true
+  }
+}
+// 查找
+const oninvestigate = () => {
+  BatchAddSearch()
+}
+//查找
+const BatchAddSearch= async () => {
+  const response = await batchAddSearch({date:formData.value.日期,search:formData.value.定位});
+  console.log(response) 
+  if (response.code === 0) {
+	  batchaddselectData.value=response.data
+	  // batchaddshow.value=true
+  }
+}
+const batchaddSelection=ref([])
+//列表勾选
+const batchaddSelectionChange = (val) => {
+     batchaddSelection.value = val.map(item => {
+          return {
+            UniqID: item.UniqID,
+            关联员工: item.班组员工编号.split("(")[0]
+          };
+        });
+		console.log(batchaddSelection.value)
+}
+//提交
+const batchup = () => {
+	
+ BatchAdd()
+}
+//提交数组
+const BatchAdd= async () => {
+  const response = await batchAdd(batchaddSelection.value);
+  console.log(response) 
+  if (response.code === 0) {
+	  Setting(formData.value.日期,formData.value.关联人员工号)
+	  batchaddshow.value=false
+	  // batchaddselectData.value=response.data
+	  // batchaddshow.value=true
+  }
 }
 
 // 搜索
@@ -419,7 +893,7 @@ const handleSelectionChange = (val,row) => {
   	multipleSelection.value = val
   	const lenth=val.length
   	code=val[lenth-1].员工编号
-	time=val[lenth-1].日期.replace(/\./g, "-")
+	time=val[lenth-1].日期
 	formData.value.员工编号=val[lenth-1].员工编号,
 	formData.value.员工姓名= val[lenth-1].员工姓名,
 	formData.value.日期=val[lenth-1].日期,
@@ -477,6 +951,11 @@ const updateCompanyFunc = async (row) => {
 // 弹窗控制标记
 const dialogFormVisible = ref(false)
 const positioningVisibleshow = ref(false)
+const weightDetailVisible = ref(false)
+const batchaddshow = ref(false)
+const copyshow = ref(false)
+
+
 // 打开弹窗
 const openDialog = () => {
   type.value = 'create'
@@ -519,14 +998,19 @@ const enterDialog = async () => {
   })
 }
 // 单击表格操作
+const rowIndex=ref()
 function ontable(row, column, event) {
-  console.log(params.date)
-  let parts = params.date.split('-')
-  
-  console.log(row.员工编号)
-  RelatedAllList(params.date,row.员工编号)
- 
-  console.log(formData);
+  // console.log(params.date)
+  // let parts = params.date.split('-')
+  // console.log(row.员工编号)
+  // RelatedAllList(params.date,row.员工编号)
+  // console.log(formData);
+  console.log(row)
+  code.value=row.员工编号
+  time.value=row.日期
+  console.log(code.value+time.value)
+  rowIndex.value = tableData.indexOf(row);
+  console.log('单击的行数:', rowIndex.value);
 }
 let temporary = {
   员工编号: '',
@@ -545,10 +1029,11 @@ const RelatedAllList = async (date,bh) => {
 }
 // 双击表格操作
 function doubleClick(row, column, event) {
-  console.log(row, column, event);
-  // updateCompanyFunc(row);
-  type.value = 'update';
-  dialogFormVisible.value = true
+  // console.log(row, column, event);
+  // // updateCompanyFunc(row);
+  // type.value = 'update';
+  // dialogFormVisible.value = true
+  Setting(time.value,code.value)
 }
 
 // 导出excel

+ 9 - 0
src/view/performance/09-workOrderVerification/index.vue

@@ -408,6 +408,14 @@
             @my-close="isShowGdzjfptj =false"
           />
 
+          <!-- 测试图表 -->
+<!--          <el-dialog
+            model-value
+            fullscreen
+          >
+            <Shebeizhuangtai />
+          </el-dialog>-->
+
         </el-main>
       </el-container>
     </el-container>
@@ -432,6 +440,7 @@ import { ref, reactive } from 'vue'
 import { getSide, getTable, getOneWorkOrder, getOrderInfo, getGxAndLeader, getWastInfo, updateData } from '@/api/mes_api_gty/workOrderVerification'
 import Meirihejiantongji from './meirihejiantongji.vue'
 import Gongdanzhijianfeipintongji from './gongdanzhijianfeipintongji.vue'
+import Shebeizhuangtai from '@/view/performance/09-workOrderVerification/shebeizhuangtai.vue'
 
 defineOptions({
   name: '06PackingDocuments'

+ 213 - 0
src/view/performance/09-workOrderVerification/shebeizhuangtai.vue

@@ -0,0 +1,213 @@
+<template>
+  <div>
+    <el-row>
+      <el-col :span="20">
+        <el-row
+          style="height: 20vh"
+        >
+          <v-chart
+            class="chart1"
+            autoresize
+            :option="option1"
+          />
+        </el-row>
+
+        <el-row
+          style="height: 20vh"
+        >
+          <v-chart
+            class="chart2"
+            autoresize
+            :option="option2"
+          />
+        </el-row>
+
+        <el-row
+          style="height: 20vh"
+        >
+          <v-chart
+            class="chart3"
+            autoresize
+            :option="option3"
+          />
+        </el-row>
+
+      </el-col>
+
+      <el-col :span="4">
+        <div>设备状态:</div>
+        <el-button>待单</el-button><br>
+        <el-button>维修</el-button><br>
+        <el-button>保养</el-button><br>
+        <el-button>测试</el-button><br>
+        <el-button>打样</el-button><br>
+        <el-button>待料</el-button><br>
+        <el-button>装版</el-button><br>
+        <el-button>生产</el-button><br>
+
+      </el-col>
+    </el-row>
+  </div>
+
+</template>
+
+<script setup>
+import { use } from 'echarts/core'
+import { CanvasRenderer } from 'echarts/renderers'
+import { BarChart, LineChart, PieChart, ScatterChart } from 'echarts/charts'
+import { GridComponent, LegendComponent, TitleComponent, TooltipComponent } from 'echarts/components'
+import VChart, { THEME_KEY } from 'vue-echarts'
+import { provide, ref } from 'vue'
+
+use([
+  CanvasRenderer,
+  PieChart,
+  BarChart,
+  LineChart,
+  ScatterChart,
+  GridComponent,
+  TitleComponent,
+  TooltipComponent,
+  LegendComponent,
+])
+// provide(THEME_KEY, 'dark')
+
+const option1 = ref({
+  xAxis: {
+    data: ['待单', '维修', '保养', '测试', '打样', '待料', '装版', '生产'],
+  },
+  yAxis: {
+    name: '状态时长(小时)',
+    nameLocation: 'end',
+    nameGap: 5,
+    nameTextStyle: {
+      align: 'left',
+      verticalAlign: 'bottom',
+    },
+  },
+  grid: {
+    left: '8%',
+    right: '2%',
+    top: '22%',
+    bottom: '12%',
+  },
+  series: {
+    type: 'bar',
+    label: {
+      show: true,
+      position: 'top',
+    },
+    data: [
+      0, 0, 0, 0, 0, 0, 2.39, 19.36,
+    ],
+  },
+  textStyle: {
+    fontWeight: 'bolder',
+    fontSize: 16,
+
+  },
+})
+
+// 生成横坐标(每分钟一个点,显示时间格式为 "HH:mm")
+const data = []
+for (let i = 510; i <= 1230; i++) { // 08:30 到 20:30 的分钟数范围
+  const hours = Math.floor(i / 60)
+  const minutes = i % 60
+  const time = (hours < 10 ? '0' + hours : hours) + ':' + (minutes < 10 ? '0' + minutes : minutes)
+  data.push([time, Math.random() * 1000])
+}
+const xAxisData = data.map(item => item?.[0])
+
+const option2 = ref({
+  xAxis: {
+    type: 'category',
+    axisLabel: {
+      interval: 59, // 控制显示的刻度标签间隔,每小时一个
+    },
+  },
+  yAxis: {
+    name: '实时产量',
+    nameLocation: 'end',
+    nameGap: 5,
+    nameTextStyle: {
+      align: 'left',
+      verticalAlign: 'bottom',
+    }
+  },
+  grid: {
+    left: '8%',
+    right: '2%',
+    top: '22%',
+    bottom: '12%',
+  },
+  tooltip: {
+    trigger: 'axis'
+  },
+  series: {
+    name: '速度',
+    type: 'line',
+    data: data,
+  },
+  textStyle: {
+    fontWeight: 'bolder',
+    fontSize: 16,
+  },
+})
+
+const option3 = ref({
+  xAxis: {
+    // type: 'value',
+    data: xAxisData,
+    axisLabel: {
+      interval: 59, // 控制显示的刻度标签间隔,每小时一个
+    },
+  },
+  yAxis: {
+    name: '检验时间',
+    nameLocation: 'end',
+    nameGap: 5,
+    nameTextStyle: {
+      align: 'left',
+      verticalAlign: 'bottom',
+    },
+    axisLine: {
+      show: true,
+    },
+    data: ['IPQC检验', '机台检验', '首件与过程'],
+  },
+  tooltip: {
+    trigger: 'item'
+  },
+  grid: {
+    left: '8%',
+    right: '2%',
+    top: '22%',
+    bottom: '12%',
+  },
+  series: {
+    type: 'scatter',
+    symbol: 'arrow',
+    symbolSize: 20,
+    label: {
+      show: true,
+      position: 'right',
+      formatter: '{@value}' // 点旁边显示label,这里使用name: '横坐标'这样写也可以,鼠标移入出现提示。
+    },
+    data: [
+      ['08:30', 'IPQC检验'],
+      ['10:30', 'IPQC检验'],
+      ['11:30', '机台检验'],
+      ['17:30', '机台检验'],
+    ],
+  },
+  textStyle: {
+    fontWeight: 'bolder',
+    fontSize: 16,
+  },
+})
+
+</script>
+
+<style scoped>
+
+</style>

+ 8 - 2
src/view/performance/Dayreports.vue

@@ -70,6 +70,7 @@
               <el-table-column align="left" label="创建时间" prop="sys_rq" width="160"/>
               <el-table-column align="left" label="修改时间" prop="mod_rq" width="160"/>
               <el-table-column align="left" label="UNIQID" prop="UniqId" width="160"/>
+			  <el-table-column align="left" label="table_type" prop="table_type" width="120"/>
 			<tbody>
 			  <tr v-for="row in filteredRows" :key="row.sczl_gdbh">
 				<td>{{ row.sczl_gdbh }}</td>
@@ -1118,8 +1119,13 @@ function doubleClick(row, column, event) {
     lastCellValue= row['UniqId'];
    console.log(lastCellValue)
   table.value=lastCellValue
-   dialogFormVisible.value = true
-   GetInfo(table.value)
+  if(row['table_type']=='db_sczl'){
+  	 dialogFormVisible.value = true
+  	 GetInfo(table.value)
+  }else{
+	  console.log('此数据不展示详细信息')
+  }
+   
 }
 //获取详细信息
 const GetInfo = async (value) => {

+ 62 - 12
src/view/yunyin/shengchanguanli/shebeiyunxing.vue

@@ -631,29 +631,32 @@
                   width="180"
                 />
                 <el-table-column
-                  label="正常"
+                  v-slot="scope"
+				  label="正常"
                   width="80"
                 >
                   
-                 <el-checkbox v-model="dianjianselectData.zc" :indeterminate="isIndeterminate" @change="handleCheckAllChange"  ></el-checkbox>
+                 <el-checkbox v-model="scope.row.zc" @change="zcClick(scope.row)"></el-checkbox>
                 
                 </el-table-column>
                 <el-table-column
-                  label="异常"
+                  v-slot="scope"
+                  label="异常" 
                   width="80"
                 >
-                  <el-checkbox v-model="dianjianselectData.yc" :indeterminate="isIndeterminate" @change="handleCheckAllChange"></el-checkbox>
+                   <el-checkbox v-model="scope.row.yc" @change="ycClick(scope.row)"></el-checkbox>
                 </el-table-column>
                 <el-table-column
                   label="备注说明"
                   width="180"
-                />
+                >
+				</el-table-column>
                 <el-table-column
 				  v-slot="scope"
                   label="不检测" 
                   width="80"
                 >
-                   <el-checkbox v-model="scope.row.notjc" :indeterminate="isIndeterminate" @change="handleCheckAllChange" ></el-checkbox>
+                   <el-checkbox v-model="scope.row.notjc" @change="notjcClick(scope.row)"></el-checkbox>
                 </el-table-column>
               </el-table>
 			  <el-row :gutter="20">
@@ -867,6 +870,7 @@ const handleNodeClick = (nodeData,node) => {
         console.log(node.label); // 第二级节点
 		JTMC=node.label.split("【")[0]
 		FacilityProduction()
+		FacilityWorklist()
 		console.log(JTMC)
       } else if (nodeData.level === 3) {
         console.log(node.label); // 第三级节点
@@ -1184,8 +1188,8 @@ const FacilityInspectionItem = async (value) => {
     if (response.code === 0) {
 	 dianjianselectData.splice(0, dianjianselectData.length, ...response.data.map(item=>{
 		 item.notjc=true;
-		 item.zc=true;
-		 item.yc=true;
+		 item.zc=false;
+		 item.yc=false;
 		 return item
 	 }))
 	 console.log(dianjianselectData)
@@ -1242,14 +1246,62 @@ const yinbanNodeClick = (node, check, nodeData) => {
 };
 let pandingfangfa=ref()
 //检验项目单击
-const dianjianhandle = async (val, row) => {
+const dianjianhandle =  (val, row) => {
   try {
-    console.log(val.判定标准);
+    console.log(row);
+	// if(val.notjc==true){
+	// 	if(val.zc==false&&val.yc==false){
+	// 		val.zc=true
+	// 	}
+	// }else{
+	// 	if(val.zc==true||val.yc==true){
+	// 		val.notjc==true
+	// 		val.zc=false
+	// 		val.yc==false
+	// 	}
+	// }
+	// val.notjc=false
     pandingfangfa.value = val.判定标准;
   } catch (error) {
     console.error('An error occurred:', error);
   }
 };
+const notjcClick =  (val) => {
+  try {
+	if(val.notjc==false){
+		val.zc=true
+	}else{
+		val.zc=false
+		val.yc==false
+	}
+  } catch (error) {
+    console.error('An error occurred:', error);
+  }
+};
+const zcClick =  (val) => {
+  try {
+	if(val.zc==false){
+		val.zc=true
+	}else{
+		val.zc=false
+		val.yc==false
+	}
+  } catch (error) {
+    console.error('An error occurred:', error);
+  }
+};
+const ycClick =  (val) => {
+  try {
+	if(val.yc==false){
+		val.zc=true
+	}else{
+		val.zc=false
+		val.notjc==false
+	}
+  } catch (error) {
+    console.error('An error occurred:', error);
+  }
+};
 
 const rowClassName = (row, column) => {
   try {
@@ -1358,8 +1410,6 @@ const FacilityTeam = async (value) => {
 		}
 	}
 
-	
-	FacilityWorklist()
 	InspectionRecord()
 	FacilityDetail()
     // 清空 bzData 数组