6 Commits

Author SHA1 Message Date
256bbeb705 调机记录功能修改 2026-01-13 18:43:59 +08:00
3befba7767 版本修改 2026-01-06 17:56:55 +08:00
c670c32515 修改权限配置 2026-01-06 17:55:49 +08:00
1689c0fc6e 版本号错误 2026-01-06 17:09:39 +08:00
9638599dce 版本号修改 2026-01-06 17:07:51 +08:00
7497e41d52 调机记录需求变更 2026-01-06 17:04:59 +08:00
9 changed files with 268 additions and 289 deletions

View File

@@ -84,4 +84,11 @@ export function delEmployeeLineRel(id) {
url: '/basic/employee/line-rel/' + id,
method: 'delete'
})
}
export function getEmployeeByCode(code) {
return request({
url: '/basic/employee/getEmpByCode/' + code,
method: 'get'
})
}

View File

@@ -3,39 +3,46 @@ import request from '@/utils/request'
// 用户密码重置
export function updateUserPwd(oldPassword, newPassword) {
const data = {
oldPassword,
newPassword
}
return request({
url: '/system/user/profile/updatePwd',
method: 'put',
params: data
})
const data = {
oldPassword,
newPassword
}
return request({
url: '/system/user/profile/updatePwd',
method: 'put',
params: data
})
}
// 查询用户个人信息
export function getUserProfile() {
return request({
url: '/system/user/profile',
method: 'get'
})
return request({
url: '/system/user/profile',
method: 'get'
})
}
// 修改用户个人信息
export function updateUserProfile(data) {
return request({
url: '/system/user/profile',
method: 'put',
data: data
})
return request({
url: '/system/user/profile',
method: 'put',
data: data
})
}
// 用户头像上传
export function uploadAvatar(data) {
return upload({
url: '/system/user/profile/avatar',
name: data.name,
filePath: data.filePath
})
return upload({
url: '/system/user/profile/avatar',
name: data.name,
filePath: data.filePath
})
}
export function getUserInfo(id) {
return request({
url: '/system/user/' + id,
method: 'get'
})
}

View File

