8 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
7e08cb4aba 调机记录 2026-01-04 11:51:56 +08:00
c313a28435 调机记录 2026-01-04 11:51:05 +08:00
12 changed files with 543 additions and 254 deletions

View File

@@ -85,3 +85,10 @@ export function delEmployeeLineRel(id) {
method: 'delete' method: 'delete'
}) })
} }
export function getEmployeeByCode(code) {
return request({
url: '/basic/employee/getEmpByCode/' + code,
method: 'get'
})
}

View File

@@ -0,0 +1,9 @@
import request from '@/utils/request'
export function addRecord(data) {
return request({
url: '/mes/mesMachineSetupRecord',
method: 'post',
data: data,
})
}

View File

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

View File

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

View File

@@ -828,6 +828,12 @@
"navigationBarTitleText": "新增模具" "navigationBarTitleText": "新增模具"
} }
}, },
{
"path": "pages/mes/jobReport/commissionRecord",
"style": {
"navigationBarTitleText": "调机记录"
}
},
{ {
"path": "pages/wms/purchase/quickStorage", "path": "pages/wms/purchase/quickStorage",
"style": { "style": {

View File

@@ -1,22 +1,17 @@
<template> <template>
<view> <view class="page-wrap">
<uni-forms ref="form" :modelValue="formData" :rules="rules"> <uni-forms ref="form" :modelValue="formData" :rules="rules">
<uni-forms-item label="货位号:" name="locationCode"> <uni-forms-item label="货位号:" name="locationCode">
<uni-easyinput suffixIcon="scan" @iconClick="scanLocationCodeUuid" type="text" <uni-easyinput suffixIcon="scan" @iconClick="scanLocationCodeUuid" v-model="formData.locationCode" />
v-model="formData.locationCode" />
</uni-forms-item> </uni-forms-item>
<uni-forms-item label="批次号:" name="batchNo"> <uni-forms-item label="批次号:" name="batchNo">
<uni-easyinput suffixIcon="scan" @iconClick="scanBatchNoUuid" type="text" v-model="formData.batchNo" /> <uni-easyinput suffixIcon="scan" @iconClick="scanBatchNoUuid" v-model="formData.batchNo" />
</uni-forms-item> </uni-forms-item>
</uni-forms> </uni-forms>
<uni-row :gutter="10"> <view class="btns">
<uni-col :span="12"> <u-button type="primary" @click="handleBind" class="sub-btn">绑定</u-button>
<u-button type="success" @click="handleBind">绑定</u-button> <u-button type="warning" @click="handleUnBind" class="pri-btn">解绑</u-button>
</uni-col> </view>
<uni-col :span="12">
<u-button type="primary" @click="handleUnBind">解绑</u-button>
</uni-col>
</uni-row>
</view> </view>
</template> </template>
@@ -78,7 +73,6 @@ export default {
bind(_this.formData).then(res => { bind(_this.formData).then(res => {
_this.$modal.closeLoading(); _this.$modal.closeLoading();
_this.$modal.msgSuccess("绑定成功!"); _this.$modal.msgSuccess("绑定成功!");
_this.reset();
setTimeout(() => { setTimeout(() => {
this.$tab.switchTab("/pages/work/index"); this.$tab.switchTab("/pages/work/index");
}, 500); }, 500);
@@ -107,7 +101,6 @@ export default {
unBind(_this.formData.locationCode).then(res => { unBind(_this.formData.locationCode).then(res => {
_this.$modal.closeLoading(); _this.$modal.closeLoading();
_this.$modal.msgSuccess("解绑成功!"); _this.$modal.msgSuccess("解绑成功!");
_this.reset();
setTimeout(() => { setTimeout(() => {
this.$tab.switchTab("/pages/work/index"); this.$tab.switchTab("/pages/work/index");
}, 500); }, 500);
@@ -122,13 +115,41 @@ export default {
}); });
}) })
}, },
reset() {
this.formData = {
locationCode: null,
batchNo: null,
};
}
} }
} }
</script> </script>
<style scoped lang="scss">
.page-container {
width: 100%;
height: 100vh;
overflow: hidden;
padding-bottom: 60px;
/* 给按钮留位置 */
box-sizing: border-box;
}
.btns {
position: fixed;
bottom: 0;
left: 0;
right: 0;
display: flex;
justify-content: space-evenly;
background: #fff;
padding: 8px 0;
}
::v-deep .uni-easyinput__content-input {
height: 80rpx;
line-height: 60rpx;
display: flex;
align-items: center;
}
.btns .sub-btn,
.btns .pri-btn {
width: 47%;
height: 60rpx;
}
</style>

View File

@@ -5,15 +5,11 @@
<uni-easyinput type="text" v-model="formData.srcLocationCode" /> <uni-easyinput type="text" v-model="formData.srcLocationCode" />
</uni-forms-item> </uni-forms-item>
<uni-forms-item label="目的货位:" :labelWidth='90' name="destLocationCode"> <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" /> v-model="formData.destLocationCode" />
</uni-forms-item> </uni-forms-item>
</uni-forms> </uni-forms>
<uni-row :gutter="10"> <u-button type="success" @click="handleCall">呼叫</u-button>
<uni-col>
<u-button type="success" @click="handleCall">呼叫</u-button>
</uni-col>
</uni-row>
</view> </view>
</template> </template>
@@ -79,7 +75,6 @@ export default {
addDeliveryTask(_this.formData).then(res => { addDeliveryTask(_this.formData).then(res => {
_this.$modal.closeLoading(); _this.$modal.closeLoading();
_this.$modal.msgSuccess("提交成功!"); _this.$modal.msgSuccess("提交成功!");
_this.reset();
setTimeout(() => { setTimeout(() => {
_this.$tab.switchTab("/pages/work/index"); _this.$tab.switchTab("/pages/work/index");
}, 500); }, 500);
@@ -89,11 +84,22 @@ export default {
} }
}) })
}, },
reset() {
this.formData.srcLocationCode = null;
this.formData.destLocationCode = null;
}
} }
} }
</script> </script>
<style>
::v-deep .uni-easyinput__content-input {
height: 80rpx !important;
line-height: 60rpx !important;
display: flex !important;
align-items: center !important;
min-height: 80rpx !important;
}
.u-button {
height: 10% !important;
position: absolute;
bottom: 0;
}
</style>

