Kaynağa Gözat

吕兴宝代码

oyq28 7 ay önce
ebeveyn
işleme
e3112f7926

+ 1 - 1
imcs-ui/src/views/dashboard/index.vue

@@ -295,7 +295,7 @@
         this.interval = setInterval(() => {
           this.getWarning()
 
-        }, 10000);
+        }, 20000);
 
         // 立即调用一次接口以初始化数据
         this.getWarning();

+ 2 - 2
imcs-ui/src/views/zuihou/chfLargeScreen/twoDatasModel/Index.vue

@@ -6,8 +6,8 @@
   </div>
 </template>
 <script>
-import Header from './component/header.vue'
-import Main from './component/main.vue'
+import Header from './component/header'
+import Main from './component/main'
 import Sidebar from './component/sidebar.vue';
 export default {
   name: "TwoDatasModel",

+ 839 - 0
imcs-ui/src/views/zuihou/chfLargeScreen/twoDatasModel/Index123.vue

@@ -0,0 +1,839 @@
+<template>
+  <div class="app-container space">
+
+    <el-card class="box-card">
+      <div slot="header" class="clearfix">手动移库(机器人)</div>
+      <el-form ref="form" :model="form" :rules="rules4"  label-width="80px">
+        <el-row :gutter="12">
+          <el-col :xs="6" :sm="5">
+            <el-form-item label="起始位:" prop="start">
+              <el-tooltip content="例如:100" placement="top">
+                <el-input v-model="form.start" placeholder="起始库位"></el-input>
+              </el-tooltip>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="6" :sm="5">
+            <el-form-item label="目的位:" prop="goal">
+              <el-tooltip content="例如:101" placement="top">
+                <el-input  v-model="form.goal" placeholder="目的库位"></el-input>
+              </el-tooltip>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-form-item>
+          <el-button type="primary" @click="updateStorgeByRobot" >更改</el-button>
+        </el-form-item>
+      </el-form>
+    </el-card>
+
+    <el-card class="box-card">
+      <div slot="header" class="clearfix">手动更新点位(无操作)</div>
+      <el-form ref="form" :model="form" :rules="rules4"  label-width="80px">
+        <el-row :gutter="12">
+          <el-col :xs="6" :sm="5">
+            <el-form-item label="起始位:" prop="start">
+              <el-tooltip content="例如:100" placement="top">
+                <el-input v-model="form.start" placeholder="起始库位"></el-input>
+              </el-tooltip>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="6" :sm="5">
+            <el-form-item label="目的位:" prop="goal">
+              <el-tooltip content="例如:101" placement="top">
+                <el-input  v-model="form.goal" placeholder="目的库位"></el-input>
+              </el-tooltip>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-form-item>
+          <el-button type="primary" @click="updateStorge" >更改</el-button>
+        </el-form-item>
+      </el-form>
+    </el-card>
+
+	<el-card class="box-card">
+        <div slot="header" class="clearfix">查询指令完成状态</div>
+		<el-form ref="form1" :model="form1" :rules="rules1"  label-width="80px">
+			<el-row :gutter="12">
+				<el-col :xs="6" :sm="5">
+					<el-form-item label="节点ID:" prop="taskNodeId">
+                    	<el-input v-model="form1.taskNodeId" placeholder="节点ID"></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="6" :sm="5">
+					<el-form-item label="任务ID:" prop="taskId">
+                    	<el-input  v-model="form1.taskId" placeholder="任务ID"></el-input>
+					</el-form-item>
+				</el-col>
+			</el-row>
+			<el-form-item>
+    			<el-button type="primary" @click="getCallbackList" >查询</el-button>
+  			</el-form-item>
+	  </el-form>
+	</el-card>
+
+	<el-card class="box-card">
+        <div slot="header" class="clearfix">读取RFID数据</div>
+		<el-form ref="form2" :model="form2" :rules="rules2" label-width="80px">
+			<el-row :gutter="12" >
+				<el-col :xs="6" :sm="5">
+					<el-form-item label="节点ID:" prop="taskNodeId">
+                    	<el-input v-model="form2.taskNodeId" placeholder="节点ID"></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="6" :sm="5">
+					<el-form-item label="任务ID:" prop="taskId">
+                    	<el-input  v-model="form2.taskId" placeholder="任务ID"></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="6" :sm="5">
+					<el-form-item label="次序号:" prop="positionIndex">
+                    	<el-input-number v-model="form.positionIndex" :min="1" :max="6"></el-input-number>
+					</el-form-item>
+				</el-col>
+			</el-row>
+			<el-form-item>
+    			<el-button type="primary" @click="getRFID" >读取</el-button>
+  			</el-form-item>
+	  </el-form>
+	</el-card>
+
+	<el-card class="box-card">
+        <div slot="header" class="clearfix">设置设备上线\离线</div>
+		<el-form ref="form3" :model="form3" :rules="rules3" label-width="80px">
+			<el-row :gutter="12" >
+				<el-col :xs="6" :sm="5">
+					<el-form-item label="设备IP:" prop="ip">
+						<el-tooltip content="例如:192.168.11.240" placement="top">
+                    		<el-input v-model="form3.ip" placeholder="设备IP"></el-input>
+						</el-tooltip>
+					</el-form-item>
+				</el-col>
+			</el-row>
+			<el-form-item>
+    			<el-button type="primary" @click="updateOnlineStatus" >设置</el-button>
+  			</el-form-item>
+	  </el-form>
+	</el-card>
+
+	<el-card class="box-card">
+        <div slot="header" class="clearfix">创建AGV任务</div>
+		<el-form ref="form4" :model="form4" :rules="rules4" label-width="80px">
+			<el-row :gutter="12" >
+				<el-col :xs="6" :sm="5">
+					<el-form-item label="起点:" prop="start">
+						<el-tooltip content="例如:BZ_361" placement="top">
+                    		<el-input v-model="form4.start" placeholder="起点"></el-input>
+						</el-tooltip>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="6" :sm="5">
+					<el-form-item label="终点:" prop="goal">
+						<el-tooltip content="例如:KT_121" placement="top">
+                    		<el-input  v-model="form4.goal" placeholder="终点"></el-input>
+						</el-tooltip>
+					</el-form-item>
+				</el-col>
+			</el-row>
+			<el-form-item>
+    			<el-button type="primary" @click="addHikTask">创建</el-button>
+  			</el-form-item>
+	  </el-form>
+	</el-card>
+
+	<el-card class="box-card">
+        <div slot="header" class="clearfix">重发指令</div>
+		<el-form ref="form5" :model="form5" :rules="rules1" label-width="80px">
+			<el-row :gutter="12" >
+				<el-col :xs="6" :sm="5">
+					<el-form-item label="节点ID:" prop="taskNodeId">
+                    	<el-input v-model="form5.taskNodeId" placeholder="节点ID"></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="6" :sm="5">
+					<el-form-item label="任务ID:" prop="taskId">
+                    	<el-input  v-model="form5.taskId" placeholder="任务ID"></el-input>
+					</el-form-item>
+				</el-col>
+			</el-row>
+			<el-form-item>
+    			<el-button type="primary" @click="resend">重发</el-button>
+  			</el-form-item>
+	  </el-form>
+	</el-card>
+
+	<el-card class="box-card">
+        <div slot="header" class="clearfix">发送回调指令</div>
+		<el-form ref="form6" :model="form6" :rules="rules1" label-width="80px">
+			<el-row :gutter="12" >
+				<el-col :xs="6" :sm="5">
+					<el-form-item label="节点ID:" prop="taskNodeId">
+                    	<el-input v-model="form6.taskNodeId" placeholder="节点ID"></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="6" :sm="5">
+					<el-form-item label="任务ID:" prop="taskId">
+                    	<el-input  v-model="form6.taskId" placeholder="任务ID"></el-input>
+					</el-form-item>
+				</el-col>
+			</el-row>
+			<el-form-item>
+    			<el-button type="primary" @click="sendCallback" >发送</el-button>
+  			</el-form-item>
+	  </el-form>
+	</el-card>
+
+	<el-card class="box-card">
+        <div slot="header" class="clearfix">动态移动零件(产线内)</div>
+		<el-form ref="form7" :model="form7" :rules="rules5" label-width="80px">
+			<el-row :gutter="12" >
+				<el-col :xs="6" :sm="5">
+					<el-select v-model="form7.zoneId" placeholder="选择产线">
+						<el-option v-for="deviceUnit in lineList " :label="deviceUnit.name" :value="deviceUnit.id" :key="deviceUnit.id" ></el-option>
+			  		</el-select>
+				</el-col>
+				<el-col :xs="6" :sm="5">
+					<el-form-item label="起始位:" prop="start">
+						<el-input-number v-model="form7.startpointId" :min="1" ></el-input-number>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="6" :sm="5">
+					<el-form-item label="目的位:" prop="goal">
+						<el-input-number v-model="form7.endpointId" :min="1" ></el-input-number>
+					</el-form-item>
+				</el-col>
+			</el-row>
+			<el-form-item>
+    			<el-button type="primary" @click="manualTask">执行</el-button>
+  			</el-form-item>
+	  </el-form>
+	</el-card>
+
+	<el-card class="box-card">
+        <div slot="header" class="clearfix">零件动态入线边库(产线内)</div>
+		<el-form ref="form8" :model="form8" :rules="rules6" label-width="80px">
+			<el-row :gutter="12" >
+				<el-col :xs="6" :sm="5">
+					<el-select v-model="form8.zoneId" placeholder="选择产线">
+						<el-option v-for="deviceUnit in lineList " :label="deviceUnit.name" :value="deviceUnit.id" :key="deviceUnit.id" ></el-option>
+			  		</el-select>
+				</el-col>
+				<el-col :xs="6" :sm="5">
+					<el-form-item label="节点ID:" prop="startpointId">
+                    	<el-input v-model="form8.startpointId" placeholder="起始点位"></el-input>
+					</el-form-item>
+				</el-col>
+			</el-row>
+			<el-form-item>
+    			<el-button type="primary" @click="manualXbk">执行</el-button>
+  			</el-form-item>
+	  </el-form>
+	</el-card>
+
+	<el-card class="box-card">
+        <div slot="header" class="clearfix">释放节点锁定</div>
+		<el-form ref="form9" :model="form9" :rules="rules1" label-width="80px">
+			<el-row :gutter="12" >
+				<el-col :xs="6" :sm="5">
+					<el-form-item label="节点ID:" prop="taskNodeId">
+                    	<el-input v-model="form9.taskNodeId" placeholder="节点ID"></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="6" :sm="5">
+					<el-form-item label="任务ID:" prop="taskId">
+                    	<el-input  v-model="form9.taskId" placeholder="任务ID"></el-input>
+					</el-form-item>
+				</el-col>
+			</el-row>
+			<el-form-item>
+    			<el-button type="primary" @click="freeLock" >发送</el-button>
+  			</el-form-item>
+	  </el-form>
+	</el-card>
+
+	<el-card class="box-card">
+        <div slot="header" class="clearfix">刷新线边库排产</div>
+		<el-form ref="form10" :model="form10" :rules="rules7" label-width="80px">
+			<el-row :gutter="12" >
+				<el-col :xs="6" :sm="5">
+					<el-form-item label="节点ID:" prop="deviceType">
+                    	<el-select v-model="form10.deviceType" placeholder="选择设备类型">
+							 <el-option v-for="deviceType in typeList" :label="deviceType.name" :value="deviceType.value" :key="deviceType.value" ></el-option>
+			  			</el-select>
+					</el-form-item>
+				</el-col>
+			</el-row>
+			<el-form-item>
+    			<el-button type="primary" @click="refreshXbk" >发送</el-button>
+  			</el-form-item>
+	  </el-form>
+	</el-card>
+  </div>
+</template>
+
+<script>
+	// 【锁定记录、出入库记录】-API
+	import toolbarApi from "@/api/systemMgr/toolbar"
+	import warnLogApi from "@/api/lineSideLibrary/warnLog"
+	import areaMgrApi from "@/api/resourceProductMgr/areaMgr"
+	import { convertEnum, initDicts, initQueryParams } from '@/utils/commons'
+	export default {
+	  name: "Tools",
+	  directives: { },
+	  components: { },
+	  props: {
+	  },
+	  data () {
+	    return {
+		  form:{
+			start: "",
+			goal: ""
+		  },
+		  form1:{
+            taskNodeId: '',
+			taskId: '',
+		  },
+		  form2:{
+            taskNodeId: '',
+			taskId: '',
+			positionIndex: 1
+		  },
+		  form3:{
+			ip: ''
+		  },
+		  form4:{
+            start: "",
+			goal: "",
+		  },
+		  form5:{
+			taskNodeId: '',
+			taskId: '',
+		  },
+		  form6:{
+            taskNodeId: '',
+			taskId: '',
+		  },
+		  form7:{
+            zoneId: "",
+			startpointId: "",
+			endpointId: "",
+		  },
+		  form8:{
+			zoneId: "",
+			startpointId: ""
+		  },
+		  form9:{
+            taskNodeId: '',
+			taskId: '',
+		  },
+		  form10:{
+			deviceType: "0"
+		  },
+		  lineList: [],
+		  typeList: [{"name":"全部","value":"0"},{"name":"FANUC","value":"1"},{"name":"HEIDENHAIN","value":"2"},{"name":"DMG","value":"3"},{"name":"HELLER","value":"4"}],
+	      tenantViewVisible: false,
+	      tableKey: 0,
+	      queryParams: initQueryParams({}),
+	      selection: [],
+	      loading: false,
+	      rules1: {
+        	taskNodeId: [
+        		{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
+        	],
+			taskId: [
+        		{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
+        	]
+      	  },
+		  rules2: {
+        	taskNodeId: [
+        		{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
+        	],
+			taskId: [
+        		{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
+        	],
+			positionIndex: [
+        		{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
+        	],
+      	  },
+		  rules3: {
+        	ip: [
+        		{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
+        	]
+      	  },
+		  rules4: {
+        	start: [
+        		{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
+        	],
+			goal: [
+        		{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
+        	],
+      	  },
+		 rules5: {
+        	startpointId: [
+        		{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
+        	],
+			endpointId: [
+        		{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
+        	],
+			zoneId: [
+        		{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
+        	],
+      	  },
+		  rules6: {
+        	startpointId: [
+        		{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
+        	],
+			zoneId: [
+        		{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
+        	],
+      	  },
+		  rules7: {
+			deviceType: [
+				{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
+			]
+		  }
+		}
+	  },
+	  // 实例已经在内存中创建好,此时data和methods已将ok,如果要操作data中的数据或是调用methods中的方法,最早只能在created中操作
+	  created() {
+	  	// 调用常量-审核状态
+	  	this.audioStatus = this.$constWKS.OPTTYPE
+	  	// 加载【字典】
+	  	initDicts(['NATION'], this.dicts);
+	  	// 加载列表数据
+	  	this.fetch()
+		},
+	  computed: {
+	    currentUser () {
+	      return this.$store.state.account.user
+	    },
+	    nationList() {
+          return convertEnum(this.dicts.NATION)
+        }
+	  },
+	  mounted () {
+
+	  },
+	  methods: {
+	    updateStorge () {
+			this.$refs.form.validate((valid) => {
+				if(valid){
+					toolbarApi.updateStorge(this.form).then(response=>{
+						const res = response.data
+						if(res.isSuccess){
+							this.$message({
+              					message: this.$t('tips.updateSuccess'),
+              					type: 'success'
+            				})
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            				})
+						}
+					}).finally(()=>{
+					   return true
+					})
+				}else{
+					return false
+				}
+			});
+	    },
+      updateStorgeByRobot () {
+        this.$refs.form.validate((valid) => {
+          if(valid){
+            toolbarApi.updateStorgeByRobot(this.form).then(response=>{
+              const res = response.data
+              if(res.isSuccess){
+                this.$message({
+                  message: this.$t('tips.updateSuccess'),
+                  type: 'success'
+                })
+              }else{
+                this.$message({
+                  message: res.msg,
+                  type: 'warning'
+                })
+              }
+            }).finally(()=>{
+              return true
+            })
+          }else{
+            return false
+          }
+        });
+      },
+	    getCallbackList () {
+			this.$refs.form1.validate((valid) => {
+				if(valid){
+					toolbarApi.getCallbackList(this.form1).then(response=>{
+						const res = response.data
+						if(res.isSuccess){
+							console.log(res.data)
+							this.$message({
+              					message: "节点"+ res.data.data.operateName + "操作" + (res.data.data.state ? "未完成" : "已完成"),
+              					type: 'success'
+            				})
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            				})
+						}
+					}).finally(()=>{
+					   return true
+					})
+				}else{
+					return false
+				}
+			});
+
+	    },
+	    getRFID () {
+			this.$refs.form2.validate((valid) => {
+				if(valid){
+					toolbarApi.getRFID(this.form2).then(response=>{
+						const res = response.data
+						if(res.isSuccess){
+							console.log(res.data)
+							this.$message({
+              					message: "节点RFID值为:"+ res.data.data,
+              					type: 'success'
+            				})
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            				})
+						}
+					}).finally(()=>{
+					   return true
+					})
+				}else{
+					return false
+				}
+			});
+	    },
+	    updateOnlineStatus () {
+	        this.$refs.form3.validate((valid) => {
+				if(valid){
+					toolbarApi.updateOnlineStatus({ip: this.form3.ip}).then(response=>{
+						const res = response.data
+						if(res.isSuccess){
+							this.$message({
+              					message: this.$t('tips.updateSuccess'),
+              					type: 'success'
+            				})
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            				})
+						}
+					}).finally(()=>{
+					   return true
+					})
+				}else{
+					return false
+				}
+			});
+	    },
+	    addHikTask () {
+			this.$refs.form4.validate((valid) => {
+				if(valid){
+					toolbarApi.addHikTask({start: this.form4.start, goal: this.form4.goal}).then(response=>{
+						const res = response.data
+						if(res.isSuccess){
+							this.$message({
+              					message: this.$t('tips.updateSuccess'),
+              					type: 'success'
+            				})
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            				})
+						}
+					}).finally(()=>{
+					   return true
+					})
+				}else{
+					return false
+				}
+			});
+	    },
+		resend() {
+			this.$refs.form5.validate((valid) => {
+				if(valid){
+					toolbarApi.resend({taskNodeId: this.form5.taskNodeId, taskId: this.form5.taskId}).then(response=>{
+						const res = response.data
+						if(res.isSuccess){
+							this.$message({
+              					message: this.$t('tips.updateSuccess'),
+              					type: 'success'
+            				})
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            				})
+						}
+					}).finally(()=>{
+					   return true
+					})
+				}else{
+					return false
+				}
+			});
+
+		},
+		sendCallback(){
+			this.$refs.form6.validate((valid) => {
+				if(valid){
+					toolbarApi.sendCallback({taskNodeId: this.form6.taskNodeId, taskId: this.form6.taskId}).then(response=>{
+						const res = response.data
+						if(res.isSuccess){
+							this.$message({
+              					message: this.$t('tips.updateSuccess'),
+              					type: 'success'
+            				})
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            				})
+						}
+					}).finally(()=>{
+					   return true
+					})
+				}else{
+					return false
+				}
+			});
+		},
+		freeLock(){
+			this.$refs.form9.validate((valid) => {
+				if(valid){
+					toolbarApi.freeLock({taskNodeId: this.form9.taskNodeId, taskId: this.form9.taskId}).then(response=>{
+						const res = response.data
+						if(res.isSuccess){
+							this.$message({
+              					message: this.$t('tips.updateSuccess'),
+              					type: 'success'
+            				})
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            				})
+						}
+					}).finally(()=>{
+					   return true
+					})
+				}else{
+					return false
+				}
+			});
+		},
+		refreshXbk(){
+			this.$refs.form10.validate((valid) => {
+				if(valid){
+					toolbarApi.refreshXbk(this.form10).then(response=>{
+						const res = response.data
+						if(res.isSuccess){
+							this.$message({
+              					message: this.$t('tips.updateSuccess'),
+              					type: 'success'
+            				})
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            				})
+						}
+					}).finally(()=>{
+					   return true
+					})
+				}else{
+					return false
+				}
+			});
+		},
+		manualTask(){
+			this.$refs.form7.validate((valid) => {
+				if(valid){
+					this.form7.startpointId = this.form7.startpointId.toString()
+					this.form7.endpointId = this.form7.endpointId.toString()
+					toolbarApi.manualTask(this.form7).then(response=>{
+						const res = response.data
+						if(res.isSuccess){
+							this.$message({
+              					message: this.$t('tips.updateSuccess'),
+              					type: 'success'
+            				})
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            				})
+						}
+					}).finally(()=>{
+					   return true
+					})
+				}else{
+					return false
+				}
+			});
+		},
+		manualXbk(){
+            this.$refs.form8.validate((valid) => {
+				if(valid){
+					toolbarApi.manualXbk(this.form8).then(response=>{
+						const res = response.data
+						if(res.isSuccess){
+							this.$message({
+              					message: this.$t('tips.updateSuccess'),
+              					type: 'success'
+            				})
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            				})
+						}
+					}).finally(()=>{
+					   return true
+					})
+				}else{
+					return false
+				}
+			});
+		},
+	    reset () {
+	      this.queryParams = initQueryParams({})
+	      this.$refs.table.clearSort()
+	      this.$refs.table.clearFilter()
+	      this.search()
+	    },
+	    add () {
+	      this.$refs.edit.type = "add"
+	      this.$refs.edit.setTenant(false, this.dicts)
+	      this.dialog.title = this.$t("common.add")
+	      this.dialog.isVisible = true
+	    },
+	    singleDelete (row) {
+	      this.$refs.table.clearSelection()
+	      this.$refs.table.toggleRowSelection(row, true)
+	      this.batchDelete()
+	    },
+	    batchDelete () {
+	      if (!this.selection.length) {
+	        this.$message({
+	          message: this.$t("tips.noDataSelected"),
+	          type: "warning"
+	        })
+	        return
+	      }
+
+	      this.$confirm(this.$t("developer.tips.wareTips"), this.$t("common.tips"), {
+	      	distinguishCancelAndClose: true,
+	        confirmButtonText: this.$t("common.confirm"),
+	        cancelButtonText: this.$t("common.cancel"),
+	        type: "warning"
+	      }).then(() => {
+	      	const ids = []
+		      this.selection.forEach(item => {
+		        ids.push(item.id)
+		      })
+		      this.delete(ids)
+	      }).catch(() => {})
+	    },
+	    clearSelections () {
+	      this.$refs.table.clearSelection()
+	    },
+		view(row){
+			this.$refs.view.setTenant(row)
+			this.tenantViewVisible = true
+		},
+		marking(){
+		   if (!this.selection.length) {
+	        this.$message({
+	          message: this.$t("tips.noDataSelected"),
+	          type: "warning"
+	        })
+	        return false
+	      }
+		    const ids = []
+		    this.selection.forEach(item => {
+		        ids.push(item.id)
+		    })
+		    this.updateStatus(ids)
+		},
+		updateStatus(ids){
+		   warnLogApi.updateStatus({ids: ids}).then(response => {
+			const res = response.data
+			if (res.isSuccess) {
+				this.$message({
+					message: '标注成功',
+					type: "success"
+				})
+				this.search()
+			}
+         })
+		},
+	    delete (ids) {
+	      warnLogApi.remove({ ids: ids }).then(response => {
+	        const res = response.data
+	        if (res.isSuccess) {
+	          this.$message({
+	            message: this.$t("tips.deleteSuccess"),
+	            type: "success"
+	          })
+	          this.search()
+	          // 清理已经删除的数据
+	          this.$refs.table.clearSelection()
+	        }
+	      })
+	    },
+	    // 【修改】表头上Btn-事件
+	    editOne() {
+	    	if (!this.selection.length) {
+	        this.$message({
+	          message: this.$t("tips.noDataSelected"),
+	          type: "warning"
+	        })
+	        return
+	      }
+	    	if (this.selection.length > 1) {
+	        this.$message({
+	          message: this.$t("tips.mustOne"),
+	          type: "warning"
+	        })
+	        return
+	      }
+	    	this.edit(this.selection[0]);
+	    },
+	    edit (row) {
+	      this.$refs.edit.setTenant(row, this.dicts)
+	      this.$refs.edit.type = "edit"
+	      this.dialog.title = this.$t("common.edit")
+	      this.dialog.isVisible = true
+	    },
+	    fetch () {
+	      this.loading = true
+	      areaMgrApi.page(this.queryParams).then(res => {
+	    		res = res.data
+	    		if(res.isSuccess){
+	    			this.lineList = res.data.records
+	    		}
+	    	})
+
+	    }
+	  }
+	}
+</script>
+<style lang="scss" scoped>
+   .space  .box-card  {
+     margin: 10px 0;
+   }
+</style>