@@ -1,159 +1,159 @@
{
"name": "MES",
"appid": "__UNI__66F7FE2",
"description": "",
"versionName": "3.4.4",
"versionCode": 344,
"transformPx": false,
"sassImplementationName": "node-sass",
"app-plus": {
"usingComponents": true,
"nvueCompiler": "uni-app",
"splashscreen": {
"alwaysShowBeforeRender": true,
"waiting": true,
"autoclose": true,
"delay": 0
},
// 禁用 HTML5+ RunTime 提示
"compatible": {
"ignoreVersion": true
},
"modules": {
"Camera": {},
"Barcode": {}
},
"distribute": {
"android": {
"permissions": [
"<uses-permission android:name=\"android.permission.INTERNET\" />",
"<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\" />",
"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" />",
"<uses-permission android:name=\"com.asus.msa.SupplementaryDID.ACCESS\" />",
"<uses-permission android:name=\"com.huawei.android.launcher.permission.CHANGE_BADGE\" />",
"<uses-permission android:name=\"android.permission.INSTALL_PACKAGES\" />",
"<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\" />",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.BLUETOOTH\"/>",
"<uses-permission android:name=\"android.permission.BLUETOOTH_ADMIN\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
],
"abiFilters": ["armeabi-v7a", "arm64-v8a", "x86"]
},
"ios": {
"dSYMs": false
},
"sdkConfigs": {
"ad": {}
},
"icons": {
"android": {
"hdpi": "unpackage/res/icons/72x72.png",
"xhdpi": "unpackage/res/icons/96x96.png",
"xxhdpi": "unpackage/res/icons/144x144.png",
"xxxhdpi": "unpackage/res/icons/192x192.png"
},
"ios": {
"appstore": "unpackage/res/icons/1024x1024.png",
"ipad": {
"app": "unpackage/res/icons/76x76.png",
"app@2x": "unpackage/res/icons/152x152.png",
"notification": "unpackage/res/icons/20x20.png",
"notification@2x": "unpackage/res/icons/40x40.png",
"proapp@2x": "unpackage/res/icons/167x167.png",
"settings": "unpackage/res/icons/29x29.png",
"settings@2x": "unpackage/res/icons/58x58.png",
"spotlight": "unpackage/res/icons/40x40.png",
"spotlight@2x": "unpackage/res/icons/80x80.png"
},
"iphone": {
"app@2x": "unpackage/res/icons/120x120.png",
"app@3x": "unpackage/res/icons/180x180.png",
"notification@2x": "unpackage/res/icons/40x40.png",
"notification@3x": "unpackage/res/icons/60x60.png",
"settings@2x": "unpackage/res/icons/58x58.png",
"settings@3x": "unpackage/res/icons/87x87.png",
"spotlight@2x": "unpackage/res/icons/80x80.png",
"spotlight@3x": "unpackage/res/icons/120x120.png"
}
}
},
"splashscreen": {
"useOriginalMsgbox": false
}
},
"nativePlugins": {
"Fvv-UniSerialPort": {
"__plugin_info__": {
"name": "安卓串口通信 Fvv-UniSerialPort",
"description": "Android平台串口通信插件支持串口号、波特率、数据位、校验位、停止位、流控等参数设置",
"platforms": "Android",
"url": "https://ext.dcloud.net.cn/plugin?id=1787",
"android_package_name": "uni.UNI66F7FE2",
"ios_bundle_id": "uni.UNI66F7FE2",
"isCloud": true,
"bought": 1,
"pid": "1787",
"parameters": {}
}
}
},
"orientation": [
//竖屏正方向
"portrait-primary",
//竖屏反方向
"portrait-secondary",
//横屏正方向
"landscape-primary",
//横屏反方向
"landscape-secondary",
//自然方向
"default"
]
},
"quickapp": {},
"mp-weixin": {
"appid": "wx366e867b9fb64fdf",
"setting": {
"urlCheck": true,
"es6": false,
"minified": true,
"postcss": true
},
"optimization": {
"subPackages": true
},
"usingComponents": true
},
"vueVersion": "2",
"h5": {
"template": "static/index.html",
"devServer": {
"port": 9090,
"https": false
},
"title": "RuoYi-App",
"router": {
"mode": "hash",
"base": "./"
}
},
"permissions": {
"network": {
"description": "用于获取网络状态和IP地址"
}
}
}
"name" : "MES",
"appid" : "__UNI__66F7FE2",
"description" : "",
"versionName" : "3.4.9",
"versionCode" : 349,
"transformPx" : false,
"sassImplementationName" : "node-sass",
"app-plus" : {
"usingComponents" : true,
"nvueCompiler" : "uni-app",
"splashscreen" : {
"alwaysShowBeforeRender" : true,
"waiting" : true,
"autoclose" : true,
"delay" : 0
},
// 禁用 HTML5+ RunTime 提示
"compatible" : {
"ignoreVersion" : true
},
"modules" : {
"Camera" : {},
"Barcode" : {}
},
"distribute" : {
"android" : {
"permissions" : [
"<uses-permission android:name=\"android.permission.INTERNET\" />",
"<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\" />",
"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" />",
"<uses-permission android:name=\"com.asus.msa.SupplementaryDID.ACCESS\" />",
"<uses-permission android:name=\"com.huawei.android.launcher.permission.CHANGE_BADGE\" />",
"<uses-permission android:name=\"android.permission.INSTALL_PACKAGES\" />",
"<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\" />",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.BLUETOOTH\"/>",
"<uses-permission android:name=\"android.permission.BLUETOOTH_ADMIN\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
],
"abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ]
},
"ios" : {
"dSYMs" : false
},
"sdkConfigs" : {
"ad" : {}
},
"icons" : {
"android" : {
"hdpi" : "unpackage/res/icons/72x72.png",
"xhdpi" : "unpackage/res/icons/96x96.png",
"xxhdpi" : "unpackage/res/icons/144x144.png",
"xxxhdpi" : "unpackage/res/icons/192x192.png"
},
"ios" : {
"appstore" : "unpackage/res/icons/1024x1024.png",
"ipad" : {
"app" : "unpackage/res/icons/76x76.png",
"app@2x" : "unpackage/res/icons/152x152.png",
"notification" : "unpackage/res/icons/20x20.png",
"notification@2x" : "unpackage/res/icons/40x40.png",
"proapp@2x" : "unpackage/res/icons/167x167.png",
"settings" : "unpackage/res/icons/29x29.png",
"settings@2x" : "unpackage/res/icons/58x58.png",
"spotlight" : "unpackage/res/icons/40x40.png",
"spotlight@2x" : "unpackage/res/icons/80x80.png"
},
"iphone" : {
"app@2x" : "unpackage/res/icons/120x120.png",
"app@3x" : "unpackage/res/icons/180x180.png",
"notification@2x" : "unpackage/res/icons/40x40.png",
"notification@3x" : "unpackage/res/icons/60x60.png",
"settings@2x" : "unpackage/res/icons/58x58.png",
"settings@3x" : "unpackage/res/icons/87x87.png",
"spotlight@2x" : "unpackage/res/icons/80x80.png",
"spotlight@3x" : "unpackage/res/icons/120x120.png"
}
}
},
"splashscreen" : {
"useOriginalMsgbox" : false
}
},
"nativePlugins" : {
"Fvv-UniSerialPort" : {
"__plugin_info__" : {
"name" : "安卓串口通信 Fvv-UniSerialPort",
"description" : "Android平台串口通信插件支持串口号、波特率、数据位、校验位、停止位、流控等参数设置",
"platforms" : "Android",
"url" : "https://ext.dcloud.net.cn/plugin?id=1787",
"android_package_name" : "uni.UNI66F7FE2",
"ios_bundle_id" : "uni.UNI66F7FE2",
"isCloud" : true,
"bought" : 1,
"pid" : "1787",
"parameters" : {}
}
}
},
"orientation" : [
//竖屏正方向
"portrait-primary",
//竖屏反方向
"portrait-secondary",
//横屏正方向
"landscape-primary",
//横屏反方向
"landscape-secondary",
//自然方向
"default"
]
},
"quickapp" : {},
"mp-weixin" : {
"appid" : "wx366e867b9fb64fdf",
"setting" : {
"urlCheck" : true,
"es6" : false,
"minified" : true,
"postcss" : true
},
"optimization" : {
"subPackages" : true
},
"usingComponents" : true
},
"vueVersion" : "2",
"h5" : {
"template" : "static/index.html",
"devServer" : {
"port" : 9090,
"https" : false
},
"title" : "RuoYi-App",
"router" : {
"mode" : "hash",
"base" : "./"
}
},
"permissions" : {
"network" : {
"description" : "用于获取网络状态和IP地址"
}
}
}