View File

@@ -4,7 +4,7 @@
<view class="title"> <view class="title">
<view class="text-cut">任务类型 : {{item.taskType}}</view> <view class="text-cut">任务类型 : {{item.taskType}}</view>
<view> <view>
<button type="primary" size="mini" @click="choose(item)" style="float: right;">选择任务</button> <button type="primary" size="large" @click="choose(item)" style="float: right;">选择任务</button>
</view> </view>
</view> </view>
<view class="content"> <view class="content">

View File

@@ -1,5 +1,5 @@
<template> <template>
<view> <view class="page-wrap">
<uni-forms ref="form" :modelValue="formData" :rules="rules"> <uni-forms ref="form" :modelValue="formData" :rules="rules">
<uni-forms-item label="发货点位:" :labelWidth='100' name="srcLocationCode"> <uni-forms-item label="发货点位:" :labelWidth='100' name="srcLocationCode">
<uni-easyinput type="text" v-model="formData.srcLocationCode" /> <uni-easyinput type="text" v-model="formData.srcLocationCode" />
@@ -14,14 +14,10 @@
<uni-easyinput type="text" v-model="formData.ctnrTyp" /> <uni-easyinput type="text" v-model="formData.ctnrTyp" />
</uni-forms-item> </uni-forms-item>
</uni-forms> </uni-forms>
<uni-row :gutter="10"> <view class="btns">
<uni-col :span="12"> <u-button type="primary" @click="handleDelivery" class="sub-btn">配送</u-button>
<u-button type="success" @click="handleDelivery">配送</u-button> <u-button type="warning" @click="handleCancle" class="pri-btn">取消</u-button>
</uni-col> </view>
<uni-col :span="12">
<u-button type="primary" @click="handleCancle">取消</u-button>
</uni-col>
</uni-row>
</view> </view>
</template> </template>
@@ -71,12 +67,11 @@ export default {
handleDelivery() { handleDelivery() {
const _this = this; const _this = this;
this.$refs.form.validate().then(res => { this.$refs.form.validate().then(res => {
if (_this.formData.srcLocationCode && this.formData.robotType) { if (_this.formData.srcLocationCode && _this.formData.robotType) {
_this.$modal.loading('提交中') _this.$modal.loading('提交中')
delivery(_this.formData).then(res => { delivery(_this.formData).then(res => {
_this.$modal.closeLoading(); _this.$modal.closeLoading();
_this.$modal.msgSuccess("提交成功!"); _this.$modal.msgSuccess("提交成功!");
_this.reset();
setTimeout(() => { setTimeout(() => {
this.$tab.switchTab("/pages/work/index"); this.$tab.switchTab("/pages/work/index");
}, 500); }, 500);
@@ -100,7 +95,6 @@ export default {
cancel(arr).then(res => { cancel(arr).then(res => {
_this.$modal.closeLoading(); _this.$modal.closeLoading();
_this.$modal.msgSuccess("取消成功!"); _this.$modal.msgSuccess("取消成功!");
_this.reset();
setTimeout(() => { setTimeout(() => {
this.$tab.switchTab("/pages/work/index"); this.$tab.switchTab("/pages/work/index");
}, 500); }, 500);
@@ -112,16 +106,36 @@ export default {
}); });
}) })
}, },
reset() {
this.formData = {
id: null,
srcLocationCode: null,
taskTyp: null,
robotType: null,
ctnrTyp: null,
};
this.destLocationCode = null;
}
} }
} }
</script> </script>
<style scoped lang="scss">
.btns {
position: fixed;
bottom: 0;
left: 0;
right: 0;
display: flex;
justify-content: space-evenly;
background: #fff;
padding: 8px 0;
}
::v-deep .uni-easyinput__content-input {
height: 80rpx;
line-height: 60rpx;
display: flex;
align-items: center;
}
::v-deep .uni-select {
height: 60rpx;
}
.btns .sub-btn,
.btns .pri-btn {
width: 47%;
height: 60rpx;
}
</style>

View File

@@ -2,18 +2,13 @@
<view> <view>
<uni-forms ref="form" :modelValue="formData" :rules="rules"> <uni-forms ref="form" :modelValue="formData" :rules="rules">
<uni-forms-item label="发货点位:" :labelWidth='90' name="srcLocationCode"> <uni-forms-item label="发货点位:" :labelWidth='90' name="srcLocationCode">
<uni-easyinput type="text" suffixIcon="scan" @iconClick="scanSrcLocationUuid" <uni-easyinput suffixIcon="scan" @iconClick="scanSrcLocationUuid" v-model="formData.srcLocationCode" />
v-model="formData.srcLocationCode" />
</uni-forms-item> </uni-forms-item>
<uni-forms-item label="目的点位:" :labelWidth='90' name="destLocationCode"> <uni-forms-item label="目的点位:" :labelWidth='90' name="destLocationCode">
<uni-easyinput type="text" v-model="formData.destLocationCode" /> <uni-easyinput v-model="formData.destLocationCode" />
</uni-forms-item> </uni-forms-item>
</uni-forms> </uni-forms>
<uni-row :gutter="10"> <u-button type="primary" @click="handleCall">呼叫</u-button>
<uni-col>
<u-button type="success" @click="handleCall">呼叫</u-button>
</uni-col>
</uni-row>
</view> </view>
</template> </template>
@@ -71,7 +66,6 @@ export default {
addDeliveryTask(_this.formData).then(res => { addDeliveryTask(_this.formData).then(res => {
_this.$modal.closeLoading(); _this.$modal.closeLoading();
_this.$modal.msgSuccess("提交成功!"); _this.$modal.msgSuccess("提交成功!");
_this.reset();
setTimeout(() => { setTimeout(() => {
this.$tab.switchTab("/pages/work/index"); this.$tab.switchTab("/pages/work/index");
}, 500); }, 500);
@@ -81,10 +75,21 @@ export default {
} }
}) })
}, },
reset() {
this.formData.srcLocationCode = null;
this.formData.destLocationCode = null;
}
} }
} }
</script> </script>
<style scoped>
::v-deep .uni-easyinput__content-input {
height: 80rpx;
line-height: 60rpx;
display: flex;
align-items: center;
}
.u-button {
height: 10% !important;
position: absolute;
bottom: 0;
}
</style>