+ 27 - 3
imcs-ui/src/views/zuihou/chfLargeScreen/twoDatasModel/component/main-item.vue

@@ -4,15 +4,21 @@
     <Order
       title="当前加工订单"
       :column="columnNow"
+      class="item-2"
+    />
+    <Progress
+      title="当前加工订单进度"
+      class="item-3"
     />
-    <Progress title="当前加工订单进度" />
     <Order
       title="待加工订单"
       :column="columnNow"
+      class="item-4"
     />
     <Order
       title="维保倒计时"
       :column="columnTime"
+      class="item-5"
     />
   </div>
 </template>
@@ -47,7 +53,25 @@ export default {
   height: 100%;
   width: 100%;
   display: grid;
-  grid-template-rows: 20% 20% 20% 20% 20%;
-  gap: 10px;
+  grid-template-rows: 20% repeat(4, 1fr);
+}
+.item-2 {
+  grid-row: 2 / 3;
+  align-self: center;
+}
+
+.item-3 {
+  grid-row: 3 / 4;
+  align-self: center;
+}
+
+.item-4 {
+  grid-row: 4 / 5;
+  align-self: center;
+}
+
+.item-5 {
+  grid-row: 5 / 6;
+  align-self: center;
 }
 </style>

+ 4 - 5
imcs-ui/src/views/zuihou/chfLargeScreen/twoDatasModel/component/metric-component.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="Metric">
-    <div style="grid-area: title; font-size: 1.5vh">
+    <div style="grid-area: title; font-size: 1.5vh;">
       指标达成情况
     </div>
     <div