View File

@@ -73,7 +73,6 @@ export default {
bind(_this.formData).then(res => {
_this.$modal.closeLoading();
_this.$modal.msgSuccess("绑定成功!");
_this.reset();
setTimeout(() => {
this.$tab.switchTab("/pages/work/index");
}, 500);
@@ -102,7 +101,6 @@ export default {
unBind(_this.formData.locationCode).then(res => {
_this.$modal.closeLoading();
_this.$modal.msgSuccess("解绑成功!");
_this.reset();
setTimeout(() => {
this.$tab.switchTab("/pages/work/index");
}, 500);
@@ -117,13 +115,6 @@ export default {
});
})
},
reset() {
this.formData = {
locationCode: null,
batchNo: null,
};
}
}
}
</script>

View File

@@ -5,7 +5,7 @@
<uni-easyinput type="text" v-model="formData.srcLocationCode" />
</uni-forms-item>
<uni-forms-item label="目的货位:" :labelWidth='90' name="destLocationCode">
<uni-easyinput suffixIcon="scan" @iconClick="scanDestLocationUuid" type="text" @blur="searchSrcLocation"
<uni-easyinput suffixIcon="scan" @iconClick="scanDestLocationUuid" type="text" @@confirm="searchSrcLocation"
v-model="formData.destLocationCode" />
</uni-forms-item>
</uni-forms>
@@ -75,7 +75,6 @@ export default {
addDeliveryTask(_this.formData).then(res => {
_this.$modal.closeLoading();
_this.$modal.msgSuccess("提交成功!");
_this.reset();
setTimeout(() => {
_this.$tab.switchTab("/pages/work/index");
}, 500);
@@ -85,11 +84,6 @@ export default {
}
})
},
reset() {
this.formData.srcLocationCode = null;
this.formData.destLocationCode = null;
}
}
}
</script>

View File

@@ -72,7 +72,6 @@ export default {
delivery(_this.formData).then(res => {
_this.$modal.closeLoading();
_this.$modal.msgSuccess("提交成功!");
_this.reset();
setTimeout(() => {
this.$tab.switchTab("/pages/work/index");
}, 500);
@@ -96,7 +95,6 @@ export default {
cancel(arr).then(res => {
_this.$modal.closeLoading();
_this.$modal.msgSuccess("取消成功!");
_this.reset();
setTimeout(() => {
this.$tab.switchTab("/pages/work/index");
}, 500);
@@ -108,16 +106,6 @@ export default {
});
})
},
reset() {
this.formData = {
id: null,
srcLocationCode: null,
taskTyp: null,
robotType: null,
ctnrTyp: null,
};
this.destLocationCode = null;
}
}
}
</script>

View File

@@ -66,7 +66,6 @@ export default {
addDeliveryTask(_this.formData).then(res => {
_this.$modal.closeLoading();
_this.$modal.msgSuccess("提交成功!");
_this.reset();
setTimeout(() => {
this.$tab.switchTab("/pages/work/index");
}, 500);
@@ -76,10 +75,6 @@ export default {
}
})
},
reset() {
this.formData.srcLocationCode = null;
this.formData.destLocationCode = null;
}
}
}
</script>

View File

@@ -1,8 +1,9 @@
<template>
<view class="form-container">
<view>
<uni-forms ref="form" :modelValue="formData" :rules="rules">
<uni-forms-item label="作业编码:" :labelWidth='90' name="pwoJobCode">
<uni-easyinput suffixIcon="scan" @iconClick="scanBar" type="text" v-model="formData.pwoJobCode" />
<uni-easyinput @confirm="searchData" suffixIcon="scan" @iconClick="scanBar" type="text"
v-model="formData.pwoJobCode" />
</uni-forms-item>
<uni-forms-item label="工单:" :labelWidth='90' name="pwoCode">
<uni-easyinput type="text" v-model="formData.pwoCode" />
@@ -19,27 +20,40 @@
<uni-forms-item label="制程名称:" :labelWidth='90' name="opTitle">
<uni-easyinput type="text" v-model="formData.opTitle" />
</uni-forms-item>
<uni-forms-item label="开始时间:" :labelWidth='90' name="startTime">
<view>
<uni-datetime-picker type="datetime" v-model="formData.startTime" />
</view>
</uni-forms-item>
<uni-forms-item label="结束时间:" :labelWidth='90' name="endTime">
<view class="example-body">
<view>
<uni-datetime-picker type="datetime" v-model="formData.endTime" />
</view>
</uni-forms-item>
<view class="form-row">
<uni-forms-item label="调机时长:" :labelWidth='90' name="timeTake" class="form-col">
<uni-easyinput type="text" v-model="timeTake" />
</uni-forms-item>
<uni-forms-item label="时间单位:" :labelWidth='90' name="timeUnit" class="form-col">
<uni-data-select v-model="timeUnit" :localdata="unitOptions" placeholder="选择时间单位" />
</uni-forms-item>
</view>
<uni-forms-item label="人员:" :labelWidth='90' name="staff">
<uni-easyinput type="text" v-model="formData.staff" @confirm="searchStaff" />
</uni-forms-item>
<uni-row>
<uni-col :span="12">
<uni-forms-item label="调机时长:" :labelWidth='90' name="timeTake" class="form-col">
<uni-easyinput type="text" v-model="timeTake" />
</uni-forms-item>
</uni-col>
<uni-col :span="12">
<uni-forms-item label="时间单位:" :labelWidth='90' name="timeUnit" class="form-col">
<uni-data-select v-model="timeUnit" :localdata="unitOptions" placeholder="选择时间单位" />
</uni-forms-item>
</uni-col>
</uni-row>
</uni-forms>
<u-button type="primary" @click="submit">提交</u-button>
</view>
</template>
<script>
import { addRecord } from "@/api/mes/mesMachineSetUpRecord";
import { addRecord } from "@/api/mes/mesMachineSetUpRecord.js";
import { listPwoJob } from "@/api/mes/jobReport.js";
import { getEmployeeByCode } from "@/api/basic/employee.js"
export default {
data() {
return {
@@ -63,17 +77,51 @@ export default {
],
}
},
created() {
this.$set(this.formData, "staff", this.$store.state.employee.empName);
},
methods: {
scanBar() {
const _this = this;
uni.scanCode({
scanType: ['barCode', 'qrCode'],
success: function(res) {
_this.formData.pwoJobCode = res.result;
_this.$set(_this.formData, "pwoJobCode", res.result);
_this.scanBarCode(_this.formData.pwoJobCode);
}
});
},
searchStaff() {
const _this = this;
getEmployeeByCode(_this.formData.staff).then(async res => {
if(res.data != null){
_this.$set(_this.formData, "staff", res.data.name);
}else{
_this.$modal.msg("未查询到该员工!");
}
})
},
searchData() {
const _this = this;
if (_this.formData.pwoJobCode) {
let obj = {
code: _this.formData.pwoJobCode
}
listPwoJob(obj).then(async res => {
let jobs = res.rows;
if (jobs.length == 0) {
_this.$modal.msg("未检索到该作业编码相关的信息!");
} else {
let job = jobs[0];
_this.$set(_this.formData, "pwoCode", job.pwoCode);
_this.$set(_this.formData, "ptNoTar", job.ptNoTar);
_this.$set(_this.formData, "ptTitleTar", job.ptTitleTar);
_this.$set(_this.formData, "opCode", job.opCode);
_this.$set(_this.formData, "opTitle", job.opTitle);
}
})
}
},
scanBarCode() {
const _this = this;
if (_this.formData.pwoJobCode) {
@@ -86,11 +134,11 @@ export default {
_this.$modal.msg("未检索到该作业编码相关的信息!");
} else {
let job = jobs[0];
_this.formData.pwoCode = job.pwoCode;
_this.formData.ptNoTar = job.ptNoTar;
_this.formData.ptTitleTar = job.ptTitleTar;
_this.formData.opCode = job.opCode;
_this.formData.opTitle = job.opTitle;
this.$set(this.formData, "pwoCode", job.pwoCode);
this.$set(this.formData, "ptNoTar", job.ptNoTar);
this.$set(this.formData, "ptTitleTar", job.ptTitleTar);
this.$set(this.formData, "opCode", job.opCode);
this.$set(this.formData, "opTitle", job.opTitle);
}
})
}
@@ -100,7 +148,9 @@ export default {
this.$refs.form.validate().then(res => {
if (_this.timeTake && _this.timeUnit && _this.formData.endTime) {
_this.changeTime();
_this.formData.startTime = _this.getCurrentDatetime();
if (!_this.formData.startTime) {
_this.formData.startTime = _this.getCurrentDatetime();
}
const isLegal = new Date(_this.formData.startTime).getTime() < new Date(_this.formData.endTime).getTime();
if (!isLegal) {
_this.$modal.msg("结束时间不能早于开始时间");
@@ -110,7 +160,7 @@ export default {
addRecord(_this.formData).then(res => {
_this.$modal.closeLoading();
_this.$modal.msgSuccess("提交成功!");
_this.reset();
// _this.reset();
setTimeout(() => {
this.$tab.switchTab("/pages/work/index");
}, 500);
@@ -148,62 +198,9 @@ export default {
// 拼接为 "YYYY-MM-DD HH:mm" 格式
return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
},
reset() {
this.timeTake = null;
this.timeUnit = 'h';
this.formData = {
startTime: null,
endTime: null,
pwoJobCode: null,
pwoCode: null,
ptNoTar: null,
ptTitleTar: null,
opCode: null,
opTitle: null,
machineAdjustmentDuration: null
};
}
}
}
</script>
<style scoped>
.form-container {
padding: 15px;
}
.form-row {
display: flex;
align-items: center;
gap: 15px;
/* 两个项之间的间距 */
width: 100%;
margin: 10px 0;
/* 与上下表单项保持默认间距 */
}
/* 并列项平分宽度 */
.form-col {
flex: 1;
min-width: 0;
}
/* 可选统一并列项的label样式避免对齐错乱 */
:deep(.form-col .uni-forms-item__label) {
width: 80px !important;
/* 固定label宽度 */
text-align: left;
}
/* 其他表单项保持默认样式,无需额外修改 */
:deep(.uni-forms-item) {
margin-bottom: 80px;
/* 统一所有表单项的底部间距 */
}
.u-button {
height: 10% !important;
position: absolute;
bottom: 0;
}
<style>
</style>

View File

@@ -283,7 +283,7 @@
}
}, {
"path": "/pages/mes/jobReport/commissionRecord",
"permission": "mes:pwoReport:add",
"permission": "mes:mesMachineSetupRecord:list",
"icon": "icon-gongdan",
"color": "linear-gradient(#95D097,#7BC47D)",
"style": {