Merge branch 'master' of http://49.232.154.205:10100/liujingchao/klp-mono
This commit is contained in:
9
apps/hand-factory/api/pocket/deviceEnum.js
Normal file
9
apps/hand-factory/api/pocket/deviceEnum.js
Normal file
@@ -0,0 +1,9 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
export function listDeviceEnumAll() {
|
||||
return request({
|
||||
url: '/api/deviceEnum/all',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
9
apps/hand-factory/api/pocket/deviceFieldMeta.js
Normal file
9
apps/hand-factory/api/pocket/deviceFieldMeta.js
Normal file
@@ -0,0 +1,9 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
export function getDeviceFieldMetaAll() {
|
||||
return request({
|
||||
url: '/api/deviceFieldMeta/all',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
20
apps/hand-factory/api/pocket/deviceSnapshot.js
Normal file
20
apps/hand-factory/api/pocket/deviceSnapshot.js
Normal file
@@ -0,0 +1,20 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 获取最新N条设备快照
|
||||
export function listDeviceSnapshotLatest(params) {
|
||||
return request({
|
||||
url: '/api/deviceSnapshot/latest',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 按时间范围查询设备快照
|
||||
export function listDeviceSnapshotRange(params) {
|
||||
return request({
|
||||
url: '/api/deviceSnapshot/range',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -51,8 +51,9 @@
|
||||
register: false,
|
||||
globalConfig: getApp().globalData.config,
|
||||
loginForm: {
|
||||
username: "admin",
|
||||
password: "admin123",
|
||||
// 1. 修改默认值为空
|
||||
username: "",
|
||||
password: "",
|
||||
code: "",
|
||||
uuid: ""
|
||||
}
|
||||
@@ -67,8 +68,43 @@
|
||||
this.$tab.reLaunch('/pages/easycode/easycode')
|
||||
}
|
||||
//#endif
|
||||
|
||||
// 2. 页面加载时读取本地存储的账号密码
|
||||
this.loadLoginInfo()
|
||||
},
|
||||
methods: {
|
||||
// 新增:读取本地存储的登录信息
|
||||
loadLoginInfo() {
|
||||
try {
|
||||
// 从本地存储获取用户名
|
||||
const savedUsername = uni.getStorageSync('login_username')
|
||||
// 从本地存储获取密码
|
||||
const savedPassword = uni.getStorageSync('login_password')
|
||||
|
||||
// 如果有保存的信息,填充到表单
|
||||
if (savedUsername) {
|
||||
this.loginForm.username = savedUsername
|
||||
}
|
||||
if (savedPassword) {
|
||||
this.loginForm.password = savedPassword
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('读取本地登录信息失败:', e)
|
||||
}
|
||||
},
|
||||
|
||||
// 新增:保存登录信息到本地存储
|
||||
saveLoginInfo() {
|
||||
try {
|
||||
// 保存用户名到本地
|
||||
uni.setStorageSync('login_username', this.loginForm.username)
|
||||
// 保存密码到本地
|
||||
uni.setStorageSync('login_password', this.loginForm.password)
|
||||
} catch (e) {
|
||||
console.error('保存登录信息失败:', e)
|
||||
}
|
||||
},
|
||||
|
||||
// 用户注册
|
||||
handleUserRegister() {
|
||||
this.$tab.redirectTo(`/pages/register`)
|
||||
@@ -120,6 +156,9 @@
|
||||
},
|
||||
// 登录成功后,处理函数
|
||||
loginSuccess(result) {
|
||||
// 3. 登录成功后保存账号密码到本地存储
|
||||
this.saveLoginInfo()
|
||||
|
||||
// 设置用户信息
|
||||
this.$store.dispatch('GetInfo').then(res => {
|
||||
this.$tab.reLaunch('/pages/index')
|
||||
@@ -177,7 +216,6 @@
|
||||
text-align: left;
|
||||
padding-left: 15px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.login-btn {
|
||||
@@ -207,5 +245,4 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
</style>
|
||||
448
apps/hand-factory/static/pocket.sql
Normal file
448
apps/hand-factory/static/pocket.sql
Normal file
@@ -0,0 +1,448 @@
|
||||
/*
|
||||
SQLyog Ultimate v12.09 (64 bit)
|
||||
MySQL - 8.0.43 : Database - klp_pocketfactory
|
||||
*********************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*!40101 SET NAMES utf8 */;
|
||||
|
||||
/*!40101 SET SQL_MODE=''*/;
|
||||
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
CREATE DATABASE /*!32312 IF NOT EXISTS*/`klp_pocketfactory` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci */ /*!80016 DEFAULT ENCRYPTION='N' */;
|
||||
|
||||
USE `klp_pocketfactory`;
|
||||
|
||||
/*Table structure for table `klptcm1_pdi_plan` */
|
||||
|
||||
DROP TABLE IF EXISTS `klptcm1_pdi_plan`;
|
||||
|
||||
CREATE TABLE `klptcm1_pdi_plan` (
|
||||
`COILID` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||||
`SEQID` decimal(10,0) DEFAULT NULL,
|
||||
`SEQUENCENR` decimal(10,0) DEFAULT NULL,
|
||||
`SCHEDULENR` decimal(10,0) DEFAULT NULL,
|
||||
`ENTRY_WIDTH` decimal(10,4) DEFAULT NULL,
|
||||
`ENTRY_THICK` decimal(10,4) DEFAULT NULL,
|
||||
`ENTRY_LENGTH` decimal(10,4) DEFAULT NULL,
|
||||
`ENTRY_WEIGHT` decimal(10,4) DEFAULT NULL,
|
||||
`ENTRY_OUTER_DIAMETER` decimal(10,4) DEFAULT NULL,
|
||||
`ENTRY_INNER_DIAMETER` decimal(10,4) DEFAULT '508.0000',
|
||||
`STATUS` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
||||
`CUSTOMER` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
||||
`ORDERNR` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
||||
`STEEL_GRADE` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||||
`SURFACE_CODE` decimal(10,0) DEFAULT NULL,
|
||||
`YIELD_POINT` decimal(10,0) DEFAULT NULL,
|
||||
`WELD_CODE` decimal(1,0) DEFAULT NULL,
|
||||
`SCRAP_FLAG` decimal(10,0) DEFAULT NULL,
|
||||
`THICK_TOLMAX` decimal(10,4) DEFAULT NULL,
|
||||
`THICK_TOLMIN` decimal(10,4) DEFAULT NULL,
|
||||
`HEADEND_GAUGE_LENGTH` decimal(10,4) DEFAULT NULL,
|
||||
`TAILEND_GAUGE_LENGTH` decimal(10,4) DEFAULT NULL,
|
||||
`HEAT_CYCLE` decimal(10,0) DEFAULT NULL,
|
||||
`COATING_SELECTION` decimal(10,0) DEFAULT NULL,
|
||||
`AIM_WEIGHT_TOP` decimal(10,4) DEFAULT NULL,
|
||||
`MAXTOL_WEIGHT_TOP` decimal(10,4) DEFAULT NULL,
|
||||
`AIM_WEIGHT_BOTTOM` decimal(10,4) DEFAULT NULL,
|
||||
`MAXTOL_WEIGHT_BOTTOM` decimal(10,4) DEFAULT NULL,
|
||||
`SPM_FLAG` decimal(10,0) DEFAULT NULL,
|
||||
`SPM_ELONGATION` decimal(10,4) DEFAULT NULL,
|
||||
`SPM_ROLLFORCE` decimal(10,4) DEFAULT NULL,
|
||||
`SPM_PROCESS_TYPE` decimal(10,0) DEFAULT NULL,
|
||||
`SPM_CONTROL_MODE` decimal(10,0) DEFAULT NULL,
|
||||
`TLV_FLAG` decimal(10,0) DEFAULT NULL,
|
||||
`TLV_ELONGATION` decimal(10,4) DEFAULT NULL,
|
||||
`CHROMATING` decimal(10,0) DEFAULT NULL,
|
||||
`COATING_CODE` decimal(10,0) DEFAULT NULL,
|
||||
`OILING_FLAG` decimal(2,0) DEFAULT NULL,
|
||||
`OILING_TOP` decimal(10,4) DEFAULT NULL,
|
||||
`OILING_BOTTOM` decimal(10,4) DEFAULT NULL,
|
||||
`SAMPLE_FLAG` decimal(10,0) DEFAULT NULL,
|
||||
`SPLIT_FLAG` decimal(2,0) DEFAULT NULL,
|
||||
`SPLIT_NUM` decimal(10,0) NOT NULL DEFAULT '1',
|
||||
`EXIT_WEIGHT1` decimal(10,4) DEFAULT NULL,
|
||||
`WINDING1` decimal(10,0) DEFAULT '1',
|
||||
`CUT_MODE1` decimal(10,0) DEFAULT NULL,
|
||||
`EXIT_WEIGHT2` decimal(10,4) DEFAULT NULL,
|
||||
`WINDING2` decimal(10,0) DEFAULT '1',
|
||||
`CUT_MODE2` decimal(10,0) DEFAULT NULL,
|
||||
`EXIT_WEIGHT3` decimal(10,4) DEFAULT NULL,
|
||||
`WINDING3` decimal(10,0) DEFAULT '1',
|
||||
`CUT_MODE3` decimal(10,0) DEFAULT NULL,
|
||||
`EXIT_WEIGHT4` decimal(10,4) DEFAULT NULL,
|
||||
`WINDING4` decimal(10,0) DEFAULT '1',
|
||||
`CUT_MODE4` decimal(10,0) DEFAULT NULL,
|
||||
`EXIT_WEIGHT5` decimal(10,4) DEFAULT NULL,
|
||||
`WINDING5` decimal(10,0) DEFAULT '1',
|
||||
`CUT_MODE5` decimal(10,0) DEFAULT NULL,
|
||||
`EXIT_WEIGHT6` decimal(10,4) DEFAULT NULL,
|
||||
`WINDING6` decimal(10,0) DEFAULT '1',
|
||||
`CUT_MODE6` decimal(10,0) DEFAULT NULL,
|
||||
`EXIT_WEIGHT7` decimal(10,4) DEFAULT NULL,
|
||||
`WINDING7` decimal(10,0) DEFAULT '1',
|
||||
`CUT_MODE7` decimal(10,0) DEFAULT NULL,
|
||||
`TIMESTAMP` datetime DEFAULT CURRENT_TIMESTAMP,
|
||||
`ONLINE_DATE` datetime DEFAULT CURRENT_TIMESTAMP,
|
||||
`START_DATE` datetime DEFAULT CURRENT_TIMESTAMP,
|
||||
`END_DATE` datetime DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`COILID`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
|
||||
|
||||
/*Table structure for table `klptcm1_pdo_excoil` */
|
||||
|
||||
DROP TABLE IF EXISTS `klptcm1_pdo_excoil`;
|
||||
|
||||
CREATE TABLE `klptcm1_pdo_excoil` (
|
||||
`ENCOILID` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
||||
`GRADE` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
||||
`THICK_QUALITY` decimal(15,4) DEFAULT NULL,
|
||||
`SHAPE_QUALITY` decimal(15,4) DEFAULT NULL,
|
||||
`ENTRY_THICK` decimal(15,4) DEFAULT NULL,
|
||||
`EXIT_THICK` decimal(15,4) DEFAULT NULL,
|
||||
`ENTRY_WIDTH` decimal(15,4) DEFAULT NULL,
|
||||
`EXIT_WIDTH` decimal(15,4) DEFAULT NULL,
|
||||
`ENTRY_WEIGHT` decimal(15,4) DEFAULT NULL,
|
||||
`EXIT_WEIGHT` decimal(15,4) DEFAULT NULL,
|
||||
`ONLINE_DATE` datetime DEFAULT CURRENT_TIMESTAMP,
|
||||
`START_DATE` datetime DEFAULT CURRENT_TIMESTAMP,
|
||||
`END_DATE` datetime DEFAULT CURRENT_TIMESTAMP,
|
||||
`INSDATE` datetime DEFAULT CURRENT_TIMESTAMP,
|
||||
`SHIFT` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
||||
`CREW` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
||||
`EXCOILID` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
|
||||
|
||||
/*Table structure for table `klptcm1_plan_trace` */
|
||||
|
||||
DROP TABLE IF EXISTS `klptcm1_plan_trace`;
|
||||
|
||||
CREATE TABLE `klptcm1_plan_trace` (
|
||||
`POSITION_NAME` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
||||
`COILID` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
||||
`GRADE` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
||||
`ENTRY_THICK` decimal(15,4) DEFAULT NULL,
|
||||
`EXIT_THICK` decimal(15,4) DEFAULT NULL,
|
||||
`ENTRY_WIDTH` decimal(15,4) DEFAULT NULL,
|
||||
`EXIT_WIDTH` decimal(15,4) DEFAULT NULL,
|
||||
`ENTRY_WEIGHT` decimal(15,4) DEFAULT NULL,
|
||||
`ENTRY_LENGTH` decimal(15,4) DEFAULT NULL,
|
||||
`ENTRY_INNER_DIAMETER` decimal(10,0) DEFAULT '762',
|
||||
`ENTRY_OUTER_DIAMETER` decimal(10,0) DEFAULT NULL,
|
||||
`ROLL_MODE` decimal(1,0) DEFAULT NULL,
|
||||
`NEXT_UNIT` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'C000',
|
||||
`L1MAPIDX` decimal(3,0) NOT NULL,
|
||||
`INSDATE` datetime DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`L1MAPIDX`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
|
||||
|
||||
/*Table structure for table `klptcm1_pro_plant_state_current` */
|
||||
|
||||
DROP TABLE IF EXISTS `klptcm1_pro_plant_state_current`;
|
||||
|
||||
CREATE TABLE `klptcm1_pro_plant_state_current` (
|
||||
`INSDATE` datetime DEFAULT CURRENT_TIMESTAMP,
|
||||
`YEAR` decimal(10,0) DEFAULT NULL,
|
||||
`MONTH` decimal(10,0) DEFAULT NULL,
|
||||
`DAY` decimal(10,0) DEFAULT NULL,
|
||||
`HOUR` decimal(10,0) DEFAULT NULL,
|
||||
`MINUTE` decimal(10,0) DEFAULT NULL,
|
||||
`TYPE` decimal(10,0) DEFAULT NULL,
|
||||
`VALUE1` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE2` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE3` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE4` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE5` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE6` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE7` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE8` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE9` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE10` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE11` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE12` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE13` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE14` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE15` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE16` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE17` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE18` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE19` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE20` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE21` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE22` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE23` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE24` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE25` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE26` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE27` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE28` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE29` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE30` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE31` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE32` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE33` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE34` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE35` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE36` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE37` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE38` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE39` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE40` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE41` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE42` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE43` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE44` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE45` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE46` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE47` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE48` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE49` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE50` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE51` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE52` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE53` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE54` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE55` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE56` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE57` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE58` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE59` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE60` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE61` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE62` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE63` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE64` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE65` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE66` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE67` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE68` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE69` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE70` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE71` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE72` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE73` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE74` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE75` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE76` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE77` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE78` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE79` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE80` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE81` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE82` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE83` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE84` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE85` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE86` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE87` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE88` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE89` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE90` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE91` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE92` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE93` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE94` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE95` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE96` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE97` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE98` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE99` decimal(15,4) DEFAULT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
|
||||
|
||||
/*Table structure for table `klptcm1_pro_plant_state_define` */
|
||||
|
||||
DROP TABLE IF EXISTS `klptcm1_pro_plant_state_define`;
|
||||
|
||||
CREATE TABLE `klptcm1_pro_plant_state_define` (
|
||||
`ID` decimal(10,0) DEFAULT NULL,
|
||||
`NAME` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||||
`UNITS` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||||
`COMMENTS` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||||
`INSDATE` datetime DEFAULT CURRENT_TIMESTAMP,
|
||||
`MODELTYPE` decimal(10,0) DEFAULT '2'
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
|
||||
|
||||
/*Table structure for table `klptcm1_pro_plant_state_history` */
|
||||
|
||||
DROP TABLE IF EXISTS `klptcm1_pro_plant_state_history`;
|
||||
|
||||
CREATE TABLE `klptcm1_pro_plant_state_history` (
|
||||
`INSDATE` datetime DEFAULT CURRENT_TIMESTAMP,
|
||||
`YEAR` decimal(10,0) DEFAULT NULL,
|
||||
`MONTH` decimal(10,0) DEFAULT NULL,
|
||||
`DAY` decimal(10,0) DEFAULT NULL,
|
||||
`HOUR` decimal(10,0) DEFAULT NULL,
|
||||
`MINUTE` decimal(10,0) DEFAULT NULL,
|
||||
`TYPE` decimal(10,0) DEFAULT NULL,
|
||||
`VALUE1` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE2` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE3` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE4` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE5` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE6` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE7` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE8` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE9` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE10` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE11` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE12` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE13` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE14` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE15` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE16` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE17` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE18` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE19` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE20` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE21` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE22` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE23` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE24` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE25` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE26` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE27` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE28` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE29` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE30` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE31` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE32` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE33` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE34` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE35` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE36` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE37` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE38` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE39` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE40` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE41` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE42` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE43` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE44` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE45` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE46` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE47` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE48` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE49` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE50` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE51` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE52` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE53` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE54` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE55` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE56` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE57` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE58` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE59` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE60` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE61` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE62` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE63` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE64` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE65` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE66` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE67` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE68` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE69` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE70` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE71` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE72` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE73` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE74` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE75` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE76` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE77` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE78` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE79` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE80` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE81` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE82` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE83` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE84` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE85` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE86` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE87` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE88` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE89` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE90` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE91` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE92` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE93` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE94` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE95` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE96` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE97` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE98` decimal(15,4) DEFAULT NULL,
|
||||
`VALUE99` decimal(15,4) DEFAULT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
|
||||
|
||||
/*Table structure for table `klptcm1_pro_stoppage` */
|
||||
|
||||
DROP TABLE IF EXISTS `klptcm1_pro_stoppage`;
|
||||
|
||||
CREATE TABLE `klptcm1_pro_stoppage` (
|
||||
`STOPID` decimal(10,0) DEFAULT NULL,
|
||||
`ENCOILID` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
||||
`SHIFT` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
||||
`CREW` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
||||
`AREA` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
||||
`UNIT` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
||||
`SETON` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
||||
`REMARK` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
||||
`START_DATE` datetime DEFAULT CURRENT_TIMESTAMP,
|
||||
`END_DATE` datetime DEFAULT CURRENT_TIMESTAMP,
|
||||
`DURATION` decimal(10,0) DEFAULT NULL,
|
||||
`INS_DATE` datetime DEFAULT CURRENT_TIMESTAMP,
|
||||
`STOP_TYPE` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT ''
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
|
||||
|
||||
/*Table structure for table `klptcm1_roll_history` */
|
||||
|
||||
DROP TABLE IF EXISTS `klptcm1_roll_history`;
|
||||
|
||||
CREATE TABLE `klptcm1_roll_history` (
|
||||
`ROLLID` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
||||
`CHANGEID` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||||
`SETON` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
||||
`TYPE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
||||
`POSITION` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
||||
`STANDID` decimal(2,0) DEFAULT NULL,
|
||||
`COMPOSITION` decimal(2,0) DEFAULT NULL,
|
||||
`DIAMETER` decimal(20,6) DEFAULT NULL,
|
||||
`ROUGH` decimal(20,6) DEFAULT NULL,
|
||||
`CROWN` decimal(20,6) DEFAULT NULL,
|
||||
`ROLLED_LENGTH` decimal(20,6) DEFAULT NULL,
|
||||
`ROLLED_WEIGHT` decimal(20,6) DEFAULT NULL,
|
||||
`ROLLED_COUNT` decimal(10,0) DEFAULT NULL,
|
||||
`TOTAL_ROLLED_LENGTH` decimal(20,6) DEFAULT NULL,
|
||||
`TOTAL_ROLLED_WEIGHT` decimal(20,6) DEFAULT NULL,
|
||||
`TOTAL_ROLLED_COUNT` decimal(10,0) DEFAULT NULL,
|
||||
`GRIND_COUNT` decimal(10,0) DEFAULT NULL,
|
||||
`CHANGE_TYPE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||||
`INSTAL_TIME` datetime DEFAULT NULL,
|
||||
`DEINSTAL_TIME` datetime DEFAULT NULL,
|
||||
`CHANGE_TIME` datetime DEFAULT NULL,
|
||||
`SEND` decimal(1,0) DEFAULT NULL,
|
||||
`SHIFT` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
||||
`CREW` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
||||
`SHAPE` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
|
||||
|
||||
/*Table structure for table `klptcm1_shift_current` */
|
||||
|
||||
DROP TABLE IF EXISTS `klptcm1_shift_current`;
|
||||
|
||||
CREATE TABLE `klptcm1_shift_current` (
|
||||
`SHIFT` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
||||
`CREW` decimal(10,0) DEFAULT NULL,
|
||||
`SEQ_NUM` decimal(10,0) DEFAULT NULL,
|
||||
`SYS_TIME` datetime DEFAULT CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
62
apps/hand-factory/utils/socketMeasure.js
Normal file
62
apps/hand-factory/utils/socketMeasure.js
Normal file
@@ -0,0 +1,62 @@
|
||||
import config from '@/config'
|
||||
|
||||
/**
|
||||
* 测量数据 WebSocket(与 l2/socket/index.vue 类似)
|
||||
* 默认订阅 type=track_measure
|
||||
*/
|
||||
export function createMeasureSocket({
|
||||
type = 'track_measure',
|
||||
onOpen,
|
||||
onClose,
|
||||
onError,
|
||||
onMessage
|
||||
} = {}) {
|
||||
let socket = null
|
||||
let manualClose = false
|
||||
|
||||
const wsBase = (config.wsUrl || config.baseUrl || '').replace(/^http/, 'ws')
|
||||
const url = `${wsBase}/websocket?type=${type}`
|
||||
|
||||
function connect() {
|
||||
manualClose = false
|
||||
socket = new WebSocket(url)
|
||||
|
||||
socket.onopen = () => {
|
||||
onOpen && onOpen()
|
||||
}
|
||||
|
||||
socket.onmessage = (evt) => {
|
||||
onMessage && onMessage(evt.data)
|
||||
}
|
||||
|
||||
socket.onerror = (err) => {
|
||||
onError && onError(err)
|
||||
}
|
||||
|
||||
socket.onclose = (evt) => {
|
||||
onClose && onClose(evt)
|
||||
if (!manualClose) {
|
||||
setTimeout(connect, 3000)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function close() {
|
||||
manualClose = true
|
||||
if (socket) {
|
||||
socket.close(1000, 'client close')
|
||||
socket = null
|
||||
}
|
||||
}
|
||||
|
||||
function send(data) {
|
||||
if (socket && socket.readyState === WebSocket.OPEN) {
|
||||
socket.send(JSON.stringify(data));
|
||||
} else {
|
||||
console.error('WebSocket is not open. Cannot send message.');
|
||||
}
|
||||
}
|
||||
|
||||
return { connect, close, send }
|
||||
}
|
||||
|
||||
@@ -68,4 +68,17 @@ export function deletePdo(excoilid, planId) {
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* PDO - 下载质保单(单卷)
|
||||
* @param {string} excoilid 成品卷号
|
||||
* @returns {Promise<Blob>}
|
||||
*/
|
||||
export function downloadWarranty(excoilid) {
|
||||
return l2Request({
|
||||
method: 'get',
|
||||
url: `/api/pdo/warranty/download/${excoilid}`,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
<div>
|
||||
<pdo-summary :table-data="tableData" />
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- 统计汇总和图表区域 -->
|
||||
<div class="statistics-container">
|
||||
@@ -535,4 +535,4 @@ export default {
|
||||
height: 100%;
|
||||
padding-left: 15px;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -17,6 +17,50 @@
|
||||
</el-button>
|
||||
</div>
|
||||
|
||||
<!-- 计划队列 -->
|
||||
<div v-loading="planQueueLoading" class="plan-queue-section">
|
||||
<div class="section-header">
|
||||
<i class="el-icon-s-order"></i>
|
||||
<span>生产队列</span>
|
||||
<el-badge :value="sortedPlanQueue.length" class="tab-badge" style="margin-left: 10px;" />
|
||||
</div>
|
||||
<div class="plan-list">
|
||||
<div
|
||||
v-for="plan in sortedPlanQueue"
|
||||
:key="plan.id"
|
||||
class="plan-item"
|
||||
:class="{
|
||||
'plan-item-producing': plan.status === 'PRODUCING',
|
||||
'plan-item-ready': plan.status === 'READY',
|
||||
'plan-item-new': plan.status === 'NEW'
|
||||
}"
|
||||
>
|
||||
<div class="plan-status">
|
||||
<span class="status-dot" :class="{
|
||||
'status-producing': plan.status === 'PRODUCING',
|
||||
'status-ready': plan.status === 'READY',
|
||||
'status-new': plan.status === 'NEW'
|
||||
}"></span>
|
||||
<el-tag
|
||||
:type="plan.status === 'PRODUCING' ? 'success' :
|
||||
plan.status === 'READY' ? 'primary' : 'info'"
|
||||
size="mini"
|
||||
>
|
||||
{{ plan.status === 'PRODUCING' ? '生产中' :
|
||||
plan.status === 'READY' ? '就绪' : '新建' }}
|
||||
</el-tag>
|
||||
</div>
|
||||
<div class="plan-content">
|
||||
<span class="plan-no">{{ plan.planid }}</span>
|
||||
<span class="coil-no">{{ plan.coilid }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="sortedPlanQueue.length === 0 && !planQueueLoading" class="empty-text">
|
||||
暂无生产计划
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 卡片列表 -->
|
||||
<div v-loading="loading" class="card-grid-container">
|
||||
<el-row :gutter="20">
|
||||
@@ -60,10 +104,19 @@
|
||||
type="primary"
|
||||
size="mini"
|
||||
icon="el-icon-s-promotion"
|
||||
@click="handleSend(setup)"
|
||||
@click="handleSendCurrent(setup)"
|
||||
:loading="setup.sending"
|
||||
>
|
||||
下发
|
||||
当前计划下发
|
||||
</el-button>
|
||||
<el-button
|
||||
type="success"
|
||||
size="mini"
|
||||
icon="el-icon-right"
|
||||
@click="handleSendNext(setup)"
|
||||
:loading="setup.sendingNext"
|
||||
>
|
||||
下一计划下发
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -103,6 +156,7 @@
|
||||
import { listSetup } from '@/api/business/setup'
|
||||
import { createSendJob, executeSendJob } from '@/api/l2/sendJob'
|
||||
import { getLastSuccess } from '@/api/l2/sendTemplate'
|
||||
import { listPlan } from '@/api/l2/plan'
|
||||
|
||||
// 传动字段定义(中文界面,贴合工业场景)
|
||||
const DRIVE_FIELDS = [
|
||||
@@ -165,6 +219,8 @@ export default {
|
||||
loading: false,
|
||||
lastSuccess: null,
|
||||
setups: [],
|
||||
planQueueLoading: false,
|
||||
planQueue: [],
|
||||
driveFields: DRIVE_FIELDS,
|
||||
driveAddress: { ...DRIVE_ADDRESS }
|
||||
}
|
||||
@@ -172,8 +228,53 @@ export default {
|
||||
created() {
|
||||
this.reload()
|
||||
},
|
||||
computed: {
|
||||
// 生产队列(不含已完成),按优先级排序:生产中 > 就绪 > 新建
|
||||
sortedPlanQueue() {
|
||||
const statusPriority = { PRODUCING: 1, READY: 2, NEW: 3 }
|
||||
return (this.planQueue || []).slice().sort((a, b) => {
|
||||
const pa = statusPriority[a.status] || 999
|
||||
const pb = statusPriority[b.status] || 999
|
||||
return pa - pb
|
||||
})
|
||||
},
|
||||
// 下一计划:队列中第一个非生产中计划(READY/NEW);若没有则取队列第一个
|
||||
nextPlan() {
|
||||
const list = this.sortedPlanQueue
|
||||
if (!list.length) return null
|
||||
const next = list.find(p => p.status !== 'PRODUCING')
|
||||
return next || list[0]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 获取生产计划队列
|
||||
async getPlanQueue() {
|
||||
this.planQueueLoading = true
|
||||
try {
|
||||
// 查询状态为 PRODUCING, READY, NEW 的计划
|
||||
const res = await listPlan({
|
||||
status: 'PRODUCING,READY,NEW',
|
||||
pageSize: 100, // 获取足够多的计划
|
||||
pageNum: 1
|
||||
})
|
||||
this.planQueue = res.data || []
|
||||
} catch (e) {
|
||||
console.error('获取计划队列失败:', e)
|
||||
this.$message.error('获取计划队列失败')
|
||||
} finally {
|
||||
this.planQueueLoading = false
|
||||
}
|
||||
},
|
||||
|
||||
async reload() {
|
||||
// 同时加载计划队列和设置
|
||||
await Promise.all([
|
||||
this.getPlanQueue(),
|
||||
this.loadSetups()
|
||||
])
|
||||
},
|
||||
|
||||
async loadSetups() {
|
||||
this.loading = true
|
||||
try {
|
||||
// 1. 获取传动模块上次成功下发数据
|
||||
@@ -204,7 +305,8 @@ export default {
|
||||
return {
|
||||
...s,
|
||||
params,
|
||||
sending: false
|
||||
sending: false,
|
||||
sendingNext: false
|
||||
}
|
||||
})
|
||||
} catch (e) {
|
||||
@@ -242,7 +344,7 @@ export default {
|
||||
return new Date(t).toLocaleString()
|
||||
},
|
||||
|
||||
handleSend(setup) {
|
||||
handleSendCurrent(setup) {
|
||||
this.$confirm(
|
||||
`确认要下发【${setup.coilid || '-'}】钢卷的传动参数吗?`,
|
||||
'提示',
|
||||
@@ -254,29 +356,53 @@ export default {
|
||||
).then(() => this.doSend(setup)).catch(() => {})
|
||||
},
|
||||
|
||||
async doSend(setup) {
|
||||
setup.sending = true
|
||||
handleSendNext(setup) {
|
||||
if (!this.nextPlan) {
|
||||
this.$message.warning('暂无下一计划')
|
||||
return
|
||||
}
|
||||
const plan = this.nextPlan
|
||||
this.$confirm(
|
||||
`确认要按下一计划【${plan.coilid || '-'}】下发传动参数吗?`,
|
||||
'提示',
|
||||
{
|
||||
confirmButtonText: '确认',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}
|
||||
).then(() => this.doSendNextPlan(setup, plan)).catch(() => {})
|
||||
},
|
||||
|
||||
async doSend(setup, plan) {
|
||||
const isNextPlan = !!plan
|
||||
if (isNextPlan) {
|
||||
setup.sendingNext = true
|
||||
} else {
|
||||
setup.sending = true
|
||||
}
|
||||
|
||||
try {
|
||||
const items = this.driveFields.map(f => ({
|
||||
paramCode: f.key,
|
||||
address: this.driveAddress[f.key],
|
||||
valueRaw: String(setup.params[f.key] || ''),
|
||||
setTime: new Date()
|
||||
})).filter(it => !!it.address) // 过滤无OPC地址的项
|
||||
})).filter(it => !!it.address)
|
||||
|
||||
if (!items.length) {
|
||||
this.$message.warning('OPC地址未配置,无可下发内容')
|
||||
return
|
||||
}
|
||||
|
||||
const bizKey = isNextPlan ? plan.coilid : setup.coilid
|
||||
const dto = {
|
||||
deviceName: 'CGL_LINE_1',
|
||||
bizKey: setup.coilid,
|
||||
bizKey: bizKey,
|
||||
groups: [
|
||||
{
|
||||
groupNo: 1,
|
||||
groupType: 'DRIVE',
|
||||
groupName: `传动参数_${setup.coilid || ''}`,
|
||||
groupName: `传动参数_${bizKey || ''}`,
|
||||
items
|
||||
}
|
||||
]
|
||||
@@ -294,8 +420,16 @@ export default {
|
||||
console.error(e)
|
||||
this.$message.error(e.message || '下发失败')
|
||||
} finally {
|
||||
setup.sending = false
|
||||
if (isNextPlan) {
|
||||
setup.sendingNext = false
|
||||
} else {
|
||||
setup.sending = false
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
doSendNextPlan(setup, plan) {
|
||||
this.doSend(setup, plan)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -303,6 +437,60 @@ export default {
|
||||
|
||||
<style scoped>
|
||||
.toolbar { margin-bottom: 20px; display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
|
||||
|
||||
.plan-queue-section {
|
||||
margin-bottom: 20px;
|
||||
background: #ffffff;
|
||||
border: 1px solid #dcdfe6;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.section-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
padding: 12px 15px;
|
||||
background: #f5f7fa;
|
||||
border-bottom: 1px solid #e4e7ed;
|
||||
font-weight: 600;
|
||||
color: #303133;
|
||||
}
|
||||
|
||||
.plan-list {
|
||||
padding: 10px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.plan-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
padding: 10px 12px;
|
||||
background: #ffffff;
|
||||
border: 1px solid #e4e7ed;
|
||||
border-left: 3px solid #409eff;
|
||||
border-radius: 4px;
|
||||
min-width: 220px;
|
||||
}
|
||||
|
||||
.plan-item-producing { border-left-color: #67c23a; }
|
||||
.plan-item-ready { border-left-color: #409eff; }
|
||||
.plan-item-new { border-left-color: #909399; }
|
||||
|
||||
.plan-status { display: flex; flex-direction: column; align-items: center; gap: 4px; }
|
||||
.plan-content { display: flex; flex-direction: column; gap: 2px; }
|
||||
.plan-no { font-weight: 600; color: #409eff; }
|
||||
.coil-no { font-size: 12px; color: #606266; }
|
||||
|
||||
.status-dot { width: 10px; height: 10px; border-radius: 50%; }
|
||||
.status-producing { background: #67c23a; box-shadow: 0 0 6px rgba(103, 194, 58, 0.6); }
|
||||
.status-ready { background: #409eff; box-shadow: 0 0 6px rgba(64, 158, 255, 0.5); }
|
||||
.status-new { background: #909399; box-shadow: 0 0 6px rgba(144, 147, 153, 0.4); }
|
||||
|
||||
.empty-text { padding: 10px; color: #909399; }
|
||||
|
||||
.card-grid-container { min-height: 300px; }
|
||||
.card-col { margin-bottom: 20px; }
|
||||
.parameter-card .card-header { display:flex; justify-content:space-between; align-items:center; }
|
||||
@@ -310,7 +498,7 @@ export default {
|
||||
.card-title-row { margin-bottom: 4px; }
|
||||
.card-title { font-weight: 600; font-size: 16px; }
|
||||
.card-subtitle { font-size: 12px; color: #909399; display: flex; gap: 12px; }
|
||||
.header-right { flex-shrink: 0; margin-left: 16px; }
|
||||
.header-right { flex-shrink: 0; margin-left: 16px; display: flex; gap: 8px; align-items: center; }
|
||||
.last-send-time { font-size: 12px; color:#909399; margin-right:16px; }
|
||||
.empty-data { margin-top: 20px; }
|
||||
</style>
|
||||
166
package-lock.json
generated
Normal file
166
package-lock.json
generated
Normal file
@@ -0,0 +1,166 @@
|
||||
{
|
||||
"name": "my-turborepo",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "my-turborepo",
|
||||
"devDependencies": {
|
||||
"turbo": "^2.5.8"
|
||||
}
|
||||
},
|
||||
"node_modules/turbo": {
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/turbo/-/turbo-2.6.3.tgz",
|
||||
"integrity": "sha512-bf6YKUv11l5Xfcmg76PyWoy/e2vbkkxFNBGJSnfdSXQC33ZiUfutYh6IXidc5MhsnrFkWfdNNLyaRk+kHMLlwA==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"turbo": "bin/turbo"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"turbo-darwin-64": "2.6.3",
|
||||
"turbo-darwin-arm64": "2.6.3",
|
||||
"turbo-linux-64": "2.6.3",
|
||||
"turbo-linux-arm64": "2.6.3",
|
||||
"turbo-windows-64": "2.6.3",
|
||||
"turbo-windows-arm64": "2.6.3"
|
||||
}
|
||||
},
|
||||
"node_modules/turbo-darwin-64": {
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/turbo-darwin-64/-/turbo-darwin-64-2.6.3.tgz",
|
||||
"integrity": "sha512-BlJJDc1CQ7SK5Y5qnl7AzpkvKSnpkfPmnA+HeU/sgny3oHZckPV2776ebO2M33CYDSor7+8HQwaodY++IINhYg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
]
|
||||
},
|
||||
"node_modules/turbo-darwin-arm64": {
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/turbo-darwin-arm64/-/turbo-darwin-arm64-2.6.3.tgz",
|
||||
"integrity": "sha512-MwVt7rBKiOK7zdYerenfCRTypefw4kZCue35IJga9CH1+S50+KTiCkT6LBqo0hHeoH2iKuI0ldTF2a0aB72z3w==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
]
|
||||
},
|
||||
"node_modules/turbo-linux-64": {
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/turbo-linux-64/-/turbo-linux-64-2.6.3.tgz",
|
||||
"integrity": "sha512-cqpcw+dXxbnPtNnzeeSyWprjmuFVpHJqKcs7Jym5oXlu/ZcovEASUIUZVN3OGEM6Y/OTyyw0z09tOHNt5yBAVg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/turbo-linux-arm64": {
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/turbo-linux-arm64/-/turbo-linux-arm64-2.6.3.tgz",
|
||||
"integrity": "sha512-MterpZQmjXyr4uM7zOgFSFL3oRdNKeflY7nsjxJb2TklsYqiu3Z9pQ4zRVFFH8n0mLGna7MbQMZuKoWqqHb45w==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/turbo-windows-64": {
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/turbo-windows-64/-/turbo-windows-64-2.6.3.tgz",
|
||||
"integrity": "sha512-biDU70v9dLwnBdLf+daoDlNJVvqOOP8YEjqNipBHzgclbQlXbsi6Gqqelp5er81Qo3BiRgmTNx79oaZQTPb07Q==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
]
|
||||
},
|
||||
"node_modules/turbo-windows-arm64": {
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/turbo-windows-arm64/-/turbo-windows-arm64-2.6.3.tgz",
|
||||
"integrity": "sha512-dDHVKpSeukah3VsI/xMEKeTnV9V9cjlpFSUs4bmsUiLu3Yv2ENlgVEZv65wxbeE0bh0jjpmElDT+P1KaCxArQQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
]
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"turbo": {
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/turbo/-/turbo-2.6.3.tgz",
|
||||
"integrity": "sha512-bf6YKUv11l5Xfcmg76PyWoy/e2vbkkxFNBGJSnfdSXQC33ZiUfutYh6IXidc5MhsnrFkWfdNNLyaRk+kHMLlwA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"turbo-darwin-64": "2.6.3",
|
||||
"turbo-darwin-arm64": "2.6.3",
|
||||
"turbo-linux-64": "2.6.3",
|
||||
"turbo-linux-arm64": "2.6.3",
|
||||
"turbo-windows-64": "2.6.3",
|
||||
"turbo-windows-arm64": "2.6.3"
|
||||
}
|
||||
},
|
||||
"turbo-darwin-64": {
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/turbo-darwin-64/-/turbo-darwin-64-2.6.3.tgz",
|
||||
"integrity": "sha512-BlJJDc1CQ7SK5Y5qnl7AzpkvKSnpkfPmnA+HeU/sgny3oHZckPV2776ebO2M33CYDSor7+8HQwaodY++IINhYg==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"turbo-darwin-arm64": {
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/turbo-darwin-arm64/-/turbo-darwin-arm64-2.6.3.tgz",
|
||||
"integrity": "sha512-MwVt7rBKiOK7zdYerenfCRTypefw4kZCue35IJga9CH1+S50+KTiCkT6LBqo0hHeoH2iKuI0ldTF2a0aB72z3w==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"turbo-linux-64": {
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/turbo-linux-64/-/turbo-linux-64-2.6.3.tgz",
|
||||
"integrity": "sha512-cqpcw+dXxbnPtNnzeeSyWprjmuFVpHJqKcs7Jym5oXlu/ZcovEASUIUZVN3OGEM6Y/OTyyw0z09tOHNt5yBAVg==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"turbo-linux-arm64": {
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/turbo-linux-arm64/-/turbo-linux-arm64-2.6.3.tgz",
|
||||
"integrity": "sha512-MterpZQmjXyr4uM7zOgFSFL3oRdNKeflY7nsjxJb2TklsYqiu3Z9pQ4zRVFFH8n0mLGna7MbQMZuKoWqqHb45w==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"turbo-windows-64": {
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/turbo-windows-64/-/turbo-windows-64-2.6.3.tgz",
|
||||
"integrity": "sha512-biDU70v9dLwnBdLf+daoDlNJVvqOOP8YEjqNipBHzgclbQlXbsi6Gqqelp5er81Qo3BiRgmTNx79oaZQTPb07Q==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"turbo-windows-arm64": {
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/turbo-windows-arm64/-/turbo-windows-arm64-2.6.3.tgz",
|
||||
"integrity": "sha512-dDHVKpSeukah3VsI/xMEKeTnV9V9cjlpFSUs4bmsUiLu3Yv2ENlgVEZv65wxbeE0bh0jjpmElDT+P1KaCxArQQ==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user