-      style="grid-area: week"
+      style="grid-area: week;margin-right: 5%;"
       class="week-container"
     >
       <div
@@ -29,7 +29,7 @@
       </div>
     </div>
     <div
-      style="grid-area: project"
+      style="grid-area: project;margin-left: 5%"
       class="week-container"
     >
       <div
@@ -63,9 +63,8 @@
   grid-template-areas:
     "title title title"
     "week project Placeholder";
-  grid-template-columns: 40% 40% 1fr;
+  grid-template-columns: 1fr 1fr;
   grid-template-rows: 20% 60%;
-  column-gap: 10%;
   .week-container {
     display: grid;
     grid-template-areas: "icon week";

+ 1 - 1
imcs-ui/src/views/zuihou/chfLargeScreen/twoDatasModel/component/production-condition.vue

@@ -28,7 +28,7 @@
 </template>
 <style scoped>
 .production-condition {
-  height: 40%;
+  height: 50%;
   display: grid;
   grid-template-columns: 20% 30% 1fr;
   grid-template-rows: 1fr 1fr;

+ 6 - 2
imcs-ui/src/views/zuihou/chfLargeScreen/twoDatasModel/component/progress.vue

@@ -16,6 +16,9 @@
     </el-table>
     <el-progress
       :percentage="50"
+      color="green"
+      :show-text="false"
+      style="margin-top: 4%"
     />
   </div>
 </template>
@@ -77,10 +80,11 @@ export default {
 }
 /* 表格内背景颜色 */
 /deep/ .el-table th {
-  background-color: #457f968c;
+  background-color: skyblue;
+  color: #fff;
 }
 /deep/ .el-table tr,
 /deep/ .el-table td {
-  background-color: transparent;
+  background-color: #ccc;
 }
 </style>

+ 12 - 4
imcs-ui/src/views/zuihou/chfLargeScreen/twoDatasModel/component/sidebar.vue

@@ -1,9 +1,12 @@
 <template>
   <div class="sidebarCOntainer">
     <Metric />
-    <productionCondition />
-    <productionCondition />
-    <div>
+    <productionCondition class="item-2" />
+    <warningInformation class="item-3" />
+    <div
+      style="margin: 5% 0;"
+      class="item-4"
+    >
       <img
         src="../../../../../assets/logo/productLine.png"
         style="height: 100%;width: 100%;"
@@ -14,18 +17,23 @@
 <script>
 import Metric from './metric-component.vue';
 import productionCondition from './production-condition.vue'
+import warningInformation from './warning-information.vue'
 export default {
 components: {
   Metric,
-  productionCondition
+  productionCondition,
+  warningInformation
 }
 }
 </script>
 <style lang="scss" scoped>
 .sidebarCOntainer {
+  width: 80%;
   font-size: 2vh;
   display: grid;
   grid-template-rows: 20% 20% 20% 1fr;
   grid-gap: 1vh;
+  margin-left: auto;
+  margin-right: 5%;
 }
 </style>

+ 88 - 0
imcs-ui/src/views/zuihou/chfLargeScreen/twoDatasModel/component/warning-information.vue

@@ -0,0 +1,88 @@
+<template>
+  <div class="order">
+    <div class="title">
+      告警信息
+    </div>
+    <ul style="list-style: none;padding-left: 0;height: calc(100%-3vh);margin: 0.5vh;">
+      <li
+        v-for="(item, index) in tableData"
+        :key="index"
+        class="DataList_top"
+      >
+        <div style="padding-left: 1vh;">
+          {{ item.name }}
+        </div>
+        <div>{{ item.info }}</div>
+        <div>{{ item.time }}</div>
+      </li>
+    </ul>
+  </div>
+</template>
+<script>
+export default {
+  name: "OrderNow",
+  props: {
+    title: {
+      type: String,
+      default: "试试看",
+    },
+    tableData: {
+      type: Array,
+      default: () => [
+        { name: '0X300233',info:'转速超过3温度超过4',time:'13:20:30' },
+        { name: '0X300233',info:'转速超过3温度超过4',time:'13:20:30' },
+        { name: '0X300233',info:'转速超过3温度超过4',time:'13:20:30' },
+        { name: '0X300233',info:'转速超过3温度超过4',time:'13:20:30' },
+        { name: '0X300233',info:'转速超过3温度超过4',time:'13:20:30' },
+      ],
+    },
+    column: {
+      type: Array,
+      default: () => [
+        {
+          prop: "name",
+          label: "订单号",
+        },
+        {
+          prop: "name",
+          label: "零件数量",
+        },
+        {
+          prop: "name",
+          label: "已生产",
+        },
+        {
+          prop: "name",
+          label: "交付时间",
+        },
+      ],
+    },
+  },
+  data() {
+    return {};
+  },
+  methods: {},
+};
+</script>
+<style scoped lang="scss">
+.order {
+  border: 1px solid #28bde0;
+  height: 100%;
+  width: 100%;
+  overflow: hidden;
+  padding: 1vh;
+}
+.title {
+  font-size: 2vh;
+  color: #28bde0;
+}
+.DataList_top {
+  font-size: 1.5vh;
+  display: grid;
+  height: 2vh;
+  grid-template-areas: 'a b c';
+  grid-template-columns: 30% 50% 20%;
+  background-color: #457f968c;
+  margin: 2% 0;
+}
+</style>