View File

@@ -0,0 +1,206 @@
<template>
<view>
<uni-forms ref="form" :modelValue="formData" :rules="rules">
<uni-forms-item label="作业编码:" :labelWidth='90' name="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" />
</uni-forms-item>
<uni-forms-item label="产品编码:" :labelWidth='90' name="ptNoTar">
<uni-easyinput type="text" v-model="formData.ptNoTar" />
</uni-forms-item>
<uni-forms-item label="产品名称:" :labelWidth='90' name="ptTitleTar">
<uni-easyinput type="text" v-model="formData.ptTitleTar" />
</uni-forms-item>
<uni-forms-item label="制程编码:" :labelWidth='90' name="opCode">
<uni-easyinput type="text" v-model="formData.opCode" />
</uni-forms-item>
<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>
<uni-datetime-picker type="datetime" v-model="formData.endTime" />
</view>
</uni-forms-item>
<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.js";
import { listPwoJob } from "@/api/mes/jobReport.js";
import { getEmployeeByCode } from "@/api/basic/employee.js"
export default {
data() {
return {
formData: {
machineAdjustmentDuration: null,
},
timeTake: null,
timeUnit: 'h',
rules: {
pwoJobCode: {
rules: [{
required: true,
errorMessage: '请扫描作业编码!'
}]
}
},
unitOptions: [
{ value: 'h', text: '小时' },
{ value: 'm', text: '分钟' },
{ value: 's', text: '秒' }
],
}
},
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.$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) {
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);
}
})
}
},
submit() {
const _this = this;
this.$refs.form.validate().then(res => {
if (_this.timeTake && _this.timeUnit && _this.formData.endTime) {
_this.changeTime();
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("结束时间不能早于开始时间");
return;
}
_this.$modal.loading('提交中')
addRecord(_this.formData).then(res => {
_this.$modal.closeLoading();
_this.$modal.msgSuccess("提交成功!");
// _this.reset();
setTimeout(() => {
this.$tab.switchTab("/pages/work/index");
}, 500);
})
} else {
_this.$modal.msg("请将信息补充完整");
}
})
},
changeTime() {
const _this = this;
if (_this.timeUnit === 'h') {
_this.formData.machineAdjustmentDuration = _this.timeTake * 60 * 60;
} else if (_this.timeUnit === 'm') {
_this.formData.machineAdjustmentDuration = _this.timeTake * 60;
} else {
_this.formData.machineAdjustmentDuration = _this.timeTake;
}
},
getCurrentDatetime() {
const now = new Date();
// 年4位
const year = now.getFullYear();
// 月补零2位
const month = String(now.getMonth() + 1).padStart(2, '0');
// 日补零2位
const day = String(now.getDate()).padStart(2, '0');
// 时补零2位
const hour = String(now.getHours()).padStart(2, '0');
// 分补零2位
const minute = String(now.getMinutes()).padStart(2, '0');
// 秒补零2位
const second = String(now.getSeconds()).padStart(2, '0');
// 拼接为 "YYYY-MM-DD HH:mm" 格式
return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
},
}
}
</script>
<style>
</style>

View File

@@ -281,6 +281,14 @@
"style": { "style": {
"navigationBarTitleText": "班产报工" "navigationBarTitleText": "班产报工"
} }
}, {
"path": "/pages/mes/jobReport/commissionRecord",
"permission": "mes:mesMachineSetupRecord:list",
"icon": "icon-gongdan",
"color": "linear-gradient(#95D097,#7BC47D)",
"style": {
"navigationBarTitleText": "调机记录"
}
}] }]
}, { }, {
"name": "合并标签", "name": "合并标签",