15 Commits

Author SHA1 Message Date
tao
66e8bc0a52 Merge branch 'main' of http://192.168.1.132:3000/Wance/rd_mes_uniapp 2026-01-14 11:59:34 +08:00
tao
81e061d08b 采购直接入库:修复库位复制异常问题
直接入库单:过滤掉上架数量为 0 的明细
2026-01-14 11:45:51 +08:00
256bbeb705 调机记录功能修改 2026-01-13 18:43:59 +08:00
tao
7ef0b48117 修复调机记录显示异常问题 2026-01-13 15:54:12 +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
5868f8fab9 '修改完成' 2025-12-22 09:48:01 +08:00
23da00a8f0 les功能提交 2025-12-19 16:40:25 +08:00
tao
54ec472bd4 初始化仓库 2025-12-18 14:11:48 +08:00
e96f277a68 删除 3.2.4.apk 2025-08-22 07:08:15 +00:00
1121 changed files with 159698 additions and 0 deletions

3
.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
node_modules
unpackage
.svn

15
.hbuilderx/launch.json Normal file
View File

@@ -0,0 +1,15 @@
{
"version" : "1.0",
"configurations" : [
{
"playground" : "standard",
"type" : "uni-app:app-android"
},
{
"app-plus" : {
"launchtype" : "local"
},
"type" : "uniCloud"
}
]
}

BIN
3.2.4.apk

Binary file not shown.

65
App.vue Normal file
View File

@@ -0,0 +1,65 @@
<script>
import config from '@/config';
import { getToken } from '@/utils/auth';
export default {
onLaunch: function() {
this.initApp();
const isDev = getDevelopment();
if (isDev) {
console.log('developing...');
}
},
methods: {
// 初始化应用
initApp() {
// 初始化应用配置
this.initConfig()
// 检查用户登录状态
//#ifdef H5
this.checkLogin()
//#endif
},
initConfig() {
this.globalData.config = config;
if (!uni.getStorageSync("base_url")) {
uni.setStorage({
key: 'base_url',
data: config.baseUrl
})
}
if (!uni.getStorageSync("wms_url")) {
uni.setStorage({
key: 'wms_url',
data: config.wmsUrl
})
}
},
checkLogin() {
if (!getToken()) {
console.log('check login');
this.$tab.reLaunch('/pages/login')
}
},
}
}
/**
* 判断是开发环境还是生产环境
*/
function getDevelopment() {
if (process.env.NODE_ENV === 'development') {
return true;
} else {
// 生产环境不应该打印console.log
console.log = () => {};
return false;
}
}
</script>
<style lang="scss">
@import "@/static/scss/index.scss";
@import "@/static/iconfont.css";
@import "@/static/iconfont/iconfont.css";
// @import url("https://at.alicdn.com/t/c/font_4828189_g8nazs212r6.css");
</style>

21
LICENSE Normal file
View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2022 若依
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

52
README.md Normal file
View File

@@ -0,0 +1,52 @@
<p align="center">
<img alt="logo" src="https://oscimg.oschina.net/oscnet/up-43e3941654fa3054c9684bf53d1b1d356a1.png">
</p>
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">RuoYi v1.0.0</h1>
<h4 align="center">基于UniApp开发的轻量级移动端框架</h4>
<p align="center">
<a href="https://gitee.com/y_project/RuoYi-App/stargazers"><img src="https://gitee.com/y_project/RuoYi-App/badge/star.svg?theme=dark"></a>
<a href="https://gitee.com/y_project/RuoYi-App"><img src="https://img.shields.io/badge/RuoYi-v1.0.0-brightgreen.svg"></a>
<a href="https://gitee.com/y_project/RuoYi-App/blob/master/LICENSE"><img src="https://img.shields.io/github/license/mashape/apistatus.svg"></a>
</p>
## 平台简介
RuoYi App 移动解决方案采用uniapp框架一份代码多终端适配同时支持APP、小程序、H5实现了与[RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue)、[RuoYi-Cloud](https://gitee.com/y_project/RuoYi-Cloud)完美对接的移动解决方案!目前已经实现登录、我的、工作台、编辑资料、头像修改、密码修改、常见问题、关于我们等基础功能。
* 配套后端代码仓库地址[RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) 或 [RuoYi-Cloud](https://github.com/yangzongzhuan/RuoYi-Cloud) 版本。
* 应用框架基于[uniapp](https://uniapp.dcloud.net.cn/)支持小程序、H5、Android和IOS。
* 前端组件采用[uni-ui](https://github.com/dcloudio/uni-ui)全端兼容的高性能UI框架。
* 阿里云折扣场:[点我进入](http://aly.ruoyi.vip),腾讯云秒杀场:[点我进入](http://txy.ruoyi.vip)&nbsp;&nbsp;
* 阿里云优惠券:[点我领取](https://www.aliyun.com/minisite/goods?userCode=brki8iof&share_source=copy_link),腾讯云优惠券:[点我领取](https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console)&nbsp;&nbsp;
## 技术文档
- 官网网站:[http://ruoyi.vip](http://ruoyi.vip)
- 文档地址:[http://doc.ruoyi.vip](http://doc.ruoyi.vip)
- H5页体验[http://h5.ruoyi.vip](http://h5.ruoyi.vip)
- QQ交流群 ①133713780
- 小程序体验
<img src="https://oscimg.oschina.net/oscnet/up-26c76dc90b92acdbd9ac8cd5252f07c8ad9.jpg" alt="小程序演示"/>
## 演示图
<table>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/up-3ea20e447ac621a161e395fb53ccc683d84.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-a6f23cf9a371a30165e135eff6d9ae89a9d.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-ff5f62016bf6624c1ff27eee57499dccd44.png"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/up-b9a582fdb26ec69d407fabd044d2c8494df.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-96427ee08fca29d77934cfc8d1b1a637cef.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-5fdadc582d24cccd7727030d397b63185a3.png"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/up-0a36797b6bcc50c36d40c3c782665b89efc.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-d77995cc00687cedd00d5ac7d68a07ea276.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-fa8f5ab20becf59b4b38c1b92a9989e7109.png"/></td>
</tr>
</table>

3
androidPrivacy.json Normal file
View File

@@ -0,0 +1,3 @@
{
"prompt" : "none"
}

91
api/basic/badCause.js Normal file
View File

@@ -0,0 +1,91 @@
import request from '@/utils/request'
export function checkBadCauseUniqueField(data){
return request({
url: '/basic/badCause/field/unique/check',
method: 'post',
data: data
})
}
// 查询制程不良原因列表
export function listBadCause(query) {
return request({
url: '/basic/badCause/list',
method: 'get',
params: query
})
}
// 查询制程不良原因列表
export function listAllBadCauseByOpCode(code) {
return request({
url: '/basic/badCause/all/list/' + code,
method: 'get',
})
}
// 查询制程不良原因列表
export function listAllBadCauseByOpCodeList(codeList) {
return request({
url: '/basic/badCause/all/list/cl/' + codeList,
method: 'get',
})
}
// 高级查询制程不良原因列表
export function advListBadCause(query) {
return request({
url: '/basic/badCause/advList',
method: 'get',
params: query
})
}
// 查询制程不良原因详细
export function getBadCause(id) {
return request({
url: '/basic/badCause/' + id,
method: 'get'
})
}
// 新增制程不良原因
export function addBadCause(data) {
return request({
url: '/basic/badCause',
method: 'post',
data: data
})
}
// 修改制程不良原因
export function updateBadCause(data) {
return request({
url: '/basic/badCause',
method: 'put',
data: data
})
}
// 修改制程不良原因
export function updateBadCauseList(data) {
return request({
url: '/basic/badCause/list',
method: 'put',
data: data
})
}
// 删除制程不良原因
export function delBadCause(id) {
return request({
url: '/basic/badCause/' + id,
method: 'delete'
})
}

27
api/basic/boxCode.js Normal file
View File

@@ -0,0 +1,27 @@
import request from '@/utils/request'
// 查询箱码
export function listBoxCode(query) {
return request({
url: '/basic/boxCode',
method: 'get',
params: query
})
}
// 新增箱码
export function addBoxCode(data) {
return request({
url: '/basic/boxCode',
method: 'post',
data: data
})
}
// 删除箱码
export function delBoxCode() {
return request({
url: '/basic/boxCode',
method: 'put'
})
}

161
api/basic/cutter.js Normal file
View File

@@ -0,0 +1,161 @@
import request from '@/utils/request'
// 查询物料列表
export function listMaterial(query) {
return request({
url: '/cutter/material/list',
method: 'get',
params: query
})
}
// 查询刀具实例列表
export function listEntity(query) {
return request({
url: '/cutter/entity/list',
method: 'get',
params: query
})
}
export function getEntity(id) {
return request({
url: '/cutter/entity/' + id,
method: 'get'
})
}
// 查询刀具使用记录列表
export function listUseRecord(query) {
return request({
url: '/cutter/useRecord/list',
method: 'get',
params: query
})
}
// 查询刀具使用记录详细
export function getUseRecord(id) {
return request({
url: '/cutter/useRecord/' + id,
method: 'get'
})
}
// 新增刀具使用记录
export function addUseRecord(data) {
return request({
url: '/cutter/useRecord',
method: 'post',
data: data
})
}
// 修改刀具使用记录
export function updateUseRecord(data) {
return request({
url: '/cutter/useRecord',
method: 'put',
data: data
})
}
// 查询设备管理列表
export function listEquipment(query) {
return request({
url: '/basic/equipment/list',
method: 'get',
params: query
})
}
// 删除刀具使用记录
export function delUseRecord(id) {
return request({
url: '/cutter/useRecord/' + id,
method: 'delete'
})
}
// 新增刀具上机记录
export function addStartUse(data) {
return request({
url: '/cutter/useRecord/start',
method: 'post',
data: data
})
}
// 新增刀具上机记录
export function installShank(data) {
return request({
url: '/cutter/useRecord/install/shank',
method: 'post',
data: data
})
}
// 更新刀具下机记录
export function removeShank(data) {
return request({
url: '/cutter/useRecord/remove/shank',
method: 'put',
data: data
})
}
// 新增刀刃上机记录
export function installBlade(data) {
return request({
url: '/cutter/useRecord/install/blade',
method: 'post',
data: data
})
}
// 更新刀具下机记录
export function removeBlade(data) {
return request({
url: '/cutter/useRecord/remove/blade',
method: 'put',
data: data
})
}
// 更新刀具下机记录
export function updateEndUse(data) {
return request({
url: '/cutter/useRecord/end',
method: 'put',
data: data
})
}
// 新增刀柄刀刃解绑记录
export function bindRecord(data) {
return request({
url: '/cutter/installRecord/bind',
method: 'post',
data: data
})
}
// 修改刀柄刀刃解绑记录
export function unbindRecord(data) {
return request({
url: '/cutter/installRecord/unbind',
method: 'put',
data: data
})
}
// 查询刀具安装记录列表
export function listInstallRecord(query) {
return request({
url: '/cutter/installRecord/list',
method: 'get',
params: query
})
}

44
api/basic/department.js Normal file
View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询部门管理列表
export function listDepartment(query) {
return request({
url: '/basic/department/list',
method: 'get',
params: query
})
}
// 查询部门管理详细
export function getDepartment(id) {
return request({
url: '/basic/department/' + id,
method: 'get'
})
}
// 新增部门管理
export function addDepartment(data) {
return request({
url: '/basic/department',
method: 'post',
data: data
})
}
// 修改部门管理
export function updateDepartment(data) {
return request({
url: '/basic/department',
method: 'put',
data: data
})
}
// 删除部门管理
export function delDepartment(id) {
return request({
url: '/basic/department/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,28 @@
import request from '@/utils/request'
//添加员工上机记录data内填写json格式{"empCode":"员工编码","eqpCode":"设备编码"}
export function addStart(data) {
return request({
url: '/basic/empEqpHistory/start',
method: 'post',
data:data
})
}
//添加员工下机记录data内填写json格式{"empCode":"员工编码","eqpCode":"设备编码"}
export function addEnd(data) {
return request({
url: '/basic/empEqpHistory/end',
method: 'put',
data:data
})
}
// 查询人员上机历史列表
export function listEmpEqpHistory(query) {
return request({
url: '/basic/empEqpHistory/list',
method: 'get',
params: query
})
}

View File

@@ -0,0 +1,61 @@
import request from '@/utils/request'
// 查询工位签到记录列表
export function listStationEmpHistory(query) {
return request({
url: '/basic/stationEmpHistory/list',
method: 'get',
params: query
})
}
// 高级查询工位签到记录列表
export function advListStationEmpHistory(query) {
return request({
url: '/basic/stationEmpHistory/advList',
method: 'get',
params: query
})
}
// 查询工位签到记录详细
export function getStationEmpHistory(id) {
return request({
url: '/basic/stationEmpHistory/' + id,
method: 'get'
})
}
// 新增工位签到记录(empCode, stationId)
export function addStationEmpHistory(data) {
return request({
url: '/basic/stationEmpHistory',
method: 'post',
data: data
})
}
// 新增工位签退记录(签到记录id)
export function handleSignOut(id) {
return request({
url: '/basic/stationEmpHistory/' + id,
method: 'post'
})
}
// 修改工位签到记录
export function updateStationEmpHistory(data) {
return request({
url: '/basic/stationEmpHistory',
method: 'put',
data: data
})
}
// 删除工位签到记录
export function delStationEmpHistory(id) {
return request({
url: '/basic/stationEmpHistory/' + id,
method: 'delete'
})
}

94
api/basic/employee.js Normal file
View File

@@ -0,0 +1,94 @@
import request from '@/utils/request'
// 查询员工管理列表
export function listEmployee(query) {
return request({
url: '/basic/employee/list',
method: 'get',
params: query
})
}
// 查询员工管理详细
export function getEmployee(id) {
return request({
url: '/basic/employee/' + id,
method: 'get'
})
}
// 新增员工管理
export function addEmployee(data) {
return request({
url: '/basic/employee',
method: 'post',
data: data
})
}
// 修改员工管理
export function updateEmployee(data) {
return request({
url: '/basic/employee',
method: 'put',
data: data
})
}
// 删除员工管理
export function delEmployee(id) {
return request({
url: '/basic/employee/' + id,
method: 'delete'
})
}
// 删除员工管理
export function printEmployees(ids) {
return request({
url: '/basic/employee/mergePrintPdfs',
method: 'post',
data: ids
})
}
// 获取采购部员工
export function listPurchaseDepartmentEmployee(query) {
return request({
url: '/basic/employee/getListByPurchaseDepartment',
method: 'get',
params: query
})
}
// 查询所有产线下的员工
export function listEmployeeInProLines() {
return request({
url: '/basic/lineEmployee/list',
method: 'get'
})
}
// 修改员工关联产线
export function updateEmployeeLineRel(data) {
return request({
url: '/basic/employee/line-rel',
method: 'put',
data: data
})
}
// 删除员工与产线的关联关系
export function delEmployeeLineRel(id) {
return request({
url: '/basic/employee/line-rel/' + id,
method: 'delete'
})
}
export function getEmployeeByCode(code) {
return request({
url: '/basic/employee/getEmpByCode/' + code,
method: 'get'
})
}

10
api/basic/equipment.js Normal file
View File

@@ -0,0 +1,10 @@
import request from '@/utils/request'
// 查询设备类列表
export function listEqpClass(query) {
return request({
url: '/basic/eqpClass/list',
method: 'get',
params: query
})
}

10
api/basic/location.js Normal file
View File

@@ -0,0 +1,10 @@
import request from '@/utils/wms-request'
// 查询库位列表
export function listLocation(query) {
return request({
url: '/basic/location/list',
method: 'get',
params: query
})
}

52
api/basic/proLine.js Normal file
View File

@@ -0,0 +1,52 @@
import request from '@/utils/request'
// 查询产线实例列表
export function listProLine(query) {
return request({
url: '/basic/proLine/list',
method: 'get',
params: query
})
}
// 查询产线实例详细
export function getProLine(id) {
return request({
url: '/basic/proLine/' + id,
method: 'get'
})
}
// 新增产线实例
export function addProLine(data) {
return request({
url: '/basic/proLine',
method: 'post',
data: data
})
}
// 修改产线实例
export function updateProLine(data) {
return request({
url: '/basic/proLine',
method: 'put',
data: data
})
}
// 删除产线实例
export function delProLine(id) {
return request({
url: '/basic/proLine/' + id,
method: 'delete'
})
}
export function printMerges(ids) {
return request({
url: '/basic/proLine/mergePrintPdfs',
method: 'post',
data: ids
})
}

52
api/basic/station.js Normal file
View File

@@ -0,0 +1,52 @@
import request from '@/utils/request'
// 查询工位列表
export function listStation(query) {
return request({
url: '/basic/station/list',
method: 'get',
params: query
})
}
// 查询工位详细
export function getStation(id) {
return request({
url: '/basic/station/' + id,
method: 'get'
})
}
// 新增工位
export function addStation(data) {
return request({
url: '/basic/station',
method: 'post',
data: data
})
}
// 修改工位
export function updateStation(data) {
return request({
url: '/basic/station',
method: 'put',
data: data
})
}
// 删除工位
export function delStation(id) {
return request({
url: '/basic/station/' + id,
method: 'delete'
})
}
export function printMerges(ids) {
return request({
url: '/basic/station/mergePrintPdfs',
method: 'post',
data: ids
})
}

62
api/basic/unit.js Normal file
View File

@@ -0,0 +1,62 @@
import request from '@/utils/request'
// 查询单位管理列表
export function listUnit(query) {
return request({
url: '/basic/unit/list',
method: 'get',
params: query
})
}
// 查询单位管理详细
export function getUnit(id) {
return request({
url: '/basic/unit/' + id,
method: 'get'
})
}
// 新增单位管理
export function addUnit(data) {
return request({
url: '/basic/unit',
method: 'post',
data: data
})
}
// 修改单位管理
export function updateUnit(data) {
return request({
url: '/basic/unit',
method: 'put',
data: data
})
}
// 删除单位管理
export function delUnit(id) {
return request({
url: '/basic/unit/' + id,
method: 'delete'
})
}
// 查询可转换计量单位列表
export function listUnitConvertible(query) {
return request({
url: '/basic/unit/listUnitConvertible',
method: 'get',
params: query
})
}
// 单位数量转换
export function convertBySecondUnitOrNum(query) {
return request({
url: '/basic/unit/convertBySecondUnitOrNum',
method: 'get',
params: query
})
}

55
api/esop/esop.js Normal file
View File

@@ -0,0 +1,55 @@
import request from '@/utils/request'
export function updatePwo(data){
return request({
url: '/mes/pwo',
method: 'put',
data: data
})
}
export function addCustomizeEsop(data){
return request({
url:'/esop/customizeEsop',
method: 'post',
data: data
})
}
// 查询产线实例列表
export function listProLine(query) {
return request({
url: '/basic/proLine/list',
method: 'get',
params: query
})
}
// 查询生产工单列表
export function listPwo(query) {
return request({
url: '/mes/pwo/list',
method: 'get',
params: query
})
}
// 查询工位列表
export function listStation(query) {
return request({
url: '/basic/station/list',
method: 'get',
params: query
})
}
// 查询生产工单作业列表
export function listPwoJob(query) {
return request({
url: '/mes/pwoJob/list',
method: 'get',
params: query
})
}

View File

@@ -0,0 +1,26 @@
import request from '@/utils/request'
/**
* 备料绑定
* @param {Object} data
* @return
*/
export function bind(data) {
return request({
url: '/les/location/bind',
method: 'put',
data: data,
})
}
/**
* 备料解绑
* @param {code}
* @return
*/
export function unBind(code) {
return request({
url: '/les/location/unbind/' + code,
method: 'put',
})
}

View File

@@ -0,0 +1,26 @@
import request from '@/utils/request'
/**
* 新增任务
* @param {Object} data
* @return
*/
export function addDeliveryTask(data) {
return request({
url: '/les/deliveryTask',
method: 'post',
data: data,
})
}
/**
*
* @param {code}
* @return
*/
export function findPreparation(code) {
return request({
url: '/les/location/findPreparation/' + code,
method: 'get',
})
}

View File

@@ -0,0 +1,24 @@
import request from '@/utils/request'
export function listData() {
return request({
url: '/les/deliveryTask/list',
method: 'get'
})
}
export function delivery(data) {
return request({
url: '/les/deliveryTask/handleDelivery',
method: 'post',
data: data
})
}
export function cancel(data) {
return request({
url: '/les/deliveryTask/handleCancel',
method: 'post',
data: data
})
}

View File

@@ -0,0 +1,21 @@
import request from '@/utils/request'
/**
* 新增任务
* @param {Object} data
* @return
*/
export function addDeliveryTask(data) {
return request({
url: '/les/deliveryTask',
method: 'post',
data: data,
})
}
export function getLastPalletRecyclingDest() {
return request({
url: '/les/deliveryTask/lastPalletRecyclingDest',
method: 'get',
})
}

47
api/login.js Normal file
View File

@@ -0,0 +1,47 @@
import request from '@/utils/request'
// 登录方法
export function login(username, password, code, uuid) {
const data = {
username,
password,
code,
uuid
}
return request({
'url': '/login',
headers: {
isToken: false
},
'method': 'post',
'data': data
})
}
// 获取用户详细信息
export function getInfo() {
return request({
'url': '/getInfo',
'method': 'get'
})
}
// 退出方法
export function logout() {
return request({
'url': '/logout',
'method': 'post'
})
}
// 获取验证码
export function getCodeImg() {
return request({
'url': '/captchaImage',
headers: {
isToken: false
},
method: 'get',
timeout: 20000
})
}

68
api/mes/bom.js Normal file
View File

@@ -0,0 +1,68 @@
import request from '@/utils/request'
/**
* 查询开炉记录单列表
* @param {any} query
* @return
*/
export function listMesFurnaceOperationRecord(query) {
return request({
url: '/mes/mesFurnaceOperationRecord/list',
method: 'get',
params: query
})
}
/**
* 新增开炉记录单
* @param {Object} data
*/
export function addMesFurnaceOperationRecord(data) {
return request({
url: '/mes/mesFurnaceOperationRecord',
method: 'post',
data: data
})
}
/**
* 关炉
* @param {Object} data
*/
export function closeFurnace(ids) {
return request({
url: '/mes/mesFurnaceOperationRecord/closeFurnace/' + ids,
method: 'put'
})
}
/**
* 开炉记录添加
* @param {Object} data
*/
export function addMesFurnaceOperationRecordDetail(data) {
return request({
url: '/mes/mesFurnaceOperationRecordDetail',
method: 'post',
data: data
})
}
/**
* 查询开炉记录明细单列表
* @param {Object} query
*/
export function listMesFurnaceOperationRecordDetail(query) {
return request({
url: '/mes/mesFurnaceOperationRecordDetail/list',
method: 'get',
params: query
})
}
/**
* 修改开炉记录明细单
* @param {Object} data
*/
export function updateMesFurnaceOperationRecordDetail(data) {
return request({
url: '/mes/mesFurnaceOperationRecordDetail',
method: 'put',
data: data
})
}

116
api/mes/jobIn.js Normal file
View File

@@ -0,0 +1,116 @@
import request from '@/utils/request'
export function handleConvert(id) {
return request({
url: '/mes/pwoJob/convert/' + id,
method: 'post'
})
}
export function getEquipment(id) {
return request({
url: '/basic/equipment/' + id,
method: 'get'
})
}
// 查询车间物料转移单详细
export function getConversion(id) {
return request({
url: '/mes/conversion/' + id,
method: 'get'
})
}
//计算工单已领料各物料总数
export function calculateCvTotalNum(data) {
return request({
url: '/mes/conversion/calculateCvTotalNum',
method: 'post',
data: data
})
}
// 查询车间物料转移单列表
export function listConversion(query) {
return request({
url: '/mes/conversion/list',
method: 'get',
params: query
})
}
export function addConversion(data) {
return request({
url: '/mes/conversion',
method: 'post',
data: data
})
}
// 查询人员上机历史列表
export function listEmpEqpHistory(query) {
return request({
url: '/basic/empEqpHistory/list',
method: 'get',
params: query
})
}
// 查询员工管理列表
export function listEmployee(query) {
return request({
url: '/basic/employee/list',
method: 'get',
params: query
})
}
// 作业开工
export function pwoStart(id, date) {
return request({
url: '/mes/pwoJob/start/' + id + '/' + date,
method: 'post',
})
}
// 作业暂停
export function pwoStop(id, date) {
return request({
url: '/mes/pwoJob/stop/' + id + '/' + date,
method: 'post',
})
}
/** 获取近7天新建的工单状态 */
export function getPwoStatus() {
return request({
url: '/report/mes/pwo/pwoStatus',
method: 'get',
})
}
/** 获取开屏首页生产报表数据 */
export function getProduceReport() {
return request({
url: '/report/mes/pwo/product',
method: 'get',
})
}
// 查询报工率
export function reportRate(query) {
return request({
url: '/report/mes/pwo/reportRate',
method: 'get',
params: query
})
}
/** 获取近7天新建的工单状态 */
export function getWeekReport() {
return request({
url: '/report/mes/pwo/weekReport',
method: 'get',
})
}

133
api/mes/jobReport.js Normal file
View File

@@ -0,0 +1,133 @@
import request from '@/utils/request'
// 新增工序开工记录
export function addStart(data) {
return request({
url: '/mes/job/start-record',
method: 'post',
data
})
}
export function addReportOnce(data) {
return request({
url: '/mes/report/addOnce',
method: 'post',
data: data
})
}
export function listPwoJob(query) {
return request({
url: '/mes/pwoJob/list',
method: 'get',
params: query
})
}
export function addReport(data) {
return request({
url: '/mes/report',
method: 'post',
data: data
})
}
export function pieceReport(pieceNo, mesJobReport) {
return request({
url: '/mes/report/pieceReport/' + pieceNo,
method: 'post',
data: mesJobReport
})
}
export function addPiece(pieceNo) {
return request({
url: '/mes/conversion/addPiece',
method: 'post',
data: pieceNo
})
}
export function getEquipment(id) {
return request({
url: '/basic/equipment/' + id,
method: 'get'
})
}
/**
* 设备列表
* @param {Object} query
*/
export function listEquipment(query) {
return request({
url: '/basic/equipment/list',
method: 'get',
params: query
})
}
//查询作业根据id如作业编码为JOB1000020,那么id就为20
// 查询生产工单作业详细
export function getPwoJob(id) {
return request({
url: '/mes/pwoJob/' + id,
method: 'get'
})
}
//修改作业绑定设备必须需要上传作业的ideqpId
// 修改生产工单作业
export function updatePwoJob(data) {
return request({
url: '/mes/pwoJob',
method: 'put',
data: data
})
}
// 工单报工
export function pwoReport(data) {
return request({
url: '/mes/pwoReport/pwoReport',
method: 'post',
data: data
})
}
// 添加件号报工录入
export function addReportEnterPiece(data) {
return request({
url: '/mes/report/enterPiece',
method: 'post',
data: data
})
}
// 添加流水线报工
export function addPipelineReport(data) {
return request({
url: '/mes/report/addPipeline',
method: 'post',
data: data
})
}
// 查询作业报工详细
export function getReport(id) {
return request({
url: '/mes/report/' + id,
method: 'get'
})
}
export function confirmReport(mesJobReportCode) {
return request({
url: '/mes/report/confirmReport',
method: 'post',
data: mesJobReportCode
})
}

102
api/mes/material.js Normal file
View File

@@ -0,0 +1,102 @@
import request from '@/utils/request'
// 查询物料列表
export function listMaterial(query) {
return request({
url: '/mm/material/list',
method: 'get',
params: query
})
}
export function advListMaterial(query) {
return request({
url: '/mm/material/advList',
method: 'get',
params: query
})
}
export function getSimpleProductList() {
return request({
url: '/mm/material/getSimpleProductList',
methods: 'get'
})
}
/**
* 查询物料详细
* @param {Object} materialId 物料id
*/
export function getMaterial(materialId) {
return request({
url: '/mm/material/' + materialId,
method: 'get'
})
}
export function getMatByCode(code) {
return request({
url: '/mm/material/getMatByCode/' + code,
method: 'get'
})
}
export function importTemplate() {
return request({
url: '/mm/material/importTemplate',
method: 'get'
})
}
// 新增物料
export function addMaterial(data) {
return request({
url: '/mm/material',
method: 'post',
data: data
})
}
// 修改物料
export function updateMaterial(data) {
return request({
url: '/mm/material',
method: 'put',
data: data
})
}
// 删除物料
export function delMaterial(materialId) {
return request({
url: '/mm/material/' + materialId,
method: 'delete'
})
}
// 刷新产品获取
export function reloadPoMat() {
return request({
url: '/mm/material/reloadPoMat',
method: 'post'
})
}
// 打印物料标签
export function mergePrintPdfs(data) {
return request({
url: '/mm/material/mergePrintPdfs',
method: 'post',
data: data
})
}
//同步U9物料信息
export function getU9Material() {
return request({
url: '/mm/material/getU9Material',
method: 'post',
})
}

View File

@@ -0,0 +1,71 @@
import request from '@/utils/request'
// 查询单次报工标识记录列表
export function listMesJobSingleReportSign(query) {
return request({
url: '/mes/mesJobSingleReportSign/list',
method: 'get',
params: query
})
}
// 高级查询单次报工标识记录列表
export function advListMesJobSingleReportSign(query) {
return request({
url: '/mes/mesJobSingleReportSign/advList',
method: 'get',
params: query
})
}
// 查询单次报工标识记录详细
export function getMesJobSingleReportSign(id) {
return request({
url: '/mes/mesJobSingleReportSign/' + id,
method: 'get'
})
}
// 新增单次报工标识记录
export function addMesJobSingleReportSign(data) {
return request({
url: '/mes/mesJobSingleReportSign',
method: 'post',
data: data
})
}
export function reportConfirm(data) {
return request({
url: '/mes/mesJobSingleReportSign/reportConfirm/' + data,
method: 'post'
})
}
export function qualityConfirm(data) {
return request({
url: '/mes/mesJobSingleReportSign/qualityConfirm/' + data,
method: 'post'
})
}
export function whInConfirm(data) {
return request({
url: '/mes/mesJobSingleReportSign/whInConfirm/' + data,
method: 'post'
})
}
// 修改单次报工标识记录
export function updateMesJobSingleReportSign(data) {
return request({
url: '/mes/mesJobSingleReportSign',
method: 'put',
data: data
})
}
// 删除单次报工标识记录
export function delMesJobSingleReportSign(id) {
return request({
url: '/mes/mesJobSingleReportSign/' + id,
method: 'delete'
})
}

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

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询工单记录单明细列表
export function listMesPwoRecordDetail(query) {
return request({
url: '/mes/mesPwoRecordDetail/list',
method: 'get',
params: query
})
}
// 查询工单记录单明细详细
export function getMesPwoRecordDetail(id) {
return request({
url: '/mes/mesPwoRecordDetail/' + id,
method: 'get'
})
}
// 新增工单记录单明细
export function addMesPwoRecordDetail(data) {
return request({
url: '/mes/mesPwoRecordDetail',
method: 'post',
data: data
})
}
// 修改工单记录单明细
export function updateMesPwoRecordDetail(data) {
return request({
url: '/mes/mesPwoRecordDetail',
method: 'put',
data: data
})
}
// 删除工单记录单明细
export function delMesPwoRecordDetail(id) {
return request({
url: '/mes/mesPwoRecordDetail/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询工单记录单编码列表
export function listMesPwoRecordrecord(query) {
return request({
url: '/mes/mesPwoRecordrecord/list',
method: 'get',
params: query
})
}
// 查询工单记录单编码详细
export function getMesPwoRecordrecord(id) {
return request({
url: '/mes/mesPwoRecordrecord/' + id,
method: 'get'
})
}
// 新增工单记录单编码
export function addMesPwoRecordrecord(data) {
return request({
url: '/mes/mesPwoRecordrecord',
method: 'post',
data: data
})
}
// 修改工单记录单编码
export function updateMesPwoRecordrecord(data) {
return request({
url: '/mes/mesPwoRecordrecord',
method: 'put',
data: data
})
}
// 删除工单记录单编码
export function delMesPwoRecordrecord(id) {
return request({
url: '/mes/mesPwoRecordrecord/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,53 @@
import request from '@/utils/request'
// 查询模具实例管理列表
export function listMould(query) {
return request({
url: '/tpmMould/mould/list',
method: 'get',
params: query
})
}
// 查询共模作业组列表
export function listMesMouldShareGroup(query) {
return request({
url: '/mes/mesMouldShareGroup/list',
method: 'get',
params: query
})
}
// 查询共模作业组详细
export function getMesMouldShareGroup(id) {
return request({
url: '/mes/mesMouldShareGroup/' + id,
method: 'get'
})
}
// 新增共模作业组
export function addMesMouldShareGroup(data) {
return request({
url: '/mes/mesMouldShareGroup',
method: 'post',
data: data
})
}
// 修改共模作业组
export function updateMesMouldShareGroup(data) {
return request({
url: '/mes/mesMouldShareGroup',
method: 'put',
data: data
})
}
// 删除共模作业组
export function delMesMouldShareGroup(id) {
return request({
url: '/mes/mesMouldShareGroup/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询共模作业组明细列表
export function listMesMouldShareGroupDetail(query) {
return request({
url: '/mes/mesMouldShareGroupDetail/list',
method: 'get',
params: query
})
}
// 查询共模作业组明细详细
export function getMesMouldShareGroupDetail(id) {
return request({
url: '/mes/mesMouldShareGroupDetail/' + id,
method: 'get'
})
}
// 新增共模作业组明细
export function addMesMouldShareGroupDetail(data) {
return request({
url: '/mes/mesMouldShareGroupDetail',
method: 'post',
data: data
})
}
// 修改共模作业组明细
export function updateMesMouldShareGroupDetail(data) {
return request({
url: '/mes/mesMouldShareGroupDetail',
method: 'put',
data: data
})
}
// 删除共模作业组明细
export function delMesMouldShareGroupDetail(id) {
return request({
url: '/mes/mesMouldShareGroupDetail/' + id,
method: 'delete'
})
}

44
api/mes/productSuit.js Normal file
View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询产品套装列表
export function listMesProductSuit(query) {
return request({
url: '/mes/mesProductSuit/list',
method: 'get',
params: query
})
}
// 查询产品套装详细
export function getMesProductSuit(id) {
return request({
url: '/mes/mesProductSuit/' + id,
method: 'get'
})
}
// 新增产品套装
export function addMesProductSuit(data) {
return request({
url: '/mes/mesProductSuit',
method: 'post',
data: data
})
}
// 修改产品套装
export function updateMesProductSuit(data) {
return request({
url: '/mes/mesProductSuit',
method: 'put',
data: data
})
}
// 删除产品套装
export function delMesProductSuit(id) {
return request({
url: '/mes/mesProductSuit/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询产品套装明细列表
export function listMesProductSuitDetail(query) {
return request({
url: '/mes/mesProductSuitDetail/list',
method: 'get',
params: query
})
}
// 查询产品套装明细详细
export function getMesProductSuitDetail(id) {
return request({
url: '/mes/mesProductSuitDetail/' + id,
method: 'get'
})
}
// 新增产品套装明细
export function addMesProductSuitDetail(data) {
return request({
url: '/mes/mesProductSuitDetail',
method: 'post',
data: data
})
}
// 修改产品套装明细
export function updateMesProductSuitDetail(data) {
return request({
url: '/mes/mesProductSuitDetail',
method: 'put',
data: data
})
}
// 删除产品套装明细
export function delMesProductSuitDetail(id) {
return request({
url: '/mes/mesProductSuitDetail/' + id,
method: 'delete'
})
}

368
api/mes/pwo.js Normal file
View File

@@ -0,0 +1,368 @@
import request from '@/utils/request'
// 查询生产工单列表
export function listPwo(query) {
return request({
url: '/mes/pwo/list',
method: 'get',
params: query
})
}
export function acquireOriginMat(data) {
return request({
url: '/mes/pwo/acquireOriginMat',
method: 'post',
data
})
}
export function refreshPwo(data) {
return request({
url: '/mes/pwo/refreshPwo',
method: 'post',
data: data
})
}
export function advListQuery(query) {
return request({
url: '/mes/pwo/advList',
method: 'get',
params: query
})
}
export function listReworkRec(pwoCode) {
return request({
url: '/mes/pwo/listReworkRec/' + pwoCode,
method: 'get',
})
}
// 查询生产工单列表(模糊查询产品)
export function listPwoLike(query) {
return request({
url: '/mes/pwo/listLike',
method: 'get',
params: query
})
}
// 查询生产工单列表(模糊查询产品)
export function listFinishPwoLike(query) {
return request({
url: '/mes/pwo/listFinishLike',
method: 'get',
params: query
})
}
// 查询生产工单详细
export function getPwo(id) {
return request({
url: '/mes/pwo/' + id,
method: 'get'
})
}
export function selectPwoNeededMats(id) {
return request({
url: '/mes/pwo/selectPwoNeededMats/' + id,
method: 'get'
})
}
// 查询生产工单详细
export function getPwoByCode(pwoCode) {
return request({
url: '/mes/pwo/pwoCode/' + pwoCode,
method: 'get'
})
}
// 新增生产工单
export function addPwo(data) {
return request({
url: '/mes/pwo',
method: 'post',
data: data
})
}
// 修改生产工单
export function updatePwo(data) {
return request({
url: '/mes/pwo',
method: 'put',
data: data
})
}
// 删除生产工单
export function delPwo(id) {
return request({
url: '/mes/pwo/' + id,
method: 'delete'
})
}
export function schedulePwoY(id) {
return request({
url: '/mes/pwo/scheduleY/' + id,
method: 'post'
})
}
export function schedulePwoN(id) {
return request({
url: '/mes/pwo/scheduleN/' + id,
method: 'post'
})
}
export function printPwo(id) {
return request({
url: '/mes/pwo/print/' + id,
method: 'post'
})
}
// 投料
export function materialFeed(pwo) {
return request({
url: '/mes/pwo/materialFeed',
method: 'post',
data: pwo
})
}
export function materialFeedByReturn(row) {
return request({
url: '/mes/pwo/materialFeedByReturn',
method: 'post',
data: row
})
}
export function handleStop(id) {
return request({
url: '/mes/pwo/stop/' + id,
method: 'post'
})
}
export function handleStart(id) {
return request({
url: '/mes/pwo/start/' + id,
method: 'post'
})
}
export function handleIn(id, whCode, stockWhList) {
return request({
url: '/mes/pwo/warehouseInGet/' + id + '/' + whCode,
method: 'post',
data: stockWhList
})
}
// 根据工时节拍计算计划完工时间
export function handlePlan(id) {
return request({
url: '/mes/pwo/handlePlan/' + id,
method: 'post'
})
}
export function calculateNum(id, type, recycleType) {
return request({
url: '/mes/pwo/calculateNum/' + id + '/' + type + '/' + recycleType,
method: 'post'
})
}
export function feedCalculateNum(id, type, recycleType) {
return request({
url: '/mes/pwo/feedCalculateNum/' + id + '/' + type + '/' + recycleType,
method: 'post'
})
}
export function feedCalculateNumByPwo(data, type) {
return request({
url: '/mes/pwo/feedCalculateNumByPwo/' + type,
method: 'post',
data: data
})
}
export function feedCalculateNumByProcess(data) {
return request({
url: '/mes/pwo/feedCalculateNumByProcess',
method: 'post',
data: data
})
}
export function addRework(data) {
return request({
url: '/mes/pwo/addRework',
method: 'post',
data: data
})
}
export function addReformPwo(data) {
return request({
url: '/mes/pwo/addReformPwo',
method: 'post',
data: data
})
}
export function getListByCodes(data) {
return request({
url: '/mes/pwo/getListByCodes',
method: 'post',
data: data
})
}
export function reflexToMps(pwoCode, mesMpsCode) {
return request({
url: '/mes/pwo/reflexToMps/' + pwoCode + '/' + mesMpsCode,
method: 'post',
})
}
export function listApsxPwo() {
return request({
url: '/mes/pwo/listApsxPwo',
method: 'get',
})
}
export function selectMatReq(data) {
return request({
url: '/mes/pwo/selectMatReq',
method: 'post',
data: data
})
}
export function pwoAtificialClose(data) {
return request({
url: '/mes/pwo/pwoAtificialClose',
method: 'post',
data: data
})
}
export function mergePwoPdfs(data, command) {
return request({
url: '/mes/pwo/mergePwoPdfs/' + command,
method: 'post',
data: data
})
}
// export function mergePwoPdfs(data) {
// return request({
// url: '/mes/pwo/mergePwoPdfs',
// method: 'post',
// data: data
// })
// }
export function handleSyncDraw(ids) {
return request({
url: '/mes/pwo/syncDraw',
method: 'post',
data: ids
})
}
export function reflexToPoDtl(pwoId, poDtlId) {
return request({
url: '/mes/pwo/reflexToPoDtl/' + pwoId + '/' + poDtlId,
method: 'post'
})
}
// 查询工单拆分小数精度
export function getSplitPrecision(id) {
return request({
url: '/mes/pwo/splitPrecision',
method: 'get'
})
}
export function splitPwoByReports(data) {
return request({
url: '/mes/pwo/splitPwoByReport',
method: 'post',
data: data
})
}
//同步工单
export function synchronizeIntegrate() {
return request({
url: '/mes/pwo/synchronizeIntegrate',
method: 'post',
})
}
// 获取工单 + 流转结存表
export function getFlowStore(data) {
return request({
url: '/mes/pwo/list/flowStore',
method: 'get',
params: data
})
}
// 工单下的作业依次绑定产线内的设备
export function setProductionLine(data) {
return request({
url: '/mes/pwo/productionLine',
method: 'put',
data: data
})
}
// 工单下的作业批量绑定产线内的设备
export function setProductionLineBatch(data) {
return request({
url: '/mes/pwo/productionLineBatch',
method: 'put',
data: data
})
}
export function pwoForceClose(ids) {
return request({
url: '/mes/pwo/forceClose',
method: 'post',
data: ids
})
}
export function pwoForceReopen(ids) {
return request({
url: '/mes/pwo/pwoForceReopen',
method: 'post',
data: ids
})
}
/**
* 根据关联订单编码查询可报工数量总和
* @param {*} relOrderDetailCode 关联订单编码
* @returns
*/
export function getReportableNumByRealOrderCode(relOrderDetailCode) {
return request({
url: '/mes/pwo/reportableNum/' + relOrderDetailCode,
method: 'get',
})
}

99
api/mes/pwoDraw.js Normal file
View File

@@ -0,0 +1,99 @@
import wmsRequest from '@/utils/wms-request'
import request from '@/utils/request'
export function getDrawMat(data) {
return wmsRequest({
url: '/produce/draw/task/getDrawMat',
method: 'post',
data: data
})
}
export function addConversion(data) {
return request({
url: '/mes/conversion',
method: 'post',
data: data
})
}
// 查询生产工单列表
export function listPwo(query) {
return request({
url: '/mes/pwo/list',
method: 'get',
params: query
})
}
// 查询生产工单详细
export function getPwo(id) {
return request({
url: '/mes/pwo/' + id,
method: 'get'
})
}
// 查询生产订单列表
export function listPo(query) {
return request({
url: '/mes/po/list',
method: 'get',
params: query
})
}
// 查询作业报工列表
export function listReport(query) {
return request({
url: '/mes/report/list',
method: 'get',
params: query
})
}
//工单入库
export function handleIn(id, whCode, stockWhList) {
return request({
url: '/mes/pwo/warehouseInGet/' + id + '/' + whCode,
method: 'post',
data: stockWhList
})
}
//工单关闭
export function pwoAtificialClose(data) {
return request({
url: '/mes/pwo/pwoAtificialClose',
method: 'post',
data: data
})
}
// 查询报工率
export function reportRate(query) {
return request({
url: '/report/mes/pwo/reportRate',
method: 'get',
params: query
})
}
export function listCirculateBalance(data) {
return request({
url: '/mes/pwoJob/listCirculateBalance',
method: 'get',
params: data
})
}
export function listSimpleCirculateBalance(data) {
return request({
url: '/mes/pwoJob/listSimpleCirculateBalance',
method: 'get',
params: data
})
}

79
api/mes/pwoIn.js Normal file
View File

@@ -0,0 +1,79 @@
import wmsRequest from '@/utils/wms-request'
import request from '@/utils/request'
export function getInMat(data) {
return wmsRequest({
url: '/produce/product/task/getMatDetail',
method: 'post',
data: data
})
}
export function addConversion(data) {
return request({
url: '/mes/conversion',
method: 'post',
data: data
})
}
// 查询物料库存信息列表
export function listStock(query) {
return request({
url: '/mes/stock/list',
method: 'get',
params: query
})
}
export function customizeConvert(data) {
return request({
url: '/produce/transfer/customizeConvert',
method: 'post',
data: data
})
}
/**
* @param {Object} query
* 查询生产工单列表(模糊查询产品)
*/
export function listPwoLike(query) {
return request({
url: '/mes/pwo/listLike',
method: 'get',
params: query
})
}
// 查询生产工单作业列表(模糊查询产品)
export function listPwoJobLike(query) {
return request({
url: '/mes/pwoJob/listLike',
method: 'get',
params: query
})
}
/**
* 查询生产工单详细
* @param {Object} pwoCode
*/
export function getPwoByCode(pwoCode) {
return request({
url: '/mes/pwo/pwoCode/' + pwoCode,
method: 'get'
})
}
/**
* 查询生产工单详细明细
* @param {Object} data
*/
export function getDetailData(data) {
return request({
url: '/mes/conversion/getDetailData',
method: 'post',
data: data
})
}

81
api/mes/shiftJob.js Normal file
View File

@@ -0,0 +1,81 @@
import request from '@/utils/request'
// 查询班次作业列表
export function listShiftJob(query) {
return request({
url: '/mes/shiftJob/list',
method: 'get',
params: query
})
}
// 模糊查询班次作业列表
export function listLikeShiftJob(query) {
return request({
url: '/mes/shiftJob/listLike',
method: 'get',
params: query
})
}
// 查询班次作业列表以及关联数据
export function listShiftJobWithAssociatedData(query) {
return request({
url: '/mes/shiftJob/withAssociatedData/list',
method: 'get',
params: query
})
}
// 高级查询班次作业列表
export function advListShiftJob(query) {
return request({
url: '/mes/shiftJob/advList',
method: 'get',
params: query
})
}
// 查询班次作业详细
export function getShiftJob(id) {
return request({
url: '/mes/shiftJob/' + id,
method: 'get'
})
}
// 查询班次作业详细
export function getShiftJobByShiftJobCode(shiftJobCode) {
return request({
url: '/mes/shiftJob/shiftJobCode/' + shiftJobCode,
method: 'get'
})
}
// 新增班次作业
export function addShiftJob(data) {
return request({
url: '/mes/shiftJob',
method: 'post',
data: data
})
}
// 修改班次作业
export function updateShiftJob(data) {
return request({
url: '/mes/shiftJob',
method: 'put',
data: data
})
}
// 删除班次作业
export function delShiftJob(id) {
return request({
url: '/mes/shiftJob/' + id,
method: 'delete'
})
}

101
api/mes/shiftTask.js Normal file
View File

@@ -0,0 +1,101 @@
import request from '@/utils/request'
// 查询班产任务列表
export function listShiftTask(query) {
return request({
url: '/mes/shiftTask/list',
method: 'get',
params: query
})
}
// 查询班产任务列表以及关联的数据
export function listShiftTaskWithAssociatedData(query) {
return request({
url: '/mes/shiftTask/withAssociatedData/list',
method: 'get',
params: query
})
}
// 高级查询班产任务列表
export function advListShiftTask(query) {
return request({
url: '/mes/shiftTask/advList',
method: 'get',
params: query
})
}
// 查询班产任务详细
export function getShiftTask(id) {
return request({
url: '/mes/shiftTask/' + id,
method: 'get'
})
}
// 新增班产任务
export function addShiftTask(data) {
return request({
url: '/mes/shiftTask',
method: 'post',
data: data
})
}
// 修改班产任务
export function updateShiftTask(data) {
return request({
url: '/mes/shiftTask',
method: 'put',
data: data
})
}
// 删除班产任务
export function delShiftTask(id) {
return request({
url: '/mes/shiftTask/' + id,
method: 'delete'
})
}
// 根据工单生成班产任务、班产作业
export function generateShiftTaskFromPwo(data) {
return request({
url: '/mes/shiftTask/generate/fromPwo',
method: 'post',
data: data
})
}
// 根据工单生成班产任务、班产作业并打印
export function generateShiftTaskAndPrintFromPwo(data) {
return request({
url: '/mes/shiftTask/generateAndPrint/fromPwo',
method: 'post',
data: data
})
}
export function mergeTaskPdfs(ids, template) {
return request({
url: '/mes/shiftTask/mergeTaskPdfs/' + template,
method: 'post',
data: ids
})
}
export function printShiftTask(id) {
return request({
url: '/mes/shiftTask/print/' + id,
method: 'post'
})
}

View File

@@ -0,0 +1,76 @@
import request from '@/utils/wms-request'
/**
* 查询件号发货清单列表
* @param {Object} data
*/
export function listWmsPieceOutRecord(data) {
return request({
url: '/sale/wmsPieceOutRecord/list',
method: 'get',
data: data
})
}
/**
* 新增件号发货清单
* @param {Object} data
*/
export function addWmsPieceOutRecord(data) {
return request({
url: '/sale/wmsPieceOutRecord',
method: 'post',
data: data
})
}
/**
* 根据工业条码查询物料组件
* @param {Object} matpieceBarcode 工业条码
*/
export function getSubassembly(pieceBarcode) {
return request({
url: '/basic/components/list/' + pieceBarcode,
method: 'get',
})
}
/**
* 保存组件条码
* @param {Object} 工业条码
* @param {Object} 组件码
*/
export function insertSubassembly(pieceBarcode, componentCode) {
return request({
url: '/basic/components/',
method: 'post',
data: {
pieceBarcode,
componentCode
}
})
}
/**
* 根据id删除组件
* @param {string} id
*/
export function deletSubassembly(id) {
return request({
url: '/basic/components/' + id,
method: 'delete',
})
}
/**
* 箱码出库
* @param {string} 工业条码
* @param {string} 客户
* @param {string} 箱码
*/
export function addWmsBoxOutRecord(data) {
return request({
url: '/sale/wmsPieceOutRecord/out',
method: 'post',
data
})
}

51
api/qc/ppom.js Normal file
View File

@@ -0,0 +1,51 @@
import request from '@/utils/request'
// 查询计划制造工艺PBOM列表
export function listPbom(query) {
return request({
url: '/mm/ppbom/list',
method: 'get',
params: query
})
}
// 查询计划制造工艺PBOM详细
export function getPbom(id) {
return request({
url: '/mm/ppbom/' + id,
method: 'get'
})
}
// 新增计划制造工艺PBOM
export function addPbom(data) {
return request({
url: '/mm/ppbom',
method: 'post',
data: data
})
}
// 修改计划制造工艺PBOM
export function updatePbom(data) {
return request({
url: '/mm/ppbom',
method: 'put',
data: data
})
}
// 删除计划制造工艺PBOM
export function delPbom(id) {
return request({
url: '/mm/ppbom/' + id,
method: 'delete'
})
}
export function importTemplate() {
return request({
url: "/mm/ppbom/importTemplate",
method: 'get'
})
}

171
api/qc/qc.js Normal file
View File

@@ -0,0 +1,171 @@
import request from '@/utils/request'
import upload from '@/utils/upload'
export function uploadImage(data) {
return upload({
url: '/common/upload',
filePath: data.filePath
})
}
// 查询质检单列表
export function listQualityBill(query) {
return request({
url: '/quality/qualityBill/list',
method: 'get',
params: query
})
}
// 查询质检单详细
export function getQualityBill(id) {
return request({
url: '/quality/qualityBill/' + id,
method: 'get'
})
}
// 新增质检单
export function addQualityBill(data) {
return request({
url: '/quality/qualityBill',
method: 'post',
data: data
})
}
// 修改质检单
export function updateQualityBill(data) {
return request({
url: '/quality/qualityBill',
method: 'put',
data: data
})
}
// 删除质检单
export function delQualityBill(id) {
return request({
url: '/quality/qualityBill/' + id,
method: 'delete'
})
}
export function listQualityBillByBatchNo(batchNo) {
return request({
url: '/quality/qualityBill/listByBatchNo/' + batchNo,
method: 'get',
})
}
// 查询质检记录单列表
export function listQualityHistory(query) {
return request({
url: '/quality/qualityHistory/list',
method: 'get',
params: query
})
}
// 查询质检记录单详细
export function getQualityHistory(id) {
return request({
url: '/quality/qualityHistory/' + id,
method: 'get'
})
}
// 新增质检记录单
export function addQualityHistory(data) {
return request({
url: '/quality/qualityHistory',
method: 'post',
data: data
})
}
// 修改质检记录单
export function updateQualityHistory(data) {
return request({
url: '/quality/qualityHistory',
method: 'put',
data: data
})
}
// 删除质检记录单
export function delQualityHistory(id) {
return request({
url: '/quality/qualityHistory/' + id,
method: 'delete'
})
}
// export function addQualityHistoryList(data) {
// return request({
// url: '/quality/qualityHistory/detail',
// method: 'post',
// data: data
// })
// }
export function addQualityHistoryList(data, detailId) {
return request({
url: '/quality/qualityHistory/detail',
method: 'post',
data: data,
params: {
detailId: detailId
}
})
}
// 查询质检标准列列表
export function listStandardList(query) {
return request({
url: '/quality/standardList/list',
method: 'get',
params: query
})
}
// 查询质检标准列详细
export function getStandardList(id) {
return request({
url: '/quality/standardList/' + id,
method: 'get'
})
}
// 新增质检标准列
export function addStandardList(data) {
return request({
url: '/quality/standardList',
method: 'post',
data: data
})
}
// 修改质检标准列
export function updateStandardList(data) {
return request({
url: '/quality/standardList',
method: 'put',
data: data
})
}
// 删除质检标准列
export function delStandardList(id) {
return request({
url: '/quality/standardList/' + id,
method: 'delete'
})
}
// 查询质检标准应用列表
export function listStandardApply(query) {
return request({
url: '/quality/standardApply/list',
method: 'get',
params: query
})
}

View File

@@ -0,0 +1,10 @@
import request from '@/utils/request'
export function getPieceNoJob(pieceNo) {
return request({
url: '/mes/retrospect/getPieceNoJob',
method: 'post',
data: pieceNo
})
}

47
api/srm/antiCrossCargo.js Normal file
View File

@@ -0,0 +1,47 @@
import request from '@/utils/request'
// 查询客户列表
export function listCustomer(query) {
return request({
url: '/basic/customer/list',
method: 'get',
params: query
})
}
// 查询客户详细
export function getCustomer(id) {
return request({
url: '/basic/customer/' + id,
method: 'get'
})
}
// 新增经销商防串货登记
export function addAntiChannelRecord(data) {
return request({
url: '/basic/antiChannelRecord',
method: 'post',
data: data
})
}
let data = {
pieceNo : '325423w32r4dw23-0001-2'
}
// 防串货查询
export function handleQuery(ACno) {
return request({
url: '/basic/antiChannelRecord/handleQuery',
method: 'post',
data: ACno
})
}
//防串货检索信息 code分别为批号、箱号、件号 其中type1批号2箱号3件号
export function searchByCode(code,type) {
return request({
url: '/mes/stockPiece/searchByCode/'+code+'/'+type,
method: 'get',
})
}

72
api/system/config.js Normal file
View File

@@ -0,0 +1,72 @@
import request from '@/utils/request'
// 查询参数列表
export function listConfig(query) {
return request({
url: '/system/config/list',
method: 'get',
params: query
})
}
// 查询参数详细
export function getConfig(configId) {
return request({
url: '/system/config/' + configId,
method: 'get'
})
}
// 根据参数键名查询参数值
export function getConfigKey(configKey) {
return request({
url: '/system/config/configKey/' + configKey,
method: 'get'
})
}
// 新增参数配置
export function addConfig(data) {
return request({
url: '/system/config',
method: 'post',
data: data
})
}
// 修改参数配置
export function updateConfig(data) {
return request({
url: '/system/config',
method: 'put',
data: data
})
}
// 删除参数配置
export function delConfig(configId) {
return request({
url: '/system/config/' + configId,
method: 'delete'
})
}
// 刷新参数缓存
export function refreshCache() {
return request({
url: '/system/config/refreshCache',
method: 'delete'
})
}
/**
* 获取当前用户相关信息
* @param {Object} query
*/
export function getUser(query = {pageNum:1,pageSize:1}) {
return request({
url: '/system/user/list',
method: 'get',
params: query
})
}

View File

@@ -0,0 +1,9 @@
import request from '@/utils/request'
// 根据字典类型查询字典数据信息
export function getDicts(dictType) {
return request({
url: '/system/dict/data/type/' + dictType,
method: 'get'
})
}

15
api/system/update.js Normal file
View File

@@ -0,0 +1,15 @@
import request from '@/utils/version';
// 获取所有版本
export function listReleases() {
return request({
url: `/releases`
})
}
// 获取最新稳定版本
export function getLatestRelease() {
return request({
url: `/releases/latest`,
})
}

48
api/system/user.js Normal file
View File

@@ -0,0 +1,48 @@
import upload from '@/utils/upload'
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
})
}
// 查询用户个人信息
export function getUserProfile() {
return request({
url: '/system/user/profile',
method: 'get'
})
}
// 修改用户个人信息
export function updateUserProfile(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
})
}
export function getUserInfo(id) {
return request({
url: '/system/user/' + id,
method: 'get'
})
}

89
api/tpm/checkTaskItem.js Normal file
View File

@@ -0,0 +1,89 @@
import request from '@/utils/request'
// 查询点检任务明细列表
export function listTaskItem(query) {
return request({
url: '/tpm/check/taskItem/list',
method: 'get',
params: query
})
}
// 查询点检任务明细详细
export function getTaskItem(id) {
return request({
url: '/tpm/check/taskItem/' + id,
method: 'get'
})
}
// 新增点检任务明细
export function addTaskItem(data) {
return request({
url: '/tpm/check/taskItem',
method: 'post',
data: data
})
}
// 修改点检任务明细
export function updateTaskItem(data) {
return request({
url: '/tpm/check/taskItem',
method: 'put',
data: data
})
}
// 删除点检任务明细
export function delTaskItem(id) {
return request({
url: '/tpm/check/taskItem/' + id,
method: 'delete'
})
}
// 完成任务明细
export function finishCheckTaskItem(ids) {
return request({
url: '/tpm/check/taskItem/finish',
method: 'post',
data: ids
})
}
// 完成任务明细项
export function finishCheckTaskItemDetail(ids) {
return request({
url: '/tpm/check/taskItem/finishDetail',
method: 'post',
data: ids
})
}
// 报修任务明细项
export function repairCheckTaskItemDetail(ids) {
return request({
url: '/tpm/check/taskItem/repairDetail',
method: 'post',
data: ids
})
}
// 修改点检计划明细,不带明细项
export function tpmCheckTaskEditemOnly(data) {
return request({
url: '/tpm/check/taskItem/editItemOnly',
method: 'put',
data: data
})
}
// 查询人员编码
export function listEmployee(query) {
return request({
url: '/basic/employee/list',
method: 'get',
params: query
})
}

72
api/tpm/index.js Normal file
View File

@@ -0,0 +1,72 @@
import request from '@/utils/request'
/**
* 查询设备管理列表
* @param {Object} query
*/
export function listEquipment(query) {
return request({
url: '/basic/equipment/list',
method: 'get',
params: query
})
}
// 修改设备管理
export function updateEquipment(data) {
return request({
url: '/basic/equipment',
method: 'put',
data: data
})
}
export function listMaintainTaskItem(query) {
return request({
url: '/tpm/maintain/taskItem/list',
method: 'get',
params: query
})
}
// 查询保养任务明细详细
export function getMaintainTaskItem(id) {
return request({
url: '/tpm/maintain/taskItem/' + id,
method: 'get'
})
}
// 查询点检任务明细列表
export function listCheckTaskItem(query) {
return request({
url: '/tpm/check/taskItem/list',
method: 'get',
params: query
})
}
// 查询点检任务明细详细
export function getCheckTaskItem(id) {
return request({
url: '/tpm/check/taskItem/' + id,
method: 'get'
})
}
// 查询故障项目列表
export function listBreakdown(query) {
return request({
url: '/tpm/repair/breakdown/list',
method: 'get',
params: query
})
}
// 查询故障项目详细
export function getBreakdown(id) {
return request({
url: '/tpm/repair/breakdown/' + id,
method: 'get'
})
}

View File

@@ -0,0 +1,53 @@
import request from '@/utils/request'
// 查询保养任务明细列表
export function listTaskItem(query) {
return request({
url: '/tpm/maintain/taskItem/list',
method: 'get',
params: query
})
}
// 查询保养任务明细详细
export function getTaskItem(id) {
return request({
url: '/tpm/maintain/taskItem/' + id,
method: 'get'
})
}
// 新增保养任务明细
export function addTaskItem(data) {
return request({
url: '/tpm/maintain/taskItem',
method: 'post',
data: data
})
}
// 修改保养任务明细
export function updateTaskItem(data) {
return request({
url: '/tpm/maintain/taskItem',
method: 'put',
data: data
})
}
// 删除保养任务明细
export function delTaskItem(id) {
return request({
url: '/tpm/maintain/taskItem/' + id,
method: 'delete'
})
}
// 完成任务明细
export function finishMaintainTaskItem(ids) {
return request({
url: '/tpm/maintain/taskItem/finish',
method: 'post',
data: ids
})
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询故障项目列表
export function listBreakdown(query) {
return request({
url: '/tpm/repair/breakdown/list',
method: 'get',
params: query
})
}
// 查询故障项目详细
export function getBreakdown(id) {
return request({
url: '/tpm/repair/breakdown/' + id,
method: 'get'
})
}
// 新增故障项目
export function addBreakdown(data) {
return request({
url: '/tpm/repair/breakdown',
method: 'post',
data: data
})
}
// 修改故障项目
export function updateBreakdown(data) {
return request({
url: '/tpm/repair/breakdown',
method: 'put',
data: data
})
}
// 删除故障项目
export function delBreakdown(id) {
return request({
url: '/tpm/repair/breakdown/' + id,
method: 'delete'
})
}

44
api/tpm/repairTask.js Normal file
View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询任务列表
export function listTask(query) {
return request({
url: '/tpm/repair/task/list',
method: 'get',
params: query
})
}
// 查询任务详细
export function getTask(id) {
return request({
url: '/tpm/repair/task/' + id,
method: 'get'
})
}
// 新增任务
export function addTask(data) {
return request({
url: '/tpm/repair/task',
method: 'post',
data: data
})
}
// 修改任务
export function updateTask(data) {
return request({
url: '/tpm/repair/task',
method: 'put',
data: data
})
}
// 删除任务
export function delTask(id) {
return request({
url: '/tpm/repair/task/' + id,
method: 'delete'
})
}

53
api/tpmMould/breakdown.js Normal file
View File

@@ -0,0 +1,53 @@
import request from '@/utils/request'
// 查询维修故障列表
export function listBreakdown(query) {
return request({
url: '/tpmMould/breakdown/list',
method: 'get',
params: query
})
}
// 查询维修故障详细
export function getBreakdown(id) {
return request({
url: '/tpmMould/breakdown/' + id,
method: 'get'
})
}
// 新增维修故障
export function addBreakdown(data) {
return request({
url: '/tpmMould/breakdown',
method: 'post',
data: data
})
}
// 修改维修故障
export function updateBreakdown(data) {
return request({
url: '/tpmMould/breakdown',
method: 'put',
data: data
})
}
// 删除维修故障
export function delBreakdown(id) {
return request({
url: '/tpmMould/breakdown/' + id,
method: 'delete'
})
}
// 完成维修故障
export function finishBreakdown(ids) {
return request({
url: '/tpmMould/breakdown/finish',
method: 'post',
data: ids
})
}

56
api/tpmMould/mould.js Normal file
View File

@@ -0,0 +1,56 @@
import request from '@/utils/request'
// 查询模具实例管理列表
export function listMould(query) {
return request({
url: '/tpmMould/mould/list',
method: 'get',
params: query
})
}
// 查询模具实例管理详细
export function getMould(id) {
return request({
url: '/tpmMould/mould/' + id,
method: 'get'
})
}
// 新增模具实例管理
export function addMould(data) {
return request({
url: '/tpmMould/mould',
method: 'post',
data: data
})
}
// 修改模具实例管理
export function updateMould(data) {
return request({
url: '/tpmMould/mould',
method: 'put',
data: data
})
}
/**查询模具型号名称
* @param {Object} query
*/
export function getMouldBasic(query) {
return request({
url: '/tpmMould/mouldBasic/list',
method: 'get',
params: query
})
}
// 删除模具实例管理
export function delMould(id) {
return request({
url: '/tpmMould/mould/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,53 @@
import request from '@/utils/request'
// 查询维修任务列表
export function listRepairTask(query) {
return request({
url: '/tpmMould/repairTask/list',
method: 'get',
params: query
})
}
// 查询维修任务详细
export function getRepairTask(id) {
return request({
url: '/tpmMould/repairTask/' + id,
method: 'get'
})
}
// 新增维修任务
export function addRepairTask(data) {
return request({
url: '/tpmMould/repairTask',
method: 'post',
data: data
})
}
// 修改维修任务
export function updateRepairTask(data) {
return request({
url: '/tpmMould/repairTask',
method: 'put',
data: data
})
}
// 删除维修任务
export function delRepairTask(id) {
return request({
url: '/tpmMould/repairTask/' + id,
method: 'delete'
})
}
// 完成维修任务
export function finishRepairTask(ids) {
return request({
url: '/tpmMould/repairTask/finish',
method: 'post',
data: ids
})
}

99
api/tpmMould/useRecord.js Normal file
View File

@@ -0,0 +1,99 @@
import request from '@/utils/request'
// 查询上机列表
export function listUseRecord(query) {
return request({
url: '/tpmMould/useRecord/list',
method: 'get',
params: query
})
}
// 查询上机详细
export function getUseRecord(id) {
return request({
url: '/tpmMould/useRecord/' + id,
method: 'get'
})
}
// 新增上机
export function addUseRecord(data) {
return request({
url: '/tpmMould/useRecord',
method: 'post',
data: data
})
}
// 修改上机
export function updateUseRecord(data) {
return request({
url: '/tpmMould/useRecord',
method: 'put',
data: data
})
}
// 删除上机
export function delUseRecord(id) {
return request({
url: '/tpmMould/useRecord/' + id,
method: 'delete'
})
}
// 夹具上机
export function bindMould(data) {
return request({
url: '/tpmMould/useRecord/bind',
method: 'post',
data: data
})
}
// 夹具下机
export function unbindMould(data) {
return request({
url: '/tpmMould/useRecord/unbind',
method: 'put',
data: data
})
}
//上模完成
export function endInstall(ids) {
return request({
url: '/tpmMould/useRecord/endInstall',
method: 'post',
data: ids
})
}
//下模开始
export function startRemove(data) {
return request({
url: '/tpmMould/useRecord/startRemove',
method: 'post',
data: data
})
}
//下模完成
export function endRemove(ids) {
return request({
url: '/tpmMould/useRecord/endRemove',
method: 'post',
data: ids
})
}
// 查询可用上机列表
export function listUseRecordAvailable(query) {
return request({
url: '/tpmMould/useRecord/listAvailable',
method: 'get',
params: query
})
}

53
api/wms/area.js Normal file
View File

@@ -0,0 +1,53 @@
import request from '@/utils/wms-request'
// 查询库区列表
export function listArea(query) {
return request({
url: '/basic/area/list',
method: 'get',
params: query
})
}
// 查询库区详细
export function getArea(id) {
return request({
url: '/basic/area/' + id,
method: 'get'
})
}
// 新增库区
export function addArea(data) {
return request({
url: '/basic/area',
method: 'post',
data: data
})
}
// 修改库区
export function updateArea(data) {
return request({
url: '/basic/area',
method: 'put',
data: data
})
}
// 删除库区
export function delArea(id) {
return request({
url: '/basic/area/' + id,
method: 'delete'
})
}
// 导出库区
export function exportArea(query) {
return request({
url: '/basic/area/export',
method: 'get',
params: query
})
}

69
api/wms/invJob.js Normal file
View File

@@ -0,0 +1,69 @@
import request from '@/utils/wms-request'
// 查询盘点作业单列表
export function listInvJob(query) {
return request({
url: '/stock/invJob/list',
method: 'get',
params: query
})
}
// 查询盘点作业单详细
export function getInvJob(id) {
return request({
url: '/stock/invJob/' + id,
method: 'get'
})
}
// 新增盘点作业单
export function addInvJob(data) {
return request({
url: '/stock/invJob',
method: 'post',
data: data
})
}
// 修改盘点作业单
export function updateInvJob(data) {
return request({
url: '/stock/invJob',
method: 'put',
data: data
})
}
// 删除盘点作业单
export function delInvJob(id) {
return request({
url: '/stock/invJob/' + id,
method: 'delete'
})
}
// 结案盘点作业单
export function finishInvJob(id) {
return request({
url: '/stock/invJob/finish/' + id,
method: 'put',
})
}
// 查询盘点作业单详细
export function getInvJobFromTask(data) {
return request({
url: '/stock/invJob/getInvJobFromTask',
method: 'post',
data: data
})
}
// 导出盘点作业单为报告
export function exportInvJobReport(ids) {
return request({
url: '/stock/invJob/exportReport/' + ids,
method: 'get'
})
}

44
api/wms/invJobDetail.js Normal file
View File

@@ -0,0 +1,44 @@
import request from '@/utils/wms-request'
// 查询盘点作业明细列表
export function listInvJobDetail(query) {
return request({
url: '/stock/invJobDetail/list',
method: 'get',
params: query
})
}
// 查询盘点作业明细详细
export function getInvJobDetail(id) {
return request({
url: '/stock/invJobDetail/' + id,
method: 'get'
})
}
// 新增盘点作业明细
export function addInvJobDetail(data) {
return request({
url: '/stock/invJobDetail',
method: 'post',
data: data
})
}
// 修改盘点作业明细
export function updateInvJobDetail(data) {
return request({
url: '/stock/invJobDetail',
method: 'put',
data: data
})
}
// 删除盘点作业明细
export function delInvJobDetail(id) {
return request({
url: '/stock/invJobDetail/' + id,
method: 'delete'
})
}

107
api/wms/invQuick.js Normal file
View File

@@ -0,0 +1,107 @@
import request from '@/utils/wms-request'
// 查询快速盘点列表
export function listInvQuick(query) {
return request({
url: '/stock/invQuick/list',
method: 'get',
params: query
})
}
// 高级查询快速盘点列表
export function advListInvQuick(query) {
return request({
url: '/stock/invQuick/advList',
method: 'get',
params: query
})
}
// 查询快速盘点详细
export function getInvQuick(id) {
return request({
url: '/stock/invQuick/' + id,
method: 'get'
})
}
// 新增快速盘点
export function addInvQuick(data) {
return request({
url: '/stock/invQuick',
method: 'post',
data: data
})
}
// 修改快速盘点
export function updateInvQuick(data) {
return request({
url: '/stock/invQuick',
method: 'put',
data: data
})
}
// 删除快速盘点
export function delInvQuick(id) {
return request({
url: '/stock/invQuick/' + id,
method: 'delete'
})
}
// 查询快速盘点库存信息
export function listQuickInvStockInfo(query) {
return request({
url: '/stock/invQuick/listQuickInvStockInfo',
method: 'get',
params: query
})
}
// 快速盘点更新库存
export function invQuickUpdateStock(data) {
return request({
url: '/stock/invQuick/invQuickUpdateStock',
method: 'post',
data: data
})
}
// 期初快速盘点库存信息
export function listPreInvStockInfo(query) {
return request({
url: '/stock/invQuick/listPreInvStockInfo',
method: 'get',
params: query
})
}
// 期初快速盘点更新库存
export function preInvUpdateStock(data) {
return request({
url: '/stock/invQuick/preInvUpdateStock',
method: 'post',
data: data
})
}
// 查询未结案领料出库单列表
export function listOut(query) {
return request({
url: '/produce/draw/out/getUnSolvedList',
method: 'get',
params: query
})
}
// 新增出库拆分记录
export function addSplitOutInfo(data) {
return request({
url: '/stock/outSplitHistory/addBatch',
method: 'post',
data: data
})
}

88
api/wms/inventory.js Normal file
View File

@@ -0,0 +1,88 @@
import request from '@/utils/wms-request'
// 查询仓库物料盘点单列表
export function listInv(query) {
return request({
url: '/stock/inv/list',
method: 'get',
params: query
})
}
// 查询仓库物料盘点单详细
export function getInv(id) {
return request({
url: '/stock/inv/' + id,
method: 'get'
})
}
// 新增仓库物料盘点单
export function addInv(data) {
return request({
url: '/stock/inv',
method: 'post',
data: data
})
}
// 修改仓库物料盘点单
export function updateInv(data) {
return request({
url: '/stock/inv',
method: 'put',
data: data
})
}
// 删除仓库物料盘点单
export function delInv(id) {
return request({
url: '/stock/inv/' + id,
method: 'delete'
})
}
// 查询仓库物料盘点单汇总列表
export function listInvDetail(query) {
return request({
url: '/stock/invDetail/list',
method: 'get',
params: query
})
}
// 查询仓库物料盘点单汇总详细
export function getInvDetail(id) {
return request({
url: '/stock/invDetail/' + id,
method: 'get'
})
}
// 新增仓库物料盘点单汇总
export function addInvDetail(data) {
return request({
url: '/stock/invDetail',
method: 'post',
data: data
})
}
// 修改仓库物料盘点单汇总
export function updateInvDetail(data) {
return request({
url: '/stock/invDetail',
method: 'put',
data: data
})
}
// 删除仓库物料盘点单汇总
export function delInvDetail(id) {
return request({
url: '/stock/invDetail/' + id,
method: 'delete'
})
}

61
api/wms/location.js Normal file
View File

@@ -0,0 +1,61 @@
import request from '@/utils/wms-request'
// 查询库位列表
export function listLocation(query) {
return request({
url: '/basic/location/list',
method: 'get',
params: query
})
}
// 查询库位详细
export function getLocation(id) {
return request({
url: '/basic/location/' + id,
method: 'get'
})
}
// 新增库位
export function addLocation(data) {
return request({
url: '/basic/location',
method: 'post',
data: data
})
}
// 修改库位
export function updateLocation(data) {
return request({
url: '/basic/location',
method: 'put',
data: data
})
}
// 删除库位
export function delLocation(id) {
return request({
url: '/basic/location/' + id,
method: 'delete'
})
}
// 导出库位
export function exportLocation(query) {
return request({
url: '/basic/location/export',
method: 'get',
params: query
})
}
export function printStorageLocs(data) {
return request({
url: '/basic/location/mergePrintPdfs',
method: 'post',
data: data
})
}

View File

@@ -0,0 +1,99 @@
import request from '@/utils/wms-request'
// 查询生产领料单列表
export function listTask(query) {
return request({
url: '/produce/draw/task/list',
method: 'get',
params: query
})
}
// 根据字典类型查询字典数据信息
export function getDicts(dictType) {
return request({
url: '/system/dict/data/type/' + dictType,
method: 'get'
})
}
// 根据参数键名查询参数值
export function getConfigKey(configKey) {
return request({
url: '/system/config/configKey/' + configKey,
method: 'get'
})
}
// 查询仓库列表
export function listWarehouse(query) {
return request({
url: '/basic/warehouse/list',
method: 'get',
params: query
})
}
// 选择库存查询物料库存信息列表
export function selectExactStockList(query) {
return request({
url: '/stock/stock/selectExactStockList',
method: 'get',
params: query
})
}
// 分配库存
export function allocateStock(data) {
return request({
url: '/produce/draw/task/allocateStock',
method: 'post',
data: data
})
}
// 修改生产领料单
export function updateTask(data) {
return request({
url: '/produce/draw/task',
method: 'put',
data: data
})
}
// 生产拣货单
export function schedulePick(data) {
return request({
url: '/produce/draw/task/schedulePick',
method: 'post',
data: data
})
}
// 新增U9物料库存信息,返回新增的记录
export function addU9StockRecord(data) {
return request({
url: '/stock/u9Stock/record',
method: 'post',
data: data
})
}
// 查询已结案领料出库单列表
export function listSolvedOut(query) {
return request({
url: '/produce/draw/out/getSolvedList',
method: 'get',
params: query
})
}
// 修改领料拣货单
export function updatePick(data) {
return request({
url: '/produce/draw/pick',
method: 'put',
data: data
})
}

109
api/wms/pdcBack/in.js Normal file
View File

@@ -0,0 +1,109 @@
import request from '@/utils/wms-request'
// 查询退料入库单列表
export function listIn(query) {
return request({
url: '/produce/back/in/list',
method: 'get',
params: query
})
}
// 查询退料入库单详细
export function getIn(id) {
return request({
url: '/produce/back/in/' + id,
method: 'get'
})
}
// 查询批号分批详细
export function getListDetail(data) {
return request({
url: '/produce/back/in/detail/',
method: 'post',
data: data
})
}
// 新增退料入库单
export function addIn(data) {
return request({
url: '/produce/back/in',
method: 'post',
data: data
})
}
// 修改退料入库单
export function updateIn(data) {
return request({
url: '/produce/back/in',
method: 'put',
data: data
})
}
// 修改库存信息
export function updateStock(data) {
return request({
url: '/produce/back/in/stock',
method: 'put',
data: data
})
}
// 删除退料入库单
export function delIn(id) {
return request({
url: '/produce/back/in/' + id,
method: 'delete'
})
}
// 导出退料入库单
export function exportIn(query) {
return request({
url: '/produce/back/in/export',
method: 'get',
params: query
})
}
/**根据上级单号获取单据信息以新增*/
export function getInBySrc(data) {
return request({
url: '/produce/back/in/getInBySrc',
method: 'post',
data: data
})
}
// 根据编码查询入库单,参数为入库单对象
export function getInByCode(data) {
return request({
url: '/produce/back/in/getInByCode',
method: 'post',
data: data
})
}
/**根据任务明细扫码直接退料入库单
* data示例:{"backTaskDetailCode": "xxx000001","whCode": "02001","areaCode": "B2B201"}
* */
export function directBackInByTaskDetail(data) {
return request({
url: '/produce/back/in/directBackInByTaskDetail',
method: 'post',
data: data
})
}
// 查询生产退料单详细
export function getTaskDetailByDetailCode(code) {
return request({
url: '/produce/back/task/taskDetail/' + code,
method: 'get'
})
}

View File

@@ -0,0 +1,90 @@
import request from '@/utils/wms-request'
// import { parseStrEmpty } from "@/utils/ruoyi";
// 查询退料收货单列表
export function listReceive(query) {
return request({
url: '/produce/back/receive/list',
method: 'get',
params: query
})
}
// 查询退料收货单详细
export function getReceive(id) {
return request({
url: '/produce/back/receive/' + id,
method: 'get'
})
}
// 新增退料收货单
export function addReceive(data) {
return request({
url: '/produce/back/receive',
method: 'post',
data: data
})
}
// 修改退料收货单
export function updateReceive(data) {
return request({
url: '/produce/back/receive',
method: 'put',
data: data
})
}
// 删除退料收货单
export function delReceive(id) {
return request({
url: '/produce/back/receive/' + id,
method: 'delete'
})
}
// 导出退料收货单
export function exportReceive(query) {
return request({
url: '/produce/back/receive/export',
method: 'get',
params: query
})
}
/**根据任务单号获取单据信息以新增*/
export function getRcvByTask(data) {
return request({
url: '/produce/back/receive/getRcvByTask',
method: 'post',
data: data
})
}
// 查询退料任务单明细列表
export function listDetail(query) {
return request({
url: '/produce/back/task/taskDetail/list',
method: 'get',
params: query
})
}
// 查询收货单明细信息
export function listReceiveDetail(data) {
return request({
url: '/produce/back/receive/selectBackReceiveDetail',
method: 'get',
params: data
})
}
// 修改产品收货单明细
export function updateReceiveDetail(data) {
return request({
url: '/produce/back/receive/updateReceiveDetail',
method: 'put',
data: data
})
}

80
api/wms/pdcBack/task.js Normal file
View File

@@ -0,0 +1,80 @@
import request from '@/utils/wms-request'
// 查询生产退料单列表
export function listTask(query) {
return request({
url: '/produce/back/task/list',
method: 'get',
params: query
})
}
// 查询生产退料单列表(未完成)
export function listUnfinishedTask(query) {
return request({
url: '/produce/back/task/list/unfinished',
method: 'get',
params: query
})
}
// 查询生产退料单详细
export function getTask(id) {
return request({
url: '/produce/back/task/' + id,
method: 'get'
})
}
// 新增生产退料单
export function addTask(data) {
return request({
url: '/produce/back/task',
method: 'post',
data: data
})
}
// 修改生产退料单
export function updateTask(data) {
return request({
url: '/produce/back/task',
method: 'put',
data: data
})
}
// 删除生产退料单
export function delTask(id) {
return request({
url: '/produce/back/task/' + id,
method: 'delete'
})
}
// 导出生产退料单
export function exportTask(query) {
return request({
url: '/produce/back/task/export',
method: 'get',
params: query
})
}
//打印退料任务单明细
export function mergePrintDetailPdfs(ids) {
return request({
url: '/produce/back/task/mergePrintDetailPdfs',
method: 'post',
data: ids
})
}
// 查询退料任务单明细列表
export function listDetail(query) {
return request({
url: '/produce/back/task/taskDetail/list',
method: 'get',
params: query
})
}

289
api/wms/pdcIn.js Normal file
View File

@@ -0,0 +1,289 @@
import request from '@/utils/wms-request'
/**
* 查询仓库列表
* @param {Object} query
*/
export function listWarehouse(query) {
return request({
url: '/basic/warehouse/list',
method: 'get',
params: query
})
}
export function getReceiveDetails(data) {
return request({
url: '/produce/product/receive/getDetails',
method: 'post',
data: data
})
}
// export function getDetails(data) {
// return request({
// url: '/produce/product/receive/getDetails',
// method: 'post',
// data: data
// })
// }
// 查询生产入库任务单列表
export function listTask(query) {
return request({
url: '/produce/product/task/list',
method: 'get',
params: query
})
}
// 查询生产入库任务单详细
export function getTask(id) {
return request({
url: '/produce/product/task/' + id,
method: 'get'
})
}
// 新增生产入库任务单
export function addTask(data) {
return request({
url: '/produce/product/task',
method: 'post',
data: data
})
}
// 修改生产入库任务单
export function updateTask(data) {
return request({
url: '/produce/product/task',
method: 'put',
data: data
})
}
// 删除生产入库任务单
export function delTask(id) {
return request({
url: '/produce/product/task/' + id,
method: 'delete'
})
}
// 查询产品收货单列表
export function listReceive(query) {
return request({
url: '/produce/product/receive/list',
method: 'get',
params: query
})
}
// 查询产品收货单详细
export function getReceive(id) {
return request({
url: '/produce/product/receive/' + id,
method: 'get'
})
}
export function getDetails(data) {
return request({
url: '/produce/product/in/getDetails',
method: 'post',
data: data
})
}
// 新增产品收货单
export function addReceive(data) {
return request({
url: '/produce/product/receive',
method: 'post',
data: data
})
}
// 修改产品收货单
export function updateReceive(data) {
return request({
url: '/produce/product/receive',
method: 'put',
data: data
})
}
// 删除产品收货单
export function delReveive(id) {
return request({
url: '/produce/product/reveive/' + id,
method: 'delete'
})
}
// 查询产品质检单列表
export function listQuality(query) {
return request({
url: '/produce/product/quality/list',
method: 'get',
params: query
})
}
// 查询产品质检单详细
export function getQuality(id) {
return request({
url: '/produce/product/quality/' + id,
method: 'get'
})
}
// 新增产品质检单
export function addQuality(data) {
return request({
url: '/produce/product/quality',
method: 'post',
data: data
})
}
// 修改产品质检单
export function updateQuality(data) {
return request({
url: '/produce/product/quality',
method: 'put',
data: data
})
}
// 删除产品质检单
export function delQuality(id) {
return request({
url: '/produce/product/quality/' + id,
method: 'delete'
})
}
// 查询产品入库单列表
export function listIn(query) {
return request({
url: '/produce/product/in/getSolvedWmsProductInlist',
method: 'get',
params: query
})
}
// 查询产品入库单详细
export function getIn(id) {
return request({
url: '/produce/product/in/' + id,
method: 'get'
})
}
// 新增产品入库单
export function addIn(data) {
return request({
url: '/produce/product/in',
method: 'post',
data: data
})
}
// 修改产品入库单
export function updateIn(data) {
return request({
url: '/produce/product/in',
method: 'put',
data: data
})
}
// 删除产品入库单
export function delIn(id) {
return request({
url: '/produce/product/in/' + id,
method: 'delete'
})
}
// 修改产品入库单
export function updateInDetail(data) {
return request({
url: '/product/productIndetail',
method: 'put',
data: data
})
}
// 查询收货单明细信息
export function listReceiveDetail(data) {
return request({
url: '/produce/product/receive/getProductReceiveDetail',
method: 'get',
params: data
})
}
// 修改产品收货单明细
export function updateReceiveDetail(data) {
return request({
url: '/produce/product/receive/updateReceiveDetail',
method: 'put',
data: data
})
}
// 查询产品入库明细单列表
export function listProductIndetail(query) {
return request({
url: '/product/productIndetail/list',
method: 'get',
params: query
})
}
// 修改产品入库明细单
export function updateProductIndetail(data) {
return request({
url: '/product/productIndetail',
method: 'put',
data: data
})
}
// 查询入库任务明细单详细
export function getDetail(id) {
return request({
url: '/produce/product/taskDetail/' + id,
method: 'get'
})
}
/**根据任务明细扫码直接产品入库单id为任务单明细id
* data示例:{"id": 864,"whCode": "02001","areaCode": "B2B201"}
* */
export function directProductInByTaskDetail(data) {
return request({
url: '/produce/product/in/directProductInByTaskDetail',
method: 'post',
data: data
})
}
/**
* 库位校验
* @param {Object} data
*/
export function getConnectLoc(query) {
return request({
url: '/basic/connect_loc/exist',
method: 'get',
params: query
})
}

121
api/wms/pdcMaterial.js Normal file
View File

@@ -0,0 +1,121 @@
import request from '@/utils/wms-request'
// 查询生产领料单列表
export function listTask(query) {
return request({
url: '/produce/draw/task/list',
method: 'get',
params: query
})
}
// 查询批号分批详细
export function getListDetail(data) {
return request({
url: '/produce/draw/out/detail',
method: 'post',
data: data
})
}
export function getDetails(data) {
return request({
url: '/produce/draw/out/getDetails',
method: 'post',
data: data
})
}
//根据物料编码获取物料名称
export function listMaterial(query) {
return request({
url: '/mm/material/list',
method: 'get',
params: query
})
}
// 新增领料拣货单
export function addPick(data) {
return request({
url: '/produce/draw/pick',
method: 'post',
data: data
})
}
// 新增领料出库单
export function addOut(data) {
return request({
url: '/produce/draw/out',
method: 'post',
data: data
})
}
// 查询生产领料单详细
export function getTask(id) {
return request({
url: '/produce/draw/task/' + id,
method: 'get'
})
}
export function updatePick(data) {
return request({
url: '/produce/draw/pick',
method: 'put',
data: data
})
}
// 查询领料拣货单列表
export function listPick(query) {
return request({
url: '/produce/draw/pick/list',
method: 'get',
params: query
})
}
export function listOut(query) {
return request({
url: '/produce/draw/out/list',
method: 'get',
params: query
})
}
export function getOut(id) {
return request({
url: '/produce/draw/out/' + id,
method: 'get'
})
}
// 根据任务单获取直接出库信息
export function getDrawOutDirectlyByTaskCode(data) {
return request({
url: '/produce/draw/out/getDrawOutDirectlyByTaskCode',
method: 'post',
data: data
})
}
// 修改领料出库单
export function updateOut(data) {
return request({
url: '/produce/draw/out',
method: 'put',
data: data
})
}
// 撤销领料拣货单
export function revokeDrawPick(data) {
return request({
url: '/produce/draw/pick/revoke',
method: 'post',
data: data
})
}

347
api/wms/purchase.js Normal file
View File

@@ -0,0 +1,347 @@
import request from '@/utils/wms-request'
//新增采购收货单
export function addReceive(data) {
return request({
url: '/purchase/receive',
method: 'post',
data: data
})
}
// 修改采购收货单
export function updateReceive(data) {
return request({
url: '/purchase/receive',
method: 'put',
data: data
})
}
export function updateReceiveDetail(data) {
return request({
url: '/purchase/receive/updateDetail',
method: 'put',
data: data
})
}
// 查询采购收货单明细信息
export function getReceiveDetail(id) {
return request({
url: '/purchase/receive/getReceiveDetail/' + id,
method: 'get'
})
}
// 查询采购收货单明细信息join
export function getReceiveDetailJoin(id) {
return request({
url: '/purchase/receive/getReceiveDetailJoin/' + id,
method: 'get'
})
}
// 查询采购收货单明细信息
export function getQualityDetail(data) {
return request({
url: '/purchase/quality/getQualityDetail',
method: 'get',
params: data
})
}
//收货单列表
export function listReceive(query) {
return request({
url: '/purchase/receive/list',
method: 'get',
params: query
})
}
// 新增采购入库单
export function addIn(data) {
return request({
url: '/purchase/in',
method: 'post',
data: data
})
}
// 查询采购入库质检单列表
export function listQuality(query) {
return request({
url: '/purchase/quality/list',
method: 'get',
params: query
})
}
// 查询采购入库质检单详细
export function getQuality(id) {
return request({
url: '/purchase/quality/' + id,
method: 'get'
})
}
// 新增采购入库质检单
export function addQuality(data) {
return request({
url: '/purchase/quality',
method: 'post',
data: data
})
}
// 新增采购入库质检单
export function addQualityDetail(data) {
return request({
url: '/purchase/quality/detail',
method: 'post',
data: data
})
}
// 修改采购入库质检单
export function updateQuality(data) {
return request({
url: '/purchase/quality',
method: 'put',
data: data
})
}
// 删除采购入库质检单
export function delQuality(id) {
return request({
url: '/purchase/quality/' + id,
method: 'delete'
})
}
// 查询采购任务单详细
export function getTask(id) {
return request({
url: '/purchase/task/' + id,
method: 'get'
})
}
// 查询采购收货单详细
export function getReceive(id) {
return request({
url: '/purchase/receive/' + id,
method: 'get'
})
}
// 查询采购任务单列表
export function listTask(query) {
return request({
url: '/purchase/task/list',
method: 'get',
params: query
})
}
// 新增采购任务单
export function addTask(data) {
return request({
url: '/purchase/task',
method: 'post',
data: data
})
}
// 修改采购任务单
export function updateTask(data) {
return request({
url: '/purchase/task',
method: 'put',
data: data
})
}
// 删除采购任务单
export function delTask(purchaseTaskCodes) {
return request({
url: '/purchase/task/' + purchaseTaskCodes,
method: 'delete'
})
}
// 查询采购入库单列表
export function listIn(query) {
return request({
url: '/purchase/in/list',
method: 'get',
params: query
})
}
// 查询采购入库单详细
export function getIn(id) {
return request({
url: '/purchase/in/' + id,
method: 'get'
})
}
// 查询批号分批详细
export function getListDetail(batchNo) {
return request({
url: '/purchase/in/detail/' + batchNo,
method: 'get'
})
}
// 修改采购入库单
export function updateIn(data) {
return request({
url: '/purchase/in',
method: 'put',
data: data
})
}
// 删除采购入库单
export function delIn(id) {
return request({
url: '/purchase/in/' + id,
method: 'delete'
})
}
//根据批号和箱号查询拆分详情
export function getListDetailByBL(data) {
return request({
url: '/purchase/in/listDetailByBL',
method: 'post',
data: data
})
}
// 新增分批入库详情
export function addInDetail(data, type) {
return request({
url: '/purchase/in/detail/' + type,
method: 'post',
data: data
})
}
// 新增采购入库单
export function addLotInfo(data) {
return request({
url: '/purchase/in/detail',
method: 'put',
data: data
})
}
//获取采购任务单明细
export function getDetail(data) {
return request({
url: '/purchase/receive/getDetail',
method: 'post',
data: data
})
}
/**根据订单号获取单据信息以新增*/
export function getDetailByPoCode(poCode) {
return request({
url: '/purchase/receive/getDetailByPoCode/' + poCode,
method: 'post'
})
}
// 新增分批入库详情
export function uploadU9(data) {
return request({
url: '/purchase/in/detail/uploadU9',
method: 'post',
data: data
})
}
/**根据订单号/ASN单号/ASN行号查询收货、质检、退货、入库明细列表*/
export function getDetailListsBySRM(data) {
return request({
url: '/purchase/in/getDetailListsBySRM',
method: 'post',
data: data
})
}
//选中收货单编码,回显子表
export function getQualityReceiveDetail(data) {
return request({
url: '/purchase/quality/getDetail',
method: 'post',
data: data
})
}
// 查询供应商列表
export function listSupplier(query) {
return request({
url: '/basic/supplier/list',
method: 'get',
params: query
})
}
// 查询采购入库明细标签列表
export function listPurchaseInDetailLabel(query) {
return request({
url: '/purchase/purchaseInDetailLabel/list',
method: 'get',
params: query
})
}
// 查询仓库列表
export function listWarehouse(query) {
return request({
url: '/basic/warehouse/list',
method: 'get',
params: query
})
}
// 入库
export function labelInStock(data) {
return request({
url: '/purchase/purchaseInDetailLabel/labelInStock',
method: 'post',
data: data
})
}
/**
* 采购直接入库提交按钮
* @param {Object} data
*/
export function addPurchase(data) {
return request({
url: '/purchase/in/detail/add',
method: 'post',
data: data
})
}
/**
* 推荐库位
* @param {string} code
*/
export function getMaterial_code(code) {
return request({
url: '/stock/stock/recommend-stock/material-code/' + code,
method: 'get'
})
}

10
api/wms/request.js Normal file
View File

@@ -0,0 +1,10 @@
import request from '@/utils/request'
//根据物料编码获取物料名称
export function listMaterial(query) {
return request({
url: '/mm/material/list',
method: 'get',
params: query
})
}

176
api/wms/sale.js Normal file
View File

@@ -0,0 +1,176 @@
import request from '@/utils/wms-request'
// 查询任务单及明细
export function fetchTask(taskCode) {
return request({
url: `/sale/out/task/${taskCode}`,
method: 'get'
})
}
// 查询销售出库任务单列表
export function listTask(query) {
return request({
url: '/sale/out/task/list',
method: 'get',
params: query
})
}
/**
* 查询销售出库任务单详细
* @param {Object} id
*/
export function getTask(id) {
return request({
url: '/sale/out/task/' + id + '/groupBy',
method: 'get'
})
}
// 新增销售出库任务单
export function addTask(data) {
return request({
url: '/sale/out/task',
method: 'post',
data: data
})
}
//根据选择的上一级编码回显主子表
export function getOutBillBySourceCode(data) {
return request({
url: '/sale/out/out/getOutBillBySourceCode',
method: 'post',
data: data
})
}
// 修改销售出库任务单
export function updateTask(data) {
return request({
url: '/sale/out/task',
method: 'put',
data: data
})
}
// 删除销售出库任务单
export function delTask(id) {
return request({
url: '/sale/out/task/' + id,
method: 'delete'
})
}
// 查询销售拣货单列表
export function listPick(query) {
return request({
url: '/sale/out/pick/list',
method: 'get',
params: query
})
}
// 查询销售拣货单详细
export function getPick(id) {
return request({
url: '/sale/out/pick/' + id,
method: 'get'
})
}
// 新增销售拣货单
export function addPick(data) {
return request({
url: '/sale/out/pick',
method: 'post',
data: data
})
}
// 修改销售拣货单
export function updatePick(data) {
return request({
url: '/sale/out/pick',
method: 'put',
data: data
})
}
// 删除销售拣货单
export function delPick(id) {
return request({
url: '/sale/out/pick/' + id,
method: 'delete'
})
}
// 查询销售出库单列表
export function listOut(query) {
return request({
url: '/sale/out/out/list',
method: 'get',
params: query
})
}
// 查询销售出库单详细
export function getOut(id) {
return request({
url: '/sale/out/out/' + parseStrEmpty(id),
method: 'get'
})
}
// 查询批号分批详细
export function getListDetail(data) {
return request({
url: '/sale/out/out/detail',
method: 'post',
data: data
})
}
// 新增销售出库单
export function addOut(data) {
return request({
url: '/sale/out/out',
method: 'post',
data: data
})
}
// 修改销售出库单
export function updateOut(data) {
return request({
url: '/sale/out/out',
method: 'put',
data: data
})
}
// 删除销售出库单
export function delOut(id) {
return request({
url: '/sale/out/out/' + id,
method: 'delete'
})
}
//根据选择的上一级编码回显主子表
export function getSaleOutDirectlyByTaskCode(data) {
return request({
url: '/sale/out/out/getSaleOutDirectlyByTaskCode',
method: 'post',
data: data
})
}

54
api/wms/shelves.js Normal file
View File

@@ -0,0 +1,54 @@
import request from '@/utils/wms-request'
// 查询货架列表
export function listShelves(query) {
return request({
url: '/basic/shelves/list',
method: 'get',
params: query
})
}
// 查询货架详细
export function getShelves(id) {
return request({
url: '/basic/shelves/' + id,
method: 'get'
})
}
// 新增货架
export function addShelves(data) {
return request({
url: '/basic/shelves',
method: 'post',
data: data
})
}
// 修改货架
export function updateShelves(data) {
return request({
url: '/basic/shelves',
method: 'put',
data: data
})
}
// 删除货架
export function delShelves(id) {
return request({
url: '/basic/shelves/' + id,
method: 'delete'
})
}
// 导出货架
export function exportShelves(query) {
return request({
url: '/basic/shelves/export',
method: 'get',
params: query
})
}

143
api/wms/stock.js Normal file
View File

@@ -0,0 +1,143 @@
import request from '@/utils/wms-request'
// 查询物料库存信息列表
export function listStock(query) {
return request({
url: '/stock/stock/list',
method: 'get',
params: query
})
}
// 查询物料库存信息列表(模糊查询产品)
export function listStockLike(query) {
return request({
url: '/stock/stock/listLike',
method: 'get',
params: query
})
}
// 查询物料库存信息详细
export function getStock(id) {
return request({
url: '/stock/stock/' + id,
method: 'get'
})
}
// 新增物料库存信息
export function addStock(data) {
return request({
url: '/stock/stock',
method: 'post',
data: data
})
}
// 修改物料库存信息
export function updateStock(data) {
return request({
url: '/stock/stock',
method: 'put',
data: data
})
}
// 删除物料库存信息
export function delStock(id) {
return request({
url: '/stock/stock/' + id,
method: 'delete'
})
}
// 导出物料库存信息(现在改成根据ids查询库存信息并导出)
export function exportStock(materialStockIds) {
return request({
url: '/stock/stock/export/' + materialStockIds,
method: 'get'
})
}
export function print(id) {
return request({
url: '/stock/stock/print/' + id,
method: 'post'
})
}
export function test(data) {
return request({
url: '/stock/history/test',
method: 'post',
data: data
})
}
// 根据物料编码查询物料库存信息列表
export function listStockByMaterialCode(materialCode) {
return request({
url: '/stock/stock/listMaterial/' + materialCode,
method: 'get',
})
}
// 库位分析看板
export function listLocationByStock() {
return request({
url: '/stock/stock/whDashboard',
method: 'get',
})
}
// 货架可视化大屏
export function handleShelvesScreen(id) {
return request({
url: '/stock/stock/shelvesScreen/' + id,
method: 'post',
})
}
//超市补货
export function smSupplyStock(ids) {
return request({
url: '/stock/stock/smSupplyStock/' + ids,
method: 'post'
})
}
//填充物料信息
export function checkStock(ids) {
return request({
url: '/stock/stock/checkStock',
method: 'post'
})
}
// 新增物料移库管理
export function addTransfer(data) {
return request({
url: '/stock/transfer',
method: 'post',
data: data
})
}
// 修改物料移库管理
export function updateTransfer(data) {
return request({
url: '/stock/transfer',
method: 'put',
data: data
})
}
// 查询出库拆分记录列表
export function listOutSplitHistory(query) {
return request({
url: '/stock/outSplitHistory/list',
method: 'get',
params: query
})
}

109
api/wms/warehouse.js Normal file
View File

@@ -0,0 +1,109 @@
import request from '@/utils/wms-request'
// 查询仓库列表
export function listWarehouse(query) {
return request({
url: '/basic/warehouse/list',
method: 'get',
params: query
})
}
// 查询仓库详细
export function getWarehouse(id) {
return request({
url: '/basic/warehouse/' + id,
method: 'get'
})
}
// 新增仓库
export function addWarehouse(data) {
return request({
url: '/basic/warehouse',
method: 'post',
data: data
})
}
// 修改仓库
export function updateWarehouse(data) {
return request({
url: '/basic/warehouse',
method: 'put',
data: data
})
}
// 删除仓库
export function delWarehouse(id) {
return request({
url: '/basic/warehouse/' + id,
method: 'delete'
})
}
// 导出仓库
export function exportWarehouse(query) {
return request({
url: '/basic/warehouse/export',
method: 'get',
params: query
})
}
/**
* 查询销售退货任务单列表
* @param {Object} query
*/
export function backListTask(query) {
return request({
url: '/sale/back/task/list',
method: 'get',
params: query
})
}
/**
*查询销售退货任务单详细
* @param {Object} id
*/
export function getTaskId(id) {
return request({
url: '/sale/back/task/' + id,
method: 'get'
})
}
/**
* 新增销售退货入库单
* @param {Object} data
*/
export function updateIn(data) {
return request({
url: '/sale/back/in',
method: 'post',
data: data
})
}
/**
* 直接入库退货单提交按钮
* @param {Object} data
*/
export function addIn(data) {
return request({
url: '/sale/back/in/quiteAdd',
method: 'post',
data: data
})
}
/**根据任务单号获取单据信息以新增*/
export function getInByTask(data) {
return request({
url: '/sale/back/task/getInByTask',
method: 'post',
data: data
})
}

View File

@@ -0,0 +1,125 @@
<template>
<uni-easyinput v-model="inputNumber" placeholder="请输入数量" @change="change" :disabled="disabled" type="number"/>
</template>
<script>
import {
listUnit,
getUnit,
delUnit,
addUnit,
updateUnit,
listUnitConvertible,
convertBySecondUnitOrNum,
} from "@/api/basic/unit";
export default {
name: "secondNumberChangeToConvertNew",
props: {
materialCode: String,
number: Number,
unitId: Number,
secondNumber: Number,
secondUnitId: Number,
disabled: Boolean,
},
watch: {
// materialCode: {
// handler(newVal) {
// this.secondNumberChange();
// },
// },
secondNumber: {
handler(newVal, oldVal) {
console.log('新的secondNumber',Number(newVal));
// console.log('this.inputNumber',this.inputNumber);
// 去重,防止重复请求
if (Number(newVal) != this.inputNumber) {
this.inputNumber = Number(newVal);
if (this.inputNumber == null || this.inputNumber == "") {
this.inputNumber = this.number;
this.$emit("update:secondNumber", Number(this.inputNumber));
}
this.secondNumberChange();
}
},
immediate: true,
},
},
data() {
return {
unitOptions: [],
inputNumber: null,
};
},
methods: {
change(data) {
console.log("change",data);
this.onIuputChange();
// this.$emit('change', data);
},
onIuputChange() {
// setTimeout(() => {
// 需要延迟执行的代码
// console.log("111",this.number);
this.$emit("update:secondNumber", Number(this.inputNumber));
this.secondNumber = this.inputNumber;
this.$nextTick(()=>{
this.$emit("change", Number(this.inputNumber));
})
this.secondNumberChange();
// }, 200); // 0.2秒延迟
},
/**第二数量(数量改变)
* 要求基本单位和数量不为空
* */
secondNumberChange() {
//设置父组件的第一数量
// console.log(
// "convertParams",
// this.materialCode,
// this.inputNumber,
// this.unitId,
// this.secondUnitId
// );
console.log("this.secondNumber",this.secondNumber);
console.log("this.inputNumber",this.inputNumber)
// console.log("this.inputNumber",this.$parent)
// this.inputNumber=this.secondNumber
if (this.inputNumber == null || this.inputNumber == "") {
this.$emit("update:number", 0);
}
if (this.unitId == null || this.unitId == "") {
this.$emit("update:number", this.inputNumber);
} else if (
this.inputNumber &&
this.materialCode &&
this.materialCode != "" &&
this.unitId &&
this.secondUnitId
) {
// console.log(this.inputNumber)
let params = {
materialCode: this.materialCode,
number: null,
unitId: this.unitId,
secondUnitId: this.secondUnitId,
secondNumber: this.inputNumber,
};
// console.log(params)
convertBySecondUnitOrNum(params).then((response) => {
// console.log(response.data.number)
this.$emit("update:number", response.data.number);
});
} else { //其它所有异常情况,都将第二数量同步传给第一数量
this.$emit("update:number", this.inputNumber);
}
},
},
};
</script>
<style>
</style>

View File

@@ -0,0 +1,121 @@
<template>
<uni-easyinput v-model="inputNumber" placeholder="请输入数量" @change="change" :disabled="disabled" type="number" @input="input"/>
</template>
<script>
import {
listUnit,
getUnit,
delUnit,
addUnit,
updateUnit,
listUnitConvertible,
convertBySecondUnitOrNum,
} from "@/api/basic/unit";
export default {
name: "secondNumberChangeToConvert",
props: {
materialCode: String,
number: Number,
unitId: Number,
secondNumber: Number,
secondUnitId: Number,
disabled: Boolean,
},
watch: {
// materialCode: {
// handler(newVal) {
// this.secondNumberChange();
// },
// },
secondNumber: {
handler(newVal) {
console.log('new',newVal);
// 去重,防止重复请求
if (Number(newVal) != this.inputNumber) {
this.inputNumber = Number(newVal);
if (this.inputNumber == null || this.inputNumber == "") {
this.inputNumber = this.number;
this.$emit("update:secondNumber", Number(this.inputNumber));
}
this.secondNumberChange();
}
},
immediate: true,
},
},
data() {
return {
unitOptions: [],
inputNumber: null,
};
},
methods: {
input(data){
console.log(data)
this.$emit('input', data);
},
change(data) {
console.log(data)
this.$emit('change', data);
this.onIuputChange()
},
onIuputChange() {
// setTimeout(() => {
// 需要延迟执行的代码
this.$emit("update:secondNumber", Number(this.inputNumber));
this.$emit("change", Number(this.inputNumber));
this.secondNumberChange();
// }, 200); // 0.2秒延迟
},
/**第二数量(数量改变)
* 要求基本单位和数量不为空
* */
secondNumberChange() {
//设置父组件的第一数量
// console.log(
// "convertParams",
// this.materialCode,
// this.inputNumber,
// this.unitId,
// this.secondUnitId
// );
console.log(this.inputNumber)
// console.log('this.inputNumber',this.inputNumber)
if (this.inputNumber == null || this.inputNumber == "") {
this.$emit("update:number", 0);
}
if (this.unitId == null || this.unitId == "") {
this.$emit("update:number", this.inputNumber);
} else if (
this.inputNumber &&
this.materialCode &&
this.materialCode != "" &&
this.unitId &&
this.secondUnitId
) {
console.log(this.inputNumber)
let params = {
materialCode: this.materialCode,
number: null,
unitId: this.unitId,
secondUnitId: this.secondUnitId,
secondNumber: this.inputNumber,
};
console.log(params)
convertBySecondUnitOrNum(params).then((response) => {
console.log(response.data.number)
this.$emit("update:number", response.data.number);
});
} else { //其它所有异常情况,都将第二数量同步传给第一数量
this.$emit("update:number", this.inputNumber);
}
},
},
};
</script>
<style>
</style>

View File

@@ -0,0 +1,125 @@
<template>
<view>
<view v-if="copyContent.length > 0" class="ranking">
<view class="ranking-item" v-for="(content,index) in copyContent" :key="index" :style="{padding:progressPadding+'rpx'}">
<view class="name">{{content.name}}</view>
<view class="progress" >
<text :style="{background:content.background,width:content.width + '%',height:progressWidth+'rpx'}"></text>
</view>
<view class="num">{{content.num}}</view>
</view>
</view>
</view>
</template>
<script>
export default{
name:'ranking-list',
props:{
content:{
type: Array,
default() {
return []
}
},
isPC:{
type:Boolean,
default:false
},
isRank:{
type:Boolean,
default:false
}
},
data(){
return{
progressWidth:24,
progressPadding:10,
maxNumber:0,
culCount:0,
copyContent:[]
}
},
watch:{
content(newV){
this.init()
}
},
methods:{
init(){
this.copyContent = this.deepClone(this.content)
if(this.copyContent && this.copyContent.length >0){
if(this.isRank){
this.copyContent = this.copyContent.sort((a,b) => b.num - a.num);
this.maxNumber = this.copyContent[0].num;
}else{
this.maxNumber = Math.max.apply(Math,this.copyContent.map(item => { return item.num }));
}
this.copyContent.map((item,index) =>{
item.width = this.computeWidth(this.maxNumber,item.num);
});
}
},
computeWidth(max,current){
let num = (current / max) * 100;
return num.toFixed(2);
},
deepClone(obj) {
var cloneObj = new obj.constructor()
if(obj === null) return obj
if(obj instanceof Date) return new Date(obj)
if(obj instanceof RegExp) return new RegExp(obj)
if (typeof obj !== 'object') return obj
for (var i in obj) {
if (obj.hasOwnProperty(i)) {
cloneObj[i] = this.deepClone(obj[i])
}
}
return cloneObj
}
},
mounted() {
if(this.isPC){
this.progressWidth = 40;
this.progressPadding = 30;
}
this.init();
}
}
</script>
<style scoped lang="scss">
.ranking-item{
display: flex;
margin-bottom: 13rpx;
align-content: center;
height: 28rpx;
.name{
padding-right: 10rpx;
color: #868688;
font-size: 20rpx;
flex: 1;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.progress{
flex:5;
text-align: left;
padding-right: 10rpx;
text{
display: inline-block;
border-radius: 30rpx;
vertical-align:top;
}
}
.num{
font-size: 26rpx;
color: #3EB2F5;
flex: 1;
}
}
</style>

View File

@@ -0,0 +1,433 @@
<template>
<view class="uni-select-lay" :style="{'z-index':zindex}">
<input type="text" :name="name" v-model="value" class="uni-select-input">
<view class="uni-select-lay-select" :class="{'active':active}">
<!-- 禁用mask -->
<view class="uni-disabled" v-if="disabled"></view>
<!-- 禁用mask -->
<!-- 清空 -->
<view class="uni-select-lay-input-close" v-if="changevalue!=''&&this.active">
<text @click.stop="removevalue"></text>
</view>
<!-- 清空 -->
<input type="text" class="uni-select-lay-input" :class="{active:changevalue!=''&&changevalue!=placeholder}"
v-model="changevalue" :disabled="disabled" :placeholder="placeholder" @focus="unifocus"
@input="intchange" @blur="uniblur">
<view class="uni-select-lay-icon" :class="{disabled:disabled}" @click.stop="select"><text></text></view>
</view>
<scroll-view class="uni-select-lay-options" :scroll-y="true" v-show="active" @scroll="selectmove"
@touchstart="movetouch">
<template v-if="!changes">
<view class="uni-select-lay-item" v-if="showplaceholder" :class="{active:value==''}"
@click.stop="selectitem(-1,null)">
{{placeholder}}
</view>
<view class="uni-select-lay-item" :class="{active:value==item[svalue]}" v-for="(item,index) in options"
:key="index" @click.stop="selectitem(index,item)">{{item[slabel]}}</view>
</template>
<!-- 搜索 -->
<template v-else>
<template v-if="vlist.length>0">
<view class="uni-select-lay-item" :class="{active:value==item[svalue]}"
v-for="(item,index) in vlist" :key="index" @click.stop="selectitem(index,item)">{{item[slabel]}}
</view>
</template>
<template v-else>
<view class="nosearch">{{changesValue}}</view>
</template>
</template>
</scroll-view>
</view>
</template>
<script>
export default {
name: "select-lay",
props: {
disabled: {
type: Boolean,
default: false
},
zindex: {
type: Number,
default: 999
},
options: {
type: Array,
default () {
return []
}
},
name: {
type: String,
default: ''
},
value: {
type: String | Number,
default: ''
},
placeholder: {
type: String,
default: '请选择'
},
showplaceholder: {
type: Boolean,
default: true
},
slabel: {
type: String,
default: 'label'
},
svalue: {
type: String,
default: 'value'
}
},
data() {
return {
active: false, //组件是否激活,
isfocus: false, //是否有焦点
isremove: false, //是否是因为点击清空才导致的失去焦点
ismove: false, //是否是因为移动才失去焦点
changevalue: "", //搜索框同步
oldvalue: "", //数据回滚
changes: false, //正在搜索
changesValue: "",
vlist: [], //搜索框查询的列表
settimer: null //value改变定时器
};
},
mounted() {
this.itemcheck();
},
watch: {
//value改变
value() {
this.itemcheck();
},
//初始化数组
options() {
// 此处判断是否有初始value,存在则判断显示文字
this.itemcheck();
}
},
methods: {
//判断数组跟当前active值
itemcheck() {
// 此处判断是否有初始value,存在则判断显示文字
if (this.value != "") {
// 展示plachhoder
//判断数组
if (this.options.length > 0) {
this.options.forEach(item => {
if (this.value == item[this.svalue]) {
this.oldvalue = this.changevalue = item[this.slabel];
return;
}
})
}
} else {
this.oldvalue = this.changevalue = "";
}
},
//点击组件
select() {
if (this.disabled) return;
this.active = !this.active;
if (this.active) {
this.changes = false;
} else {
this.changevalue = this.oldvalue;
}
},
// 获得焦点
unifocus() {
if (this.disabled) return;
this.active = true;
this.changes = false;
this.isfocus = true;
},
// 失去焦点
uniblur() {
this.isfocus = false;
// bug 点击组件列会先触发失去焦点,此时组件列事件不执行
setTimeout(() => {
if (this.isremove || this.ismove) {
this.isremove = false;
this.ismove = false;
} else {
this.changevalue = this.oldvalue;
this.isremove = false;
this.active = false;
}
}, 153)
},
movetouch() {
setTimeout(()=>{
if(this.isfocus){
this.ismove=false;
return;
}
if (!this.ismove) this.ismove = true;
},100)
// this.changes = false;
},
selectmove() {
setTimeout(()=>{
if(this.isfocus){
this.ismove=false;
return;
}
if (!this.ismove) this.ismove = true;
},100)
// this.changes = false;
},
//移除数据
removevalue() {
this.isremove = true;
this.changes = false;
this.changevalue = "";
},
//value 改变
intchange() {
if (this.changevalue == '') {
this.changes = false;
return;
};
if (this.oldvalue == this.changevalue) {
return;
}
this.vlist = [];
this.changes = true;
this.changesValue = "正在搜索...";
if (this.settimer) {
clearTimeout(this.settimer)
}
this.settimer = setTimeout(() => {
this.vlist = this.options.filter(item => {
return item[this.slabel].includes(this.changevalue)
});
if (this.vlist.length === 0) {
this.changesValue = "暂无匹配内容!";
}
}, 600)
},
//点击组件列
selectitem(index, item) {
this.changevalue = this.oldvalue;
this.active = false;
this.$emit("selectitem", index, item)
}
}
}
</script>
<style lang="scss" scoped>
.uni-select-lay {
background-color: white;
position: relative;
z-index: 999;
.uni-select-input {
opacity: 0;
position: absolute;
z-index: -111;
}
// select部分
.uni-select-lay-select {
user-select: none;
position: relative;
z-index: 3;
height: 36px;
padding: 0 30px 0 10px;
box-sizing: border-box;
border-radius: 4px;
border: 1px solid rgb(229, 229, 229);
display: flex;
align-items: center;
font-size: 14px;
color: #999;
.uni-disabled {
position: absolute;
left: 0;
width: 100%;
height: 100%;
z-index: 19;
cursor: no-drop;
background: rgba(255, 255, 255, .5);
}
// input 框的清除按钮
.uni-select-lay-input-close {
position: absolute;
right: 35px;
top: 0;
height: 100%;
width: 15px;
display: flex;
align-items: center;
justify-content: center;
z-index: 3;
cursor: pointer;
text {
position: relative;
background: #fff;
width: 13px;
height: 13px;
border-radius: 50%;
border: 1px solid #bbb;
&::before,
&::after {
content: "";
position: absolute;
left: 20%;
top: 50%;
height: 1px;
width: 60%;
transform: rotate(45deg);
background-color: #bbb;
}
&::after {
transform: rotate(-45deg);
}
}
}
.uni-select-lay-input {
font-size: 14px;
color: #999;
display: block;
width: 98%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
line-height: 30px;
box-sizing: border-box;
&.active {
color: #333
}
}
.uni-select-lay-icon {
cursor: pointer;
position: absolute;
right: 0;
top: 0;
height: 100%;
width: 30px;
display: flex;
align-items: center;
justify-content: center;
&::before {
content: "";
width: 1px;
height: 100%;
position: absolute;
left: 0;
top: 0;
background-color: #e5e5e5;
}
text {
display: block;
width: 0;
height: 0;
border-width: 12rpx 12rpx 0;
border-style: solid;
border-color: #bbb transparent transparent;
transition: .3s;
}
&.disabled {
cursor: no-drop;
text {
width: 20rpx;
height: 20rpx;
border: 2px solid #ff0000;
border-radius: 50%;
transition: .3s;
position: relative;
z-index: 999;
&::after {
content: "";
position: absolute;
top: 50%;
left: 0;
width: 100%;
height: 2px;
margin-top: -1px;
background-color: #ff0000;
transform: rotate(45deg);
}
}
}
}
&.active .uni-select-lay-icon {
text {
transform: rotate(180deg);
}
}
}
// options部分
.uni-select-lay-options {
user-select: none;
position: absolute;
top: calc(100% + 5px);
left: 0;
width: 100%;
height: 500rpx;
// overflow-y: auto;
border-radius: 4px;
border: 1px solid rgb(229, 229, 229);
background: #fff;
padding: 5px 0;
box-sizing: border-box;
z-index: 9;
.uni-select-lay-item {
padding: 0 10px;
box-sizing: border-box;
cursor: pointer;
line-height: 2.5;
transition: .3s;
font-size: 14px;
&.active {
background: #007AFF;
color: #fff;
&:hover {
background: #007AFF;
color: #fff;
}
}
&:hover {
background-color: #f5f5f5;
}
}
.nosearch {
font-size: 16px;
line-height: 3;
text-align: center;
color: #666;
}
}
}
</style>

View File

@@ -0,0 +1,122 @@
<template>
<uni-data-select v-model="secondUnitId" :localdata="unitOptions" @change="secondUnitChange" style="z-index: 100;">
</uni-data-select>
</template>
<script>
import {
listUnitConvertible,
convertBySecondUnitOrNum,
} from "@/api/basic/unit";
export default {
name: "selectUnitConvertible",
props: {
materialCode: {
type: String,
default: "",
},
// secondUnitId
value: {
type: Number,
default: null,
},
secondNumber: {
type: Number,
default: null,
},
number: {
type: Number,
default: null,
},
unitId: {
type: Number,
default: null,
},
disabled: Boolean,
},
watch: {
materialCode: {
handler(newVal, oldVal) {
console.log(newVal)
this.selectConvertibleUnitList();
},
immediate: true,
},
value: {
handler(newVal) {
console.log(newVal)
this.secondUnitId = newVal;
this.selectConvertibleUnitList();
},
immediate: true,
},
},
created() {
this.selectConvertibleUnitList();
},
data() {
return {
secondUnitId: null,
unitOptions: [],
};
},
methods: {
//单位下拉框点击事件
selectConvertibleUnitList() {
let query = {
materialCode: this.materialCode,
id: this.value,
};
listUnitConvertible(query).then((response) => {
this.unitOptions = response.rows.map(item => {
let obj = {
text: item.unitCode + ":" + item.unitName,
value: item.id
}
return obj
});
});
},
/**第二单位(显示单位改变)
* 要求基本单位和数量不为空
* */
secondUnitChange(e) {
console.log(e, this.secondUnitId)
// 给单位赋值
this.$emit("input", e);
// console.log(
// "unitParams",
// this.materialCode,
// this.number,
// this.unitId,
// this.secondNumber,
// this.secondUnitId
// );
if (
this.number &&
this.unitId &&
this.materialCode &&
this.materialCode != "" &&
e
) {
let params = {
materialCode: this.materialCode,
number: this.number,
unitId: this.unitId,
secondUnitId: e,
secondNumber: null,
};
// 修改第二数量
convertBySecondUnitOrNum(params).then((response) => {
this.$emit("update:secondNumber", response.data.secondNumber);
});
}
},
},
};
</script>
<style>
</style>

View File

@@ -0,0 +1,8 @@
<template>
</template>
<script>
</script>
<style>
</style>

View File

@@ -0,0 +1,75 @@
<template>
<uni-card class="empInfo" margin="0" padding="12px" :border="false">
<uni-row class="name-row">
<span class="empName">{{ empName }}</span>
<!-- <uni-tag :circle="true" v-if="eqpName !== '/' || stationTitle !== '/'" text="工作中" type="success" class="status-tag" /> -->
</uni-row>
<uni-row>
<span class="deptName">{{ deptName }}</span>
</uni-row>
<uni-icons class="emp-icon" type="person" size="100" />
</uni-card>
</template>
<script>
export default {
name:"t-emp",
data() {
return {
empName: this.$store.state.employee.empName,
empCode: this.$store.state.employee.empCode,
deptName: this.$store.state.employee.deptName
};
},
}
</script>
<style lang="scss" scoped>
.empInfo {
width: 100%;
flex: 0 0 auto;
background: linear-gradient(135deg, #1e5799 0%, #207cca 100%);
border-radius: 10px !important;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
.name-row {
display: flex;
align-items: center;
margin-bottom: 8px;
}
.empName {
color: #fff;
font-size: 28px !important;
font-weight: 600;
line-height: 1.4;
margin-right: 12px;
}
.deptName {
color: rgba(255, 255, 255, 0.9);
font-size: 20px;
line-height: 1.4;
}
.status-tag {
padding: 2px 10px;
background-color: #e1f3d8;
color: #78c54a;
border-radius: 20px !important;
border: none;
font-size: 16px;
font-weight: 600;
height: 28px;
line-height: 28px;
vertical-align: middle;
}
.emp-icon {
position: absolute;
right: -20px;
bottom: 20px;
color: #233979 !important;
}
}
</style>

View File

@@ -0,0 +1,60 @@
<template>
<view class="t-gap" :class="customClass" :style="rootStyle"></view>
</template>
<script>
export default {
name: 't-gap',
options: {
addGlobalClass: true,
virtualHost: true,
styleIsolation: 'shared'
},
props: {
/**
* 自定义根节点样式
*/
customStyle: {
type: String,
default: ''
},
/**
* 自定义根节点样式类
*/
customClass: {
type: String,
default: ''
},
/**
* 背景颜色
*/
bgColor: {
type: String,
default: 'transparent'
},
/**
* 高度
*/
height: {
type: [Number, String],
default: 15
}
},
computed: {
rootStyle() {
const rootStyle = [];
if (this.bgColor) {
rootStyle.push(`background-color: ${this.bgColor};`);
}
if (this.height) {
const height = typeof this.height === 'number' ? `${this.height}px` : this.height;
rootStyle.push(`height: ${height};`);
}
return rootStyle.join(' ');
}
}
}
</script>

View File

@@ -0,0 +1,112 @@
<template>
<uni-card class="saleInfo" margin="0" padding="12px" :title="saleInfo.saleOutTaskCode || ' '">
<view class="card-list">
<view class="card-item">
<span class="card-item__label">客户编码</span>
<span class="card-item__value">{{ saleInfo.customerName || '-' }}</span>
</view>
<view class="card-item">
<span class="card-item__label">下级客户</span>
<span class="card-item__value">{{ saleInfo.dynamicField1.nextLevelCus || '-' }}</span>
</view>
</view>
<view class="card-data">
<view class="card-data-item">
<span class="card-data-item__label">扫描数量</span>
<span class="card-data-item__value finish">
{{ saleInfo.scanNumber || '-' }}
</span>
</view>
<view class="card-data-item">
<span class="card-data-item__label">总数量</span>
<span class="card-data-item__value">
{{ saleInfo.allNumber || '-' }}
</span>
</view>
</view>
</uni-card>
</template>
<script>
export default {
name: "t-sale-info",
props: {
saleInfo: {
type: Object,
default: {}
},
},
data() {
return {
};
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.saleInfo {
margin: 0 0 10px !important;
padding: 0 !important;
box-shadow: none !important;
border-radius: 11px;
.card-list {
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-gap: 4px;
.card-item {
display: flex;
flex-direction: column;
align-items: center;
.card-item__label {
font-size: 13px;
}
.card-item__value {
font-weight: bold;
font-size: 15px;
color: #333;
}
}
}
.card-data {
display: flex;
margin-top: 4px;
background-color: #f1f1f1;
border-radius: 4px;
padding: 6px 0;
.card-data-item {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
.card-data-item__label {
font-size: 13px;
}
.card-data-item__value {
font-weight: bold;
font-size: 15px;
color: #333;
&.finish {
color: #059669;
}
}
}
}
.actions {
padding: 0 10px;
}
}
</style>

View File

@@ -0,0 +1,231 @@
<template>
<view class="text_block">
<template v-for="(item,index) in content">
<view v-if="item.kind == 1" :key="index"
:style="{backgroundImage:'linear-gradient(to top right,'+item.background[0]+','+item.background[1]+')'}"
:class="[(index+1)%3==0 ? '':'marginRight','kind','kind_one','breathe-blue']">
<view class="view_100" :style="{fontSize:item.content[0].size,color:item.content[0].colorvalue}">
{{item.content[0].value}}
</view>
<view class="view_100" :style="{fontSize:item.content[1].size,color:item.content[1].colortext}">
{{item.content[1].text}}
</view>
</view>
<view v-else-if="item.kind == 2" :key="index"
:class="[(index+1)%3==0 ? '':'marginRight','kind','kind_two','breathe-blue']"
:style="{backgroundImage:'linear-gradient(to top right,'+item.background[0]+','+item.background+')' ,marginRight:(index+1)%3==0?'0rpx':'40rpx'}">
<view v-for="(content,i) in item.content" :key="i" class="two_1">
<text :style="{fontSize:content.size,color:content.colortext}">{{content.text}}:</text>
<text :style="{fontSize:content.size,color:content.colorvalue}">{{content.value}}</text>
</view>
</view>
<view v-else-if="item.kind == 3" :key="index" class="kind kind_three breathe-blue"
:style="{backgroundImage:'linear-gradient(to top right,'+item.background[0]+','+item.background+')'}">
<view class="view_100" :style="{fontSize:item.content[0].size,color:item.content[0].colorvalue}">
{{item.content[0].value}}
</view>
<view class="view_100" :style="{fontSize:item.content[1].size,color:item.content[1].colortext}">
{{item.content[1].text}}
</view>
<view class="three_3 view_100">
<view v-for="(j,i) in 2" :key="i">
<text
:style="{fontSize:item.content[i+2].size,color:item.content[i+2].colortext}">{{item.content[i+2].text}}:</text>
<text
:style="{fontSize:item.content[i+2].size,color:item.content[i+2].colorvalue}">{{item.content[i+2].value}}</text>
</view>
</view>
</view>
<view v-else-if="item.kind == 4" :key="index"
:class="[(index+1)%4==0 ? '':'marginRight','kind','kind_four','breathe-blue']"
:style="{backgroundImage:'linear-gradient(to top right,'+item.background[0]+','+item.background[1]+')',marginRight:(index+1)%4==0?'0rpx':'40px'}">
<view class="view_100" :style="{fontSize:item.content[0].size,color:item.content[0].colortext}">
{{item.content[0].text}}
</view>
<view class="view_100" :style="{fontSize:item.content[1].size,color:item.content[1].colorvalue}">
{{item.content[1].value}}
</view>
<!-- <view class="four_3" :style="{fontSize:item.content[2].size,color:item.content[2].colorvalue}">
<text :style="{fontSize:item.content[3].size,color:item.content[3].colorvalue}">{{item.content[2].text}}</text>
<li v-if="item.content[3].text == 'up'" class="iconfont icon-up icon" :style="{color:item.content[3].colortext}"></li>
<li v-else class="iconfont icon-down icon" :style="{color:item.content[3].colortext}"></li>
<text :style="{fontSize:item.content[3].size,color:item.content[3].colorvalue}">{{item.content[3].value}}</text>
</view> -->
</view>
<view v-else-if="item.kind == 5" :key="index"
:class="[(index+1)%3==0 ? '':'marginRight','kind','kind_five','breathe-red']"
:style="{backgroundImage:'linear-gradient(to top right,'+item.background[0]+','+item.background[1]+')',marginRight:(index+1)%3==0?'0rpx':'40rpx'}">
<view class="view_100" :style="{fontSize:item.content[0].size,color:item.content[0].colortext}">
{{item.content[0].text}}
</view>
<view class="view_100" :style="{fontSize:item.content[1].size,color:item.content[1].colorvalue}">
{{item.content[1].value}}
</view>
<view class="five_3 view_100">
<view v-for="(j,i) in 2" :key="i">
<text
:style="{fontSize:item.content[j+2].size,color:item.content[j+2].colortext}">{{item.content[j+2].text}}</text>
<text
:style="{fontSize:item.content[j+2].size,color:item.content[j+2].colorvalue}">{{item.content[j+2].value}}</text>
</view>
</view>
<view class="five_4">
<text
:style="{fontSize:item.content[4].size,color:item.content[4].colortext}">{{item.content[4].text}}</text>
<text
:style="{fontSize:item.content[4].size,color:item.content[4].colorvalue}">{{item.content[4].value}}</text>
</view>
</view>
</template>
</view>
</template>
<script>
export default {
props: {
content: {
type: Array,
default: []
},
},
data() {
return {}
},
methods: {
},
mounted() {
uni.onWindowResize((res) => {
console.log('变化后的窗口宽度=' + res.size.windowWidth)
console.log('变化后的窗口高度=' + res.size.windowHeight)
})
}
}
</script>
<style lang="scss">
.text_block {
display: flex;
width: 100%;
flex-wrap: wrap;
.marginRight {
margin-right: 36rpx !important;
}
.view_100 {
width: 100%;
}
.CPT_DYBG {
overflow: hidden;
position: relative;
}
.kind {
width: 40%;
padding: 10rpx;
margin-bottom: 40rpx;
display: flex;
justify-content: center;
flex-wrap: wrap;
border-radius: 16rpx;
margin-left: 4.5%;
box-shadow: -4px 4px 4px #ccc;
position: relative;
}
.kind_one {
border-radius: 10rpx;
}
.kind_two {
border-radius: 10rpx;
}
.kind_three {
border-radius: 16rpx;
width: 300rpx;
margin: 0 auto;
.three_3 {
display: flex;
justify-content: space-around;
}
}
.kind_four {
border-radius: 10rpx;
.four_3 {
display: flex;
li {
list-style-type: none;
}
.icon {
margin-top: -8rpx;
transform: scale(0.8);
}
}
}
.kind_five {
border-radius: 20rpx;
.five_3 {
view {
width: 100%;
}
}
}
}
// .breathe-blue {
// position:relative;
// color:#fff;
// text-align:center;
// cursor:pointer;
// box-shadow:0 1px 2px rgba(0,0,0,.3);
// overflow:hidden;
// -webkit-animation-timing-function:ease-in-out;
// -webkit-animation-name:breatheblue;
// -webkit-animation-duration:2000ms;
// -webkit-animation-iteration-count:infinite;
// -webkit-animation-direction:alternate;
// }
// @keyframes breatheblue {
// 0% {
// opacity:.8;
// box-shadow:0 1px 2px rgba(62,178,245,0.5);
// }
// 100% {
// opacity:1;
// box-shadow:0 1px 30px rgba(147,116,247,0.6);
// }
// }
// .breathe-red {
// position:relative;
// color:#fff;
// text-align:center;
// cursor:pointer;
// box-shadow:0 1px 2px rgba(0,0,0,.3);
// overflow:hidden;
// -webkit-animation-timing-function:ease-in-out;
// -webkit-animation-name:breathered;
// -webkit-animation-duration:2000ms;
// -webkit-animation-iteration-count:infinite;
// -webkit-animation-direction:alternate;
// }
// @keyframes breathered {
// 0% {
// opacity:.8;
// box-shadow:0 1px 2px rgba(247,126,137,0.5);
// }
// 100% {
// opacity:1;
// box-shadow:0 1px 30px rgba(247,149,59,0.9);
// }
// }
</style>

35
config.js Normal file
View File

@@ -0,0 +1,35 @@
// 应用全局配置
module.exports = {
// baseUrl: 'http://192.168.1.110:8092',
// baseUrl: 'http://192.168.1.186:8092',
//服务器
baseUrl: 'http://192.168.1.108:8092',
giteaUrl: 'http://223.94.45.156:10830',
// baseUrl: 'http://localhost:8083',
// wmsUrl: 'http://localhost:8091',
//双菱不需要wmsurl
// wmsUrl: 'http://192.168.1.194:8091',
// baseUrl: 'http://192.168.1.108:8083',
// wmsUrl: 'http://192.168.1.108:8091',
// 应用信息
appInfo: {
// 应用名称
name: "ruoyi-app",
// 应用版本
version: "1.0.0",
// 应用logo
logo: "/static/logo/tree.png",
// 官方网站
site_url: "http://ruoyi.vip",
// 政策协议
agreements: [{
title: "隐私政策",
url: "https://ruoyi.vip/protocol.html"
},
{
title: "用户服务协议",
url: "https://ruoyi.vip/protocol.html"
}
]
}
}

BIN
iconfont.ttf Normal file

Binary file not shown.

31
main.js Normal file
View File

@@ -0,0 +1,31 @@
import Vue from 'vue'
import App from './App'
import store from './store' // store
import plugins from './plugins' // plugins
import './permission' // permission
import uView from '@/uni_modules/uview-ui'
import {getDicts} from "@/api/wms/materRequisitiontask";
import {getConfigKey} from "@/api/wms/materRequisitiontask";
Vue.use(plugins)
Vue.use(uView)
// 如此配置即可
// uni.$u.config.unit = 'rpx'
Vue.config.productionTip = false
Vue.prototype.$store = store
Vue.prototype.getDicts = getDicts
Vue.prototype.getConfigKey = getConfigKey
App.mpType = 'app'
const app = new Vue({
...App
})
app.$mount()

159
manifest.json Normal file
View File

@@ -0,0 +1,159 @@
{
"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地址"
}
}
}

690
package-lock.json generated Normal file
View File

@@ -0,0 +1,690 @@
{
"name": "rd_mes_uniapp",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"dependencies": {
"axios": "^1.7.2",
"lodash": "^4.17.21",
"uview-ui": "^2.0.36",
"vuex": "^4.1.0"
}
},
"node_modules/@babel/helper-string-parser": {
"version": "7.25.9",
"resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
"integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
"peer": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
"version": "7.25.9",
"resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
"integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
"peer": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/parser": {
"version": "7.26.3",
"resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.26.3.tgz",
"integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==",
"peer": true,
"dependencies": {
"@babel/types": "^7.26.3"
},
"bin": {
"parser": "bin/babel-parser.js"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@babel/types": {
"version": "7.26.3",
"resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.26.3.tgz",
"integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==",
"peer": true,
"dependencies": {
"@babel/helper-string-parser": "^7.25.9",
"@babel/helper-validator-identifier": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.5.0",
"resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
"integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
"peer": true
},
"node_modules/@vue/compiler-core": {
"version": "3.5.13",
"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.13.tgz",
"integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==",
"peer": true,
"dependencies": {
"@babel/parser": "^7.25.3",
"@vue/shared": "3.5.13",
"entities": "^4.5.0",
"estree-walker": "^2.0.2",
"source-map-js": "^1.2.0"
}
},
"node_modules/@vue/compiler-dom": {
"version": "3.5.13",
"resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz",
"integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==",
"peer": true,
"dependencies": {
"@vue/compiler-core": "3.5.13",
"@vue/shared": "3.5.13"
}
},
"node_modules/@vue/compiler-sfc": {
"version": "3.5.13",
"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz",
"integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==",
"peer": true,
"dependencies": {
"@babel/parser": "^7.25.3",
"@vue/compiler-core": "3.5.13",
"@vue/compiler-dom": "3.5.13",
"@vue/compiler-ssr": "3.5.13",
"@vue/shared": "3.5.13",
"estree-walker": "^2.0.2",
"magic-string": "^0.30.11",
"postcss": "^8.4.48",
"source-map-js": "^1.2.0"
}
},
"node_modules/@vue/compiler-ssr": {
"version": "3.5.13",
"resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz",
"integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==",
"peer": true,
"dependencies": {
"@vue/compiler-dom": "3.5.13",
"@vue/shared": "3.5.13"
}
},
"node_modules/@vue/devtools-api": {
"version": "6.6.4",
"resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
"integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g=="
},
"node_modules/@vue/reactivity": {
"version": "3.5.13",
"resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.13.tgz",
"integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==",
"peer": true,
"dependencies": {
"@vue/shared": "3.5.13"
}
},
"node_modules/@vue/runtime-core": {
"version": "3.5.13",
"resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.13.tgz",
"integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==",
"peer": true,
"dependencies": {
"@vue/reactivity": "3.5.13",
"@vue/shared": "3.5.13"
}
},
"node_modules/@vue/runtime-dom": {
"version": "3.5.13",
"resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz",
"integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==",
"peer": true,
"dependencies": {
"@vue/reactivity": "3.5.13",
"@vue/runtime-core": "3.5.13",
"@vue/shared": "3.5.13",
"csstype": "^3.1.3"
}
},
"node_modules/@vue/server-renderer": {
"version": "3.5.13",
"resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.13.tgz",
"integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==",
"peer": true,
"dependencies": {
"@vue/compiler-ssr": "3.5.13",
"@vue/shared": "3.5.13"
},
"peerDependencies": {
"vue": "3.5.13"
}
},
"node_modules/@vue/shared": {
"version": "3.5.13",
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.13.tgz",
"integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==",
"peer": true
},
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
"node_modules/axios": {
"version": "1.7.2",
"resolved": "https://registry.npmmirror.com/axios/-/axios-1.7.2.tgz",
"integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==",
"dependencies": {
"follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
},
"node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"dependencies": {
"delayed-stream": "~1.0.0"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/csstype": {
"version": "3.1.3",
"resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
"peer": true
},
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/entities": {
"version": "4.5.0",
"resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz",
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
"peer": true,
"engines": {
"node": ">=0.12"
},
"funding": {
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
"node_modules/estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
"peer": true
},
"node_modules/follow-redirects": {
"version": "1.15.6",
"resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz",
"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
"funding": [
{
"type": "individual",
"url": "https://github.com/sponsors/RubenVerborgh"
}
],
"engines": {
"node": ">=4.0"
},
"peerDependenciesMeta": {
"debug": {
"optional": true
}
}
},
"node_modules/form-data": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz",
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
"mime-types": "^2.1.12"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"node_modules/magic-string": {
"version": "0.30.17",
"resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.17.tgz",
"integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
"peer": true,
"dependencies": {
"@jridgewell/sourcemap-codec": "^1.5.0"
}
},
"node_modules/mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mime-types": {
"version": "2.1.35",
"resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"dependencies": {
"mime-db": "1.52.0"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/nanoid": {
"version": "3.3.8",
"resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.8.tgz",
"integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"peer": true,
"bin": {
"nanoid": "bin/nanoid.cjs"
},
"engines": {
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
"node_modules/picocolors": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz",
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
"peer": true
},
"node_modules/postcss": {
"version": "8.4.49",
"resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.49.tgz",
"integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==",
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/postcss/"
},
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/postcss"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"peer": true,
"dependencies": {
"nanoid": "^3.3.7",
"picocolors": "^1.1.1",
"source-map-js": "^1.2.1"
},
"engines": {
"node": "^10 || ^12 || >=14"
}
},
"node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
},
"node_modules/source-map-js": {
"version": "1.2.1",
"resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz",
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"peer": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/uview-ui": {
"version": "2.0.36",
"resolved": "https://registry.npmjs.org/uview-ui/-/uview-ui-2.0.36.tgz",
"integrity": "sha512-ASSZT6M8w3GTO1eFPbsgEFV0U5UujK+8pTNr+MSUbRNcRMC1u63DDTLJVeArV91kWM0bfAexK3SK9pnTqF9TtA==",
"engines": {
"HBuilderX": "^3.1.0"
}
},
"node_modules/vue": {
"version": "3.5.13",
"resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.13.tgz",
"integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==",
"peer": true,
"dependencies": {
"@vue/compiler-dom": "3.5.13",
"@vue/compiler-sfc": "3.5.13",
"@vue/runtime-dom": "3.5.13",
"@vue/server-renderer": "3.5.13",
"@vue/shared": "3.5.13"
},
"peerDependencies": {
"typescript": "*"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/vuex": {
"version": "4.1.0",
"resolved": "https://registry.npmmirror.com/vuex/-/vuex-4.1.0.tgz",
"integrity": "sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==",
"dependencies": {
"@vue/devtools-api": "^6.0.0-beta.11"
},
"peerDependencies": {
"vue": "^3.2.0"
}
}
},
"dependencies": {
"@babel/helper-string-parser": {
"version": "7.25.9",
"resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
"integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
"peer": true
},
"@babel/helper-validator-identifier": {
"version": "7.25.9",
"resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
"integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
"peer": true
},
"@babel/parser": {
"version": "7.26.3",
"resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.26.3.tgz",
"integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==",
"peer": true,
"requires": {
"@babel/types": "^7.26.3"
}
},
"@babel/types": {
"version": "7.26.3",
"resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.26.3.tgz",
"integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==",
"peer": true,
"requires": {
"@babel/helper-string-parser": "^7.25.9",
"@babel/helper-validator-identifier": "^7.25.9"
}
},
"@jridgewell/sourcemap-codec": {
"version": "1.5.0",
"resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
"integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
"peer": true
},
"@vue/compiler-core": {
"version": "3.5.13",
"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.13.tgz",
"integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==",
"peer": true,
"requires": {
"@babel/parser": "^7.25.3",
"@vue/shared": "3.5.13",
"entities": "^4.5.0",
"estree-walker": "^2.0.2",
"source-map-js": "^1.2.0"
}
},
"@vue/compiler-dom": {
"version": "3.5.13",
"resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz",
"integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==",
"peer": true,
"requires": {
"@vue/compiler-core": "3.5.13",
"@vue/shared": "3.5.13"
}
},
"@vue/compiler-sfc": {
"version": "3.5.13",
"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz",
"integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==",
"peer": true,
"requires": {
"@babel/parser": "^7.25.3",
"@vue/compiler-core": "3.5.13",
"@vue/compiler-dom": "3.5.13",
"@vue/compiler-ssr": "3.5.13",
"@vue/shared": "3.5.13",
"estree-walker": "^2.0.2",
"magic-string": "^0.30.11",
"postcss": "^8.4.48",
"source-map-js": "^1.2.0"
}
},
"@vue/compiler-ssr": {
"version": "3.5.13",
"resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz",
"integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==",
"peer": true,
"requires": {
"@vue/compiler-dom": "3.5.13",
"@vue/shared": "3.5.13"
}
},
"@vue/devtools-api": {
"version": "6.6.4",
"resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
"integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g=="
},
"@vue/reactivity": {
"version": "3.5.13",
"resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.13.tgz",
"integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==",
"peer": true,
"requires": {
"@vue/shared": "3.5.13"
}
},
"@vue/runtime-core": {
"version": "3.5.13",
"resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.13.tgz",
"integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==",
"peer": true,
"requires": {
"@vue/reactivity": "3.5.13",
"@vue/shared": "3.5.13"
}
},
"@vue/runtime-dom": {
"version": "3.5.13",
"resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz",
"integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==",
"peer": true,
"requires": {
"@vue/reactivity": "3.5.13",
"@vue/runtime-core": "3.5.13",
"@vue/shared": "3.5.13",
"csstype": "^3.1.3"
}
},
"@vue/server-renderer": {
"version": "3.5.13",
"resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.13.tgz",
"integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==",
"peer": true,
"requires": {
"@vue/compiler-ssr": "3.5.13",
"@vue/shared": "3.5.13"
}
},
"@vue/shared": {
"version": "3.5.13",
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.13.tgz",
"integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==",
"peer": true
},
"asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
"axios": {
"version": "1.7.2",
"resolved": "https://registry.npmmirror.com/axios/-/axios-1.7.2.tgz",
"integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==",
"requires": {
"follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
},
"combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"requires": {
"delayed-stream": "~1.0.0"
}
},
"csstype": {
"version": "3.1.3",
"resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
"peer": true
},
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
},
"entities": {
"version": "4.5.0",
"resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz",
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
"peer": true
},
"estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
"peer": true
},
"follow-redirects": {
"version": "1.15.6",
"resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz",
"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA=="
},
"form-data": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz",
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
"requires": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
"mime-types": "^2.1.12"
}
},
"lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"magic-string": {
"version": "0.30.17",
"resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.17.tgz",
"integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
"peer": true,
"requires": {
"@jridgewell/sourcemap-codec": "^1.5.0"
}
},
"mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
},
"mime-types": {
"version": "2.1.35",
"resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"requires": {
"mime-db": "1.52.0"
}
},
"nanoid": {
"version": "3.3.8",
"resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.8.tgz",
"integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
"peer": true
},
"picocolors": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz",
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
"peer": true
},
"postcss": {
"version": "8.4.49",
"resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.49.tgz",
"integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==",
"peer": true,
"requires": {
"nanoid": "^3.3.7",
"picocolors": "^1.1.1",
"source-map-js": "^1.2.1"
}
},
"proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
},
"source-map-js": {
"version": "1.2.1",
"resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz",
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"peer": true
},
"uview-ui": {
"version": "2.0.36",
"resolved": "https://registry.npmjs.org/uview-ui/-/uview-ui-2.0.36.tgz",
"integrity": "sha512-ASSZT6M8w3GTO1eFPbsgEFV0U5UujK+8pTNr+MSUbRNcRMC1u63DDTLJVeArV91kWM0bfAexK3SK9pnTqF9TtA=="
},
"vue": {
"version": "3.5.13",
"resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.13.tgz",
"integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==",
"peer": true,
"requires": {
"@vue/compiler-dom": "3.5.13",
"@vue/compiler-sfc": "3.5.13",
"@vue/runtime-dom": "3.5.13",
"@vue/server-renderer": "3.5.13",
"@vue/shared": "3.5.13"
}
},
"vuex": {
"version": "4.1.0",
"resolved": "https://registry.npmmirror.com/vuex/-/vuex-4.1.0.tgz",
"integrity": "sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==",
"requires": {
"@vue/devtools-api": "^6.0.0-beta.11"
}
}
}
}

8
package.json Normal file
View File

@@ -0,0 +1,8 @@
{
"dependencies": {
"axios": "^1.7.2",
"lodash": "^4.17.21",
"uview-ui": "^2.0.36",
"vuex": "^4.1.0"
}
}

919
pages.json Normal file
View File

@@ -0,0 +1,919 @@
{
"pages": [{
"path": "pages/login",
"style": {
"navigationBarTitleText": "登录"
}
}, {
"path": "pages/index",
"style": {
"navigationBarTitleText": "若依移动端框架",
"navigationStyle": "custom"
}
}, {
"path": "pages/work/index",
"style": {
"navigationBarTitleText": "工作台",
"app-plus": {
"titleNView": {
"buttons": [{
"float": "right",
"select": "true"
}]
}
}
}
}, {
"path": "pages/work/esop",
"style": {
"navigationBarTitleText": "ESOP"
}
}, {
"path": "pages/work/ipc",
"style": {
"navigationBarTitleText": "IPC"
}
}, {
"path": "pages/work/mesIT",
"style": {
"navigationBarTitleText": "MES智能终端",
"app-plus": {
"titleNView": {
"buttons": [{
"float": "right",
"select": "true"
}]
}
}
}
}, {
"path": "pages/mine/index",
"style": {
"navigationBarTitleText": "我的"
}
},
{
"path": "pages/mine/avatar/index",
"style": {
"navigationBarTitleText": "修改头像"
}
}, {
"path": "pages/mine/info/index",
"style": {
"navigationBarTitleText": "个人信息"
}
}, {
"path": "pages/mine/info/edit",
"style": {
"navigationBarTitleText": "编辑资料"
}
}, {
"path": "pages/mine/pwd/index",
"style": {
"navigationBarTitleText": "修改密码"
}
}, {
"path": "pages/mine/setting/index",
"style": {
"navigationBarTitleText": "应用设置"
}
}, {
"path": "pages/mine/revert/index",
"style": {
"navigationBarTitleText": "版本回退",
"enablePullDownRefresh": true
}
}, {
"path": "pages/mine/help/index",
"style": {
"navigationBarTitleText": "常见问题"
}
}, {
"path": "pages/mine/about/index",
"style": {
"navigationBarTitleText": "关于我们"
}
},
{
"path": "pages/common/webview/index",
"style": {
"navigationBarTitleText": "浏览网页"
}
}, {
"path": "pages/common/textview/index",
"style": {
"navigationBarTitleText": "浏览文本"
}
}, {
"path": "pages/mes/jobReport/start",
"style": {
"navigationBarTitleText": "工序开工"
}
}, {
"path": "pages/mes/jobReport/pass",
"style": {
"navigationBarTitleText": "合格品报工"
}
}, {
"path": "pages/mes/jobReport/defect",
"style": {
"navigationBarTitleText": "不良品报工"
}
}, {
"path": "pages/mes/jobReport/scrap",
"style": {
"navigationBarTitleText": "报废品报工"
}
}, {
"path": "pages/mes/jobReport/loss",
"style": {
"navigationBarTitleText": "损耗报工"
}
}, {
"path": "pages/mes/jobReport/onceReport",
"style": {
"navigationBarTitleText": "一次性报工"
}
}, {
"path": "pages/mes/jobReport/pipelineReport",
"style": {
"navigationBarTitleText": "流水线报工"
}
}, {
"path": "pages/mes/jobReport/pwoReport",
"style": {
"navigationBarTitleText": "工单报工"
}
}, {
"path": "pages/mes/mesJobSingleReportSign/reportEnsure",
"style": {
"navigationBarTitleText": "报工确认"
}
}, {
"path": "pages/mes/mesJobSingleReportSign/reportContEnsure",
"style": {
"navigationBarTitleText": "报工批量确认"
}
}, {
"path": "pages/mes/mesJobSingleReportSign/reportFailRecord",
"style": {
"navigationBarTitleText": "报工失败记录"
}
}, {
"path": "pages/mes/mesJobSingleReportSign/inFailRecord",
"style": {
"navigationBarTitleText": "入库失败记录"
}
}, {
"path": "pages/mes/jobCv/jobIn",
"style": {
"navigationBarTitleText": "上机转入"
}
}, {
"path": "pages/mes/jobCv/pwoDraw",
"style": {
"navigationBarTitleText": "领料转移单"
}
}, {
"path": "pages/mes/jobCv/pwoIn",
"style": {
"navigationBarTitleText": "完工转移单"
}
}, {
"path": "pages/mes/jobCv/pwoWarehousing",
"style": {
"navigationBarTitleText": "工单入库"
}
}, {
"path": "pages/mes/jobCv/jobBindEqp",
"style": {
"navigationBarTitleText": "切换设备"
}
}, {
"path": "pages/mes/jobCv/pieceReport",
"style": {
"navigationBarTitleText": "单件报工"
}
}, {
"path": "pages/mes/jobCv/pieceIn",
"style": {
"navigationBarTitleText": "件号转入"
}
}, {
"path": "pages/mes/jobCv/pwoClose",
"style": {
"navigationBarTitleText": "工单人工关闭"
}
}, {
"path": "pages/mes/jobCv/pwoSearch",
"style": {
"navigationBarTitleText": "工单状态查询"
}
}, {
"path": "pages/mes/jobCv/stockConvertion",
"style": {
"navigationBarTitleText": "物料核销单"
}
}, {
"path": "pages/mes/mesJobSingleReportSign/qualityEnsure",
"style": {
"navigationBarTitleText": "质检确认"
}
}, {
"path": "pages/mes/mesJobSingleReportSign/inEnsure",
"style": {
"navigationBarTitleText": "入库确认"
}
}, {
"path": "pages/mes/mesJobSingleReportSign/inQuery",
"style": {
"navigationBarTitleText": "入库查询"
}
}, {
"path": "pages/mes/mesJobSingleReportSign/notInQuery",
"style": {
"navigationBarTitleText": "待入库查询"
}
}, {
"path": "pages/mes/mesJobSingleReportSign/statusQuery",
"style": {
"navigationBarTitleText": "状态查询"
}
}, {
"path": "pages/wms/purchase/purchaseSh",
"style": {
"navigationBarTitleText": "采购收货单"
}
}, {
"path": "pages/wms/purchase/purchaseRk",
"style": {
"navigationBarTitleText": "采购入库单"
}
}, {
"path": "pages/wms/purchase/purchaseQualityT",
"style": {
"navigationBarTitleText": "采购质检单"
}
}, {
"path": "pages/wms/purchase/purchaseDetailRk",
"style": {
"navigationBarTitleText": "明细标签入库"
}
}, {
"path": "pages/wms/pdcBack/pdcBackSh",
"style": {
"navigationBarTitleText": "生产退料收货单"
}
}, {
"path": "pages/wms/pdcBack/pdcBackRk",
"style": {
"navigationBarTitleText": "生产退料入库单"
}
}, {
"path": "pages/wms/pdcBack/directRk",
"style": {
"navigationBarTitleText": "退料直接入库单"
}
}, {
"path": "pages/wms/pdcIn/pdcInQualityT",
"style": {
"navigationBarTitleText": "产品质检"
}
}, {
"path": "pages/wms/pdcIn/pdcRk",
"style": {
"navigationBarTitleText": "产品入库单"
}
}, {
"path": "pages/wms/pdcIn/directRk",
"style": {
"navigationBarTitleText": "直接入库单"
}
}, {
"path": "pages/wms/pdcIn/pdcSh",
"style": {
"navigationBarTitleText": "产品收货单"
}
}, {
"path": "pages/wms/pdcMaterial/pdcCk",
"style": {
"navigationBarTitleText": "领料出库单"
}
}, {
"path": "pages/wms/pdcMaterial/pdcPick",
"style": {
"navigationBarTitleText": "领料拣货单"
}
}, {
"path": "pages/wms/pdcMaterial/directCk",
"style": {
"navigationBarTitleText": "直接出库单"
}
}, {
"path": "pages/wms/pdcMaterial/confirmNum",
"style": {
"navigationBarTitleText": "出库数量检验"
}
}, {
"path": "pages/wms/sale/saleCk",
"style": {
"navigationBarTitleText": "销售出库单"
}
}, {
"path": "pages/wms/sale/directCk",
"style": {
"navigationBarTitleText": "直接出库单"
}
}, {
"path": "pages/wms/sale/salePick",
"style": {
"navigationBarTitleText": "销售拣货单"
}
},
{
"path": "pages/wms/sale/codeCk",
"style": {
"navigationBarTitleText": "工业条码出库"
}
}, {
"path": "pages/wms/sale/boxCodeCk",
"style": {
"navigationBarTitleText": "箱码出库"
}
}, {
"path": "pages/srm/antiCrossCargoIn",
"style": {
"navigationBarTitleText": "防串货录入"
}
}, {
"path": "pages/srm/antiiCrossCargoQuery",
"style": {
"navigationBarTitleText": "防串货查询"
}
}, {
"path": "pages/wms/inventory/inventorySheet",
"style": {
"navigationBarTitleText": "盘点单"
}
}, {
"path": "pages/wms/inventory/inventoryByBatchNo",
"style": {
"navigationBarTitleText": "批号盘点"
}
}, {
"path": "pages/qc/fqc",
"style": {
"navigationBarTitleText": "生产入库检"
}
},
{
"path": "pages/qc/ipqc",
"style": {
"navigationBarTitleText": "生产过程检"
}
}, {
"path": "pages/qc/iqc",
"style": {
"navigationBarTitleText": "采购入库检"
}
}, {
"path": "pages/qc/oqc",
"style": {
"navigationBarTitleText": "销售出库检"
}
}, {
"path": "pages/qc/updateStandardList",
"style": {
"navigationBarTitleText": "编辑批号质检详情"
}
}, {
"path": "pages/qc/qcAdd",
"style": {
"navigationBarTitleText": "新增质检"
}
}, {
"path": "pages/basic/empEqpStart",
"style": {
"navigationBarTitleText": "人员上机"
}
}, {
"path": "pages/basic/empEqpEnd",
"style": {
"navigationBarTitleText": "人员下机"
}
}, {
"path": "pages/basic/searchJobs",
"style": {
"navigationBarTitleText": "查看作业"
}
}, {
"path": "pages/basic/empStaStart",
"style": {
"navigationBarTitleText": "工位签到"
}
}, {
"path": "pages/basic/empStaEnd",
"style": {
"navigationBarTitleText": "工位签退"
}
}, {
"path": "pages/basic/cutterStart",
"style": {
"navigationBarTitleText": "刀柄上机"
}
}, {
"path": "pages/basic/cutterEnd",
"style": {
"navigationBarTitleText": "刀柄下机"
}
}, {
"path": "pages/basic/cutterBind",
"style": {
"navigationBarTitleText": "刀具安装"
}
}, {
"path": "pages/basic/cutterUnBind",
"style": {
"navigationBarTitleText": "刀具拆卸"
}
}, {
"path": "pages/basic/cutterSwitch",
"style": {
"navigationBarTitleText": "刀具切换"
}
}, {
"path": "pages/basic/cutterBladeEnd",
"style": {
"navigationBarTitleText": "刀刃下机"
}
}, {
"path": "pages/basic/cutterBladeStart",
"style": {
"navigationBarTitleText": "刀刃上机"
}
}, {
"path": "pages/esop/esopProLine",
"style": {
"navigationBarTitleText": "ESOP产线下发"
}
}, {
"path": "pages/esop/esopPwo",
"style": {
"navigationBarTitleText": "作业工位"
}
}, {
"path": "pages/wms/pwoIn/pwoRk",
"style": {
"navigationBarTitleText": "产品入库单"
}
}, {
"path": "pages/wms/pwoIn/pwoSh",
"style": {
"navigationBarTitleText": "产品收货单"
}
}, {
"path": "pages/wms/pwoIn/pwoTask",
"style": {
"navigationBarTitleText": "生产任务单"
}
}, {
"path": "pages/wms/pwoMaterial/pwoOut",
"style": {
"navigationBarTitleText": "领料出库单"
}
}, {
"path": "pages/wms/pwoMaterial/pwoPick",
"style": {
"navigationBarTitleText": "领料拣货单"
}
}, {
"path": "pages/tpm/checkTask",
"style": {
"navigationBarTitleText": "点检任务单"
}
}, {
"path": "pages/tpm/checkTaskItem",
"style": {
"navigationBarTitleText": "点检任务明细单"
}
}, {
"path": "pages/tpm/list",
"style": {
"navigationBarTitleText": "基本信息"
}
}, {
"path": "pages/tpm/maintainTask",
"style": {
"navigationBarTitleText": "保养任务单"
}
}, {
"path": "pages/tpm/maintainTaskItem",
"style": {
"navigationBarTitleText": "保养任务明细单"
}
}, {
"path": "pages/tpm/repairTask",
"style": {
"navigationBarTitleText": "维修任务单"
}
}, {
"path": "pages/tpm/repairTaskItem",
"style": {
"navigationBarTitleText": "维修任务明细单"
}
}, {
"path": "pages/retrospect/piece",
"style": {
"navigationBarTitleText": "件号追溯"
}
}, {
"path": "pages/retrospect/pwo",
"style": {
"navigationBarTitleText": "工单追溯",
"enablePullDownRefresh": false
}
}, {
"path": "pages/work/searchIndex/searchIndex",
"style": {
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
}, {
"path": "pages/wms/pdcIn/pdcListing",
"style": {
"navigationBarTitleText": "批号分批入库明细",
"enablePullDownRefresh": false
}
}, {
"path": "pages/wms/purchase/purchaseListing",
"style": {
"navigationBarTitleText": "批号分批入库明细",
"enablePullDownRefresh": false
}
}, {
"path": "pages/wms/pdcBack/pdcBackListing",
"style": {
"navigationBarTitleText": "批号分批入库明细",
"enablePullDownRefresh": false
}
},
{
"path": "pages/mes/productSuit/addSuit",
"style": {
"navigationBarTitleText": "新增产品套装",
"enablePullDownRefresh": false
}
},
{
"path": "pages/mes/productSuit/addSuitDetail",
"style": {
"navigationBarTitleText": "产品套装明细",
"enablePullDownRefresh": false
}
},
{
"path": "pages/mes/mouldShareGroup/addMouldShareGroup",
"style": {
"navigationBarTitleText": "新增工模作业",
"enablePullDownRefresh": false
}
},
{
"path": "pages/mes/mouldShareGroup/addMouldShareGroupDetail",
"style": {
"navigationBarTitleText": "工模作业明细",
"enablePullDownRefresh": false
}
},
{
"path": "pages/wms/stock/addTransfer",
"style": {
"navigationBarTitleText": "新增物料移库",
"enablePullDownRefresh": false
}
},
{
"path": "pages/wms/stock/addInvQuick",
"style": {
"navigationBarTitleText": "新增快速盘点",
"enablePullDownRefresh": false
}
},
{
"path": "pages/wms/stock/search",
"style": {
"navigationBarTitleText": "库存查询",
"enablePullDownRefresh": false
}
},
{
"path": "pages/mes/jobQuality/jobQuality",
"style": {
"navigationBarTitleText": "作业质检",
"enablePullDownRefresh": false
}
},
{
"path": "pages/tpmMould/mouldRepairTaskList",
"style": {
"navigationBarTitleText": "模具维修",
"enablePullDownRefresh": false
}
},
{
"path": "pages/tpmMould/mouldRepairTaskAdd",
"style": {
"navigationBarTitleText": "新增模具维修",
"enablePullDownRefresh": false
}
},
{
"path": "pages/tpmMould/eqpWithMouldHistory",
"style": {
"navigationBarTitleText": "设备上模历史",
"enablePullDownRefresh": false
}
},
{
"path": "pages/tpmMould/mouldQuery",
"style": {
"navigationBarTitleText": "模具查询",
"enablePullDownRefresh": false
}
},
{
"path": "pages/tpmMould/mouldEnd",
"style": {
"navigationBarTitleText": "下模开始",
"enablePullDownRefresh": false
}
},
{
"path": "pages/tpmMould/mouldEndFinish",
"style": {
"navigationBarTitleText": "下模完成",
"enablePullDownRefresh": false
}
},
{
"path": "pages/tpmMould/mouldStart",
"style": {
"navigationBarTitleText": "上模开始",
"enablePullDownRefresh": false
}
},
{
"path": "pages/tpmMould/mouldStartFinish",
"style": {
"navigationBarTitleText": "上模完成",
"enablePullDownRefresh": false
}
},
{
"path": "pages/mes/pwoRecord/pwoRecordAdd",
"style": {
"navigationBarTitleText": "维修记录单",
"enablePullDownRefresh": false
}
},
{
"path": "pages/mes/pwoRecord/badRecord",
"style": {
"navigationBarTitleText": "不良记录",
"enablePullDownRefresh": false
}
},
{
"path": "pages/mes/pwoRecord/badRecordList",
"style": {
"navigationBarTitleText": "不良记录列表",
"enablePullDownRefresh": false
}
},
{
"path": "pages/qc/opqc",
"style": {
"navigationBarTitleText": "制程检验",
"enablePullDownRefresh": false
}
},
{
"path": "pages/wms/pdcMaterial/splitItem",
"style": {
"navigationBarTitleText": ""
}
},
{
"path": "pages/wms/pdcMaterial/pickingout",
"style": {
"navigationBarTitleText": "领料拣货出库单"
}
}, {
"path": "pages/wms/pdcMaterial/materRequisitiontask",
"style": {
"navigationBarTitleText": "领料任务单"
}
},
{
"path": "pages/wms/pdcMaterial/materRequisitiontask/materRequisitiontaskDetails",
"style": {
"navigationBarTitleText": "领料任务单明细"
}
},
{
"path": "pages/wms/pdcMaterial/materRequisitiontask/InventoryDetails",
"style": {
"navigationBarTitleText": "领料任务单明细"
}
},
{
"path": "pages/wms/pdcMaterial/pickingoutModel/pickingoutDetails",
"style": {
"navigationBarTitleText": "领料拣货出库"
}
},
{
"path": "pages/wms/sale/back/direct",
"style": {
"navigationBarTitleText": "直接退货入库单"
}
},
{
"path": "pages/wms/pdcIn/componentScn",
"style": {
"navigationBarTitleText": "组件扫描"
}
},
{
"path": "pages/mes/jobCv/transfer/index",
"style": {
"navigationBarTitleText": "生产入库转移单"
}
},
{
"path": "pages/mes/jobCv/transfer/table",
"style": {
"navigationBarTitleText": "查询工单作业"
}
},
{
"path": "pages/mes/jobCv/transfer/from",
"style": {
"navigationBarTitleText": "添加车间物料转移单"
}
},
{
"path": "pages/bom/chiefRecords",
"style": {
"navigationBarTitleText": "炉长记录"
}
},
{
"path": "pages/bom/inspectionRecords",
"style": {
"navigationBarTitleText": "检验记录"
}
},
{
"path": "pages/bom/cleaningRecords",
"style": {
"navigationBarTitleText": "清炉记录"
}
},
{
"path": "pages/bom/recordQuerys",
"style": {
"navigationBarTitleText": "记录查询"
}
},
{
"path": "pages/bom/history",
"style": {
"navigationBarTitleText": "查看历史"
}
},
{
"path": "pages/mes/jobCv/pieceReportOper/index",
"style": {
"navigationBarTitleText": "件号报工"
}
},
{
"path": "pages/detail/qualityDetail",
"style": {
"navigationBarTitleText": "质量明细"
}
}, {
"path": "pages/detail/salaryDetail",
"style": {
"navigationBarTitleText": "薪资明细"
}
},
{
"path": "pages/mes/jobReport/shiftTaskReport",
"style": {
"navigationBarTitleText": "班产报工"
}
}, {
"path": "pages/tpmMould/addMold",
"style": {
"navigationBarTitleText": "新增模具"
}
},
{
"path": "pages/mes/jobReport/commissionRecord",
"style": {
"navigationBarTitleText": "调机记录"
}
},
{
"path": "pages/wms/purchase/quickStorage",
"style": {
"navigationBarTitleText": "采购直接入库"
}
},
{
"path": "pages/les/returnPallet",
"style": {
"navigationBarTitleText": "托盘返空"
}
},
{
"path": "pages/les/bindMaterial",
"style": {
"navigationBarTitleText": "备料绑定"
}
},
{
"path": "pages/les/callMaterial",
"style": {
"navigationBarTitleText": "生产呼料"
}
},
{
"path": "pages/les/chooseTask",
"style": {
"navigationBarTitleText": "选择任务"
}
},
{
"path": "pages/les/deliveryMaterial",
"style": {
"navigationBarTitleText": "生产配送"
}
}
],
"tabBar": {
"color": "#000000",
"selectedColor": "#000000",
"borderStyle": "white",
"backgroundColor": "#ffffff",
"list": [{
"pagePath": "pages/index",
"iconPath": "static/images/tabbar/home.png",
"selectedIconPath": "static/images/tabbar/home_.png",
"text": "首页"
},
// {
// "pagePath": "pages/index",
// "iconPath": "static/images/tabbar/home.png",
// "selectedIconPath": "static/images/tabbar/home_.png",
// "text": "首页"
// },
{
"pagePath": "pages/work/index",
"iconPath": "static/images/tabbar/work.png",
"selectedIconPath": "static/images/tabbar/work_.png",
"text": "工作台"
}, {
"pagePath": "pages/mine/index",
"iconPath": "static/images/tabbar/mine.png",
"selectedIconPath": "static/images/tabbar/mine_.png",
"text": "我的"
}
],
"fontSize": "14px"
},
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "RuoYi",
"navigationBarBackgroundColor": "#FFFFFF",
"pageOrientation": "auto"
},
"condition": { //模式配置,仅开发期间生效
"current": 0, //当前激活的模式(list 的索引项)
"list": [{
"name": "", //模式名称
"path": "", //启动页面,必选
"query": "" //启动参数在页面的onLoad函数里面得到
}]
}
}

137
pages/basic/cutterBind.vue Normal file
View File

@@ -0,0 +1,137 @@
<template>
<view>
<uni-forms ref="form" :modelValue="formData" :rules="rules">
<uni-row>
<uni-forms-item label="刀柄编码" :labelWidth='90' name="shankCode">
<uni-easyinput suffixIcon="scan" @iconClick="scanBar" v-model="formData.shankCode" type="text" />
</uni-forms-item>
<uni-forms-item label="刀刃编码" :labelWidth='90' name="bladeCode">
<uni-easyinput suffixIcon="scan" @iconClick="scanBarbladeCode" v-model="formData.bladeCode"
type="text" />
</uni-forms-item>
<uni-forms-item label="安装员" :labelWidth='90' name="installCode">
<uni-easyinput suffixIcon="scan" @iconClick="scanBarinstallBy" @change="selectinstallBy"
v-model="installCode" type="text" />
</uni-forms-item>
</uni-row>
</uni-forms>
<u-button type="primary" @click="submit">提交</u-button>
</view>
</template>
<script>
import {
listUseRecord,
getUseRecord,
delUseRecord,
addStartUse,
updateEndUse,
listEntity,
listMaterial,
listEquipment,
getEntity,
bindRecord
} from "@/api/basic/cutter.js";
import {
listEmployee
} from "@/api/mes/jobIn.js";
export default {
data() {
return {
formData: {
shankCode: null,
bladeCode: null,
installBy: null,
},
installCode: null,
rules: {
bladeCode: {
rules: [{
required: true,
errorMessage: '请输入刀刃编码!'
}]
},
shankCode: {
rules: [{
required: true,
errorMessage: '请输入刀柄编码!'
}]
},
installCode: {
rules: [{
required: true,
errorMessage: '请输入安装员!'
}]
},
}
}
},
mounted() {},
methods: {
scanBar() {
const _this = this;
uni.scanCode({
scanType: ['qrCode', 'barCode'],
success: function(res) {
_this.formData.shankCode = res.result;
}
});
},
scanBarbladeCode() {
const _this = this;
uni.scanCode({
scanType: ['qrCode', 'barCode'],
success: function(res) {
_this.formData.bladeCode = res.result;
}
});
},
selectinstallBy(code) {
listEmployee({
empCode: code
}).then(async res => {
if (res.rows.length > 0) {
this.formData.installBy = res.rows[0].name;
} else {
this.$modal.msg("未查询到该人员,请重新输入!")
}
})
},
scanBarinstallBy() {
const _this = this;
uni.scanCode({
scanType: ['qrCode', 'barCode'],
success: function(res) {
_this.formData.installCode = res.result;
_this.selectinstallBy(res.result);
}
});
},
submit() {
this.$refs.form.validate().then(async res => {
if (this.formData.bladeCode && this.formData.shankCode) {
//判断安装员是否填入
setTimeout(() => {
if (this.formData.installBy) {
this.$modal.loading('提交中')
bindRecord(this.formData).then(res => {
this.$modal.closeLoading();
this.$modal.msgSuccess("刀具安装成功!")
setTimeout(() => {
this.$tab.switchTab("/pages/work/index");
}, 500);
})
} else {
this.$modal.msg("请输入安装员!")
}
}, 500);
}
})
}
}
}
</script>
<style>
</style>

View File

@@ -0,0 +1,227 @@
<template>
<view>
<uni-forms ref="form" :modelValue="formData" :rules="rules">
<uni-row>
<uni-forms-item label="刀刃编码" :labelWidth='90' name="cutterBladeCode">
<uni-easyinput suffixIcon="scan" @iconClick="scanBar" v-model="formData.cutterBladeCode"
type="text" />
</uni-forms-item>
<uni-forms-item label="设备编码" :labelWidth='90' name="equipmentCode">
<uni-easyinput suffixIcon="scan" @iconClick="scanBarequipmentCode" v-model="formData.equipmentCode"
type="text" />
</uni-forms-item>
<uni-forms-item label="拆卸员" :labelWidth='90' name="removeCode">
<uni-easyinput suffixIcon="scan" @iconClick="scanBarremoveBy" @change="selectremoveBy"
v-model="removeCode" type="text" />
</uni-forms-item>
<uni-forms-item label="操作员" :labelWidth='90' name="operatorCode">
<uni-easyinput suffixIcon="scan" @iconClick="scanBaroperator" @change="selectoperator"
v-model="operatorCode" type="text" />
</uni-forms-item>
</uni-row>
</uni-forms>
<u-button type="primary" @click="submit">提交</u-button>
</view>
</template>
<script>
import {
listUseRecord,
getUseRecord,
delUseRecord,
addStartUse,
updateEndUse,
listEntity,
listMaterial,
listEquipment,
getEntity,
removeBlade
} from "@/api/basic/cutter.js";
import {
listEmployee
} from "@/api/mes/jobIn.js";
export default {
data() {
return {
code: null,
formData: {
cutterBladeCode: null,
equipmentCode: null,
removeBy: null,
operator: null
},
removeCode: null,
operatorCode: null,
value: 0,
range: [],
entityOptions: [],
materialOptions: [],
rules: {
equipmentCode: {
rules: [{
required: true,
errorMessage: '请输入设备编码!'
},
{
pattern: '^[A-Z0-9]+$',
errorMessage: '请输入正确格式的设备编码!',
trigger: 'blur',
},
]
},
cutterBladeCode: {
rules: [{
required: true,
errorMessage: '请输入刀柄编码!'
}]
},
}
}
},
mounted() {},
methods: {
//扫描物料编码带出绑定的刀具信息
scanBarCode() {
if (this.formData.materialCode) {
console.log(this.formData.materialCode)
this.range = [];
//判断是否扫描二维码
if (typeof(this.formData.materialCode) === 'string') {
this.formData.materialName = this.materialOptions.find(item => item.materialCode == this.formData
.materialCode).materialName;
if (this.formData.materialCode != "") {
listEntity({
cutterMaterialCode: this.formData.materialCode,
cutterMaterialName: this.formData.materialName,
}).then((resp) => {
this.range = resp.rows;
for (var i = 0; i < resp.rows.length; i++) {
this.range[i].value = resp.rows[i].id;
this.range[i].text = resp.rows[i].entityCode + ':' + (!resp.rows[i].pieceNo ?
'' : resp.rows[i].pieceNo) + ':' + (!resp.rows[i].batchNo ? '' : resp
.rows[i].batchNo)
}
this.entityOptions = resp.rows;
});
} else {
this.entityOptions = [];
}
} else if (typeof(this.formData.materialCode) === 'object') {
if (this.formData.materialCode.id) {
this.formData.cutterEntityId = this.formData.materialCode.id;
getEntity(this.formData.materialCode.id).then(async res => {
this.range.push(res.data);
this.entityOptions = this.range;
this.formData.cutterEntityCode = this.range[0].entityCode;
this.range[0].value = this.range[0].id;
this.range[0].text = this.range[0].entityCode + ':' + (!this.range[0].pieceNo ?
'' : this.range[0].pieceNo) + ':' + (!this.range[0].batchNo ? '' : this
.range[0].batchNo)
})
}
this.formData.materialName = this.formData.materialCode.cutterMaterialName;
this.formData.materialCode = this.formData.materialCode.cutterMaterialCode;
}
}
},
scanBar() {
const _this = this;
uni.scanCode({
scanType: ['qrCode', 'barCode'],
success: function(res) {
_this.formData.cutterBladeCode = res.result;
}
});
},
//根据设备编码获取设备id
getEquipmentId() {
if (this.formData.equipmentCode) {
listEquipment({
equipmentCode: this.formData.equipmentCode
}).then((resp) => {
if (resp.rows.length > 0) {
this.formData.equipmentId = resp.rows[0].id;
}
});
}
},
scanBarequipmentCode() {
const _this = this;
uni.scanCode({
scanType: ['qrCode', 'barCode'],
success: function(res) {
_this.formData.equipmentCode = res.result;
}
});
},
selectoperator(code) {
listEmployee({
empCode: code
}).then(async res => {
if (res.rows.length > 0) {
this.formData.operator = res.rows[0].name;
} else {
this.$modal.msg("未查询到该人员,请重新输入!")
}
})
},
selectremoveBy(code) {
listEmployee({
empCode: code
}).then(async res => {
if (res.rows.length > 0) {
this.formData.removeBy = res.rows[0].name;
} else {
this.$modal.msg("未查询到该人员,请重新输入!")
}
})
},
scanBarremoveBy() {
const _this = this;
uni.scanCode({
scanType: ['qrCode', 'barCode'],
success: function(res) {
_this.formData.removeCode = res.result;
_this.selectremoveBy(res.result);
}
});
},
scanBaroperator() {
const _this = this;
uni.scanCode({
scanType: ['qrCode', 'barCode'],
success: function(res) {
_this.formData.operatorCode = res.result;
_this.selectoperator(res.result);
}
});
},
submit() {
this.$refs.form.validate().then(async res => {
if (this.formData.equipmentCode && this.formData.cutterBladeCode) {
//判断安装员是否填入
setTimeout(() => {
if (this.formData.removeBy) {
this.$modal.loading('提交中')
removeBlade(this.formData).then(res => {
this.$modal.closeLoading();
this.$modal.msgSuccess("刀刃下机成功!")
setTimeout(() => {
this.$tab.switchTab("/pages/work/index");
}, 500);
})
} else {
this.$modal.msg("请输入拆卸员!")
}
}, 500);
}
})
}
}
}
</script>
<style>
</style>

View File

@@ -0,0 +1,234 @@
<template>
<view>
<uni-forms ref="form" :model="formData" :rules="rules">
<uni-row>
<uni-forms-item label="刀刃编码" :labelWidth='90' name="cutterBladeCode">
<uni-easyinput suffixIcon="scan" @iconClick="scanBar" v-model="formData.cutterBladeCode"
type="text" />
</uni-forms-item>
<uni-forms-item label="设备编码" :labelWidth='90' name="equipmentCode">
<uni-easyinput suffixIcon="scan" @iconClick="scanBarequipmentCode" v-model="formData.equipmentCode"
type="text" />
</uni-forms-item>
<uni-forms-item label="安装员" :labelWidth='90' name="installCode">
<uni-easyinput suffixIcon="scan" @iconClick="scanBarinstallBy" @change="selectinstallBy"
v-model="installCode" type="text" />
</uni-forms-item>
<uni-forms-item label="操作员" :labelWidth='90' name="operatorCode">
<uni-easyinput suffixIcon="scan" @iconClick="scanBaroperator" @change="selectoperator"
v-model="operatorCode" type="text" />
</uni-forms-item>
</uni-row>
</uni-forms>
<u-button type="primary" @click="submit">提交</u-button>
</view>
</template>
<script>
import {
listUseRecord,
getUseRecord,
delUseRecord,
addStartUse,
updateEndUse,
listEntity,
listMaterial,
listEquipment,
getEntity,
installBlade
} from "@/api/basic/cutter.js";
import {
listEmployee
} from "@/api/mes/jobIn.js";
export default {
data() {
return {
code: null,
formData: {
cutterBladeCode: null,
equipmentCode: null,
installBy: null,
operator: null
},
installCode: null,
operatorCode: null,
value: 0,
range: [],
entityOptions: [],
materialOptions: [],
rules: {
equipmentCode: {
rules: [{
required: true,
errorMessage: '请输入设备编码!',
trigger: 'blur'
},
{
pattern: '^[A-Z0-9]+$',
errorMessage: '请输入正确格式的设备编码!',
trigger: 'blur',
},
]
},
cutterBladeCode: {
rules: [{
required: true,
errorMessage: '请输入刀刃编码!'
}]
},
}
}
},
mounted() {},
methods: {
//扫描物料编码带出绑定的刀具信息
scanBarCode() {
if (this.formData.materialCode) {
console.log(this.formData.materialCode)
this.range = [];
//判断是否扫描二维码
if (typeof(this.formData.materialCode) === 'string') {
// this.formData.materialCode = this.code;
this.formData.materialName = this.materialOptions.find(item => item.materialCode == this.formData
.materialCode).materialName;
if (this.formData.materialCode != "") {
listEntity({
cutterMaterialCode: this.formData.materialCode,
cutterMaterialName: this.formData.materialName,
}).then((resp) => {
this.range = resp.rows;
for (var i = 0; i < resp.rows.length; i++) {
this.range[i].value = resp.rows[i].id;
this.range[i].text = resp.rows[i].entityCode + ':' + (!resp.rows[i].pieceNo ?
'' : resp.rows[i].pieceNo) + ':' + (!resp.rows[i].batchNo ? '' : resp
.rows[i].batchNo)
}
this.entityOptions = resp.rows;
});
} else {
this.entityOptions = [];
}
} else if (typeof(this.formData.materialCode) === 'object') {
if (this.formData.materialCode.id) {
this.formData.cutterEntityId = this.formData.materialCode.id;
getEntity(this.formData.materialCode.id).then(async res => {
this.range.push(res.data);
this.entityOptions = this.range;
this.formData.cutterEntityCode = this.range[0].entityCode;
this.range[0].value = this.range[0].id;
this.range[0].text = this.range[0].entityCode + ':' + (!this.range[0].pieceNo ?
'' : this.range[0].pieceNo) + ':' + (!this.range[0].batchNo ? '' : this
.range[0].batchNo)
})
}
this.formData.materialName = this.formData.materialCode.cutterMaterialName;
this.formData.materialCode = this.formData.materialCode.cutterMaterialCode;
}
}
},
scanBar() {
const _this = this;
uni.scanCode({
scanType: ['qrCode', 'barCode'],
success: function(res) {
_this.formData.cutterBladeCode = res.result;
}
});
},
//根据设备编码获取设备id
getEquipmentId() {
if (this.formData.equipmentCode) {
listEquipment({
equipmentCode: this.formData.equipmentCode
}).then((resp) => {
if (resp.rows.length > 0) {
this.formData.equipmentId = resp.rows[0].id;
}
});
}
},
scanBarequipmentCode() {
const _this = this;
uni.scanCode({
scanType: ['qrCode', 'barCode'],
success: function(res) {
_this.formData.equipmentCode = res.result;
}
});
},
selectoperator(code) {
listEmployee({
empCode: code
}).then(async res => {
if (res.rows.length > 0) {
this.formData.operator = res.rows[0].name;
} else {
this.$modal.msg("未查询到该人员,请重新输入!")
}
})
},
selectinstallBy(code) {
listEmployee({
empCode: code
}).then(async res => {
if (res.rows.length > 0) {
this.formData.installBy = res.rows[0].name;
} else {
this.$modal.msg("未查询到该人员,请重新输入!")
}
})
},
scanBarinstallBy() {
const _this = this;
uni.scanCode({
scanType: ['qrCode', 'barCode'],
success: function(res) {
_this.formData.installCode = res.result;
_this.selectinstallBy(res.result);
}
});
},
scanBaroperator() {
const _this = this;
uni.scanCode({
scanType: ['qrCode', 'barCode'],
success: function(res) {
_this.formData.operatorCode = res.result;
_this.selectoperator(res.result);
}
});
},
submit() {
this.$refs.form.validate().then(async res => {
if (this.formData.equipmentCode && this.formData.cutterBladeCode) {
console.log(this.formData);
//判断安装员是否填入
setTimeout(() => {
if (this.formData.installBy) {
this.$modal.loading('提交中')
installBlade(this.formData).then(res => {
this.$modal.closeLoading();
this.$modal.msgSuccess("刀刃上机成功!")
setTimeout(() => {
this.$tab.switchTab("/pages/work/index");
}, 500);
})
} else {
this.$modal.msg("请输入安装员!")
}
}, 500);
}
})
}
}
}
</script>
<style>
</style>

234
pages/basic/cutterEnd.vue Normal file
View File

@@ -0,0 +1,234 @@
<template>
<view>
<uni-forms ref="form" :modelValue="formData" :rules="rules">
<uni-row>
<uni-forms-item label="刀柄编码" :labelWidth='90' name="cutterShankCode">
<uni-easyinput suffixIcon="scan" @iconClick="scanBar" v-model="formData.cutterShankCode"
type="text" />
</uni-forms-item>
<uni-forms-item label="设备编码" :labelWidth='90' name="equipmentCode">
<uni-easyinput suffixIcon="scan" @iconClick="scanBarequipmentCode" v-model="formData.equipmentCode"
type="text" />
</uni-forms-item>
<uni-forms-item label="拆卸员" :labelWidth='90' name="removeCode">
<uni-easyinput suffixIcon="scan" @iconClick="scanBarremoveBy" @change="selectremoveBy"
v-model="removeCode" type="text" />
</uni-forms-item>
<uni-forms-item label="操作员" :labelWidth='90' name="operatorCode">
<uni-easyinput suffixIcon="scan" @iconClick="scanBaroperator" @change="selectoperator"
v-model="operatorCode" type="text" />
</uni-forms-item>
</uni-row>
</uni-forms>
<u-button type="primary" @click="submit">提交</u-button>
</view>
</template>
<script>
import {
listUseRecord,
getUseRecord,
delUseRecord,
addStartUse,
updateEndUse,
listEntity,
listMaterial,
listEquipment,
getEntity,
removeShank
} from "@/api/basic/cutter.js";
import {
listEmployee
} from "@/api/mes/jobIn.js";
export default {
data() {
return {
code: null,
formData: {
cutterShankCode: null,
equipmentCode: null,
removeBy: null,
operator: null
},
removeCode: null,
operatorCode: null,
value: 0,
range: [],
entityOptions: [],
materialOptions: [],
rules: {
equipmentCode: {
rules: [{
required: true,
errorMessage: '请输入设备编码!'
},
{
pattern: '^[A-Z0-9]+$',
errorMessage: '请输入正确格式的设备编码!',
trigger: 'blur',
},
]
},
cutterShankCode: {
rules: [{
required: true,
errorMessage: '请输入刀柄编码!'
}]
},
}
}
},
mounted() {},
methods: {
//扫描物料编码带出绑定的刀具信息
scanBarCode() {
if (this.formData.materialCode) {
console.log(this.formData.materialCode)
this.range = [];
//判断是否扫描二维码
if (typeof(this.formData.materialCode) === 'string') {
// this.formData.materialCode = this.code;
this.formData.materialName = this.materialOptions.find(item => item.materialCode == this.formData
.materialCode).materialName;
if (this.formData.materialCode != "") {
listEntity({
cutterMaterialCode: this.formData.materialCode,
cutterMaterialName: this.formData.materialName,
}).then((resp) => {
this.range = resp.rows;
for (var i = 0; i < resp.rows.length; i++) {
this.range[i].value = resp.rows[i].id;
this.range[i].text = resp.rows[i].entityCode + ':' + (!resp.rows[i].pieceNo ?
'' : resp.rows[i].pieceNo) + ':' + (!resp.rows[i].batchNo ? '' : resp
.rows[i].batchNo)
}
this.entityOptions = resp.rows;
});
} else {
this.entityOptions = [];
}
} else if (typeof(this.formData.materialCode) === 'object') {
if (this.formData.materialCode.id) {
this.formData.cutterEntityId = this.formData.materialCode.id;
getEntity(this.formData.materialCode.id).then(async res => {
this.range.push(res.data);
this.entityOptions = this.range;
this.formData.cutterEntityCode = this.range[0].entityCode;
this.range[0].value = this.range[0].id;
this.range[0].text = this.range[0].entityCode + ':' + (!this.range[0].pieceNo ?
'' : this.range[0].pieceNo) + ':' + (!this.range[0].batchNo ? '' : this
.range[0].batchNo)
})
}
this.formData.materialName = this.formData.materialCode.cutterMaterialName;
this.formData.materialCode = this.formData.materialCode.cutterMaterialCode;
}
}
},
scanBar() {
const _this = this;
uni.scanCode({
scanType: ['qrCode', 'barCode'],
success: function(res) {
_this.formData.cutterShankCode = res.result;
}
});
},
//根据设备编码获取设备id
getEquipmentId() {
if (this.formData.equipmentCode) {
listEquipment({
equipmentCode: this.formData.equipmentCode
}).then((resp) => {
if (resp.rows.length > 0) {
this.formData.equipmentId = resp.rows[0].id;
}
});
}
},
scanBarequipmentCode() {
const _this = this;
uni.scanCode({
scanType: ['qrCode', 'barCode'],
success: function(res) {
_this.formData.equipmentCode = res.result;
// _this.getEquipmentId();
}
});
},
selectoperator(code) {
listEmployee({
empCode: code
}).then(async res => {
if (res.rows.length > 0) {
this.formData.operator = res.rows[0].name;
} else {
this.$modal.msg("未查询到该人员,请重新输入!")
}
})
},
selectremoveBy(code) {
listEmployee({
empCode: code
}).then(async res => {
if (res.rows.length > 0) {
this.formData.removeBy = res.rows[0].name;
} else {
this.$modal.msg("未查询到该人员,请重新输入!")
}
})
},
scanBarremoveBy() {
const _this = this;
uni.scanCode({
scanType: ['qrCode', 'barCode'],
success: function(res) {
_this.formData.removeCode = res.result;
_this.selectremoveBy(res.result);
}
});
},
scanBaroperator() {
const _this = this;
uni.scanCode({
scanType: ['qrCode', 'barCode'],
success: function(res) {
_this.formData.operatorCode = res.result;
_this.selectoperator(res.result);
}
});
},
submit() {
this.$refs.form.validate().then(async res => {
if (this.formData.equipmentCode && this.formData.cutterShankCode) {
console.log(this.formData);
//判断安装员是否填入
setTimeout(() => {
if (this.formData.removeBy) {
this.$modal.loading('提交中')
removeShank(this.formData).then(res => {
this.$modal.closeLoading();
this.$modal.msgSuccess("刀柄下机成功!")
setTimeout(() => {
this.$tab.switchTab("/pages/work/index");
}, 500);
})
} else {
this.$modal.msg("请输入拆卸员!")
}
}, 500);
}
})
}
}
}
</script>
<style>
</style>

235
pages/basic/cutterStart.vue Normal file
View File

@@ -0,0 +1,235 @@
<template>
<view>
<uni-forms ref="form" :model="formData" :rules="rules">
<uni-row>
<uni-forms-item label="刀柄编码" :labelWidth='90' name="cutterShankCode">
<uni-easyinput suffixIcon="scan" @iconClick="scanBar" v-model="formData.cutterShankCode"
type="text" />
</uni-forms-item>
<uni-forms-item label="设备编码" :labelWidth='90' name="equipmentCode">
<uni-easyinput suffixIcon="scan" @iconClick="scanBarequipmentCode" v-model="formData.equipmentCode"
type="text" />
</uni-forms-item>
<uni-forms-item label="安装员" :labelWidth='90' name="installCode">
<uni-easyinput suffixIcon="scan" @iconClick="scanBarinstallBy" @change="selectinstallBy"
v-model="installCode" type="text" />
</uni-forms-item>
<uni-forms-item label="操作员" :labelWidth='90' name="operatorCode">
<uni-easyinput suffixIcon="scan" @iconClick="scanBaroperator" @change="selectoperator"
v-model="operatorCode" type="text" />
</uni-forms-item>
</uni-row>
</uni-forms>
<u-button type="primary" @click="submit">提交</u-button>
</view>
</template>
<script>
import {
listUseRecord,
getUseRecord,
delUseRecord,
addStartUse,
updateEndUse,
listEntity,
listMaterial,
listEquipment,
getEntity,
installShank
} from "@/api/basic/cutter.js";
import {
listEmployee
} from "@/api/mes/jobIn.js";
export default {
data() {
return {
code: null,
formData: {
cutterShankCode: null,
equipmentCode: null,
installBy: null,
operator: null
},
installCode: null,
operatorCode: null,
value: 0,
range: [],
entityOptions: [],
materialOptions: [],
rules: {
equipmentCode: {
rules: [{
required: true,
errorMessage: '请输入设备编码!',
trigger: 'blur'
},
{
pattern: '^[A-Z0-9]+$',
errorMessage: '请输入正确格式的设备编码!',
trigger: 'blur',
},
]
},
cutterShankCode: {
rules: [{
required: true,
errorMessage: '请输入刀柄编码!'
}]
},
}
}
},
mounted() {},
methods: {
//扫描物料编码带出绑定的刀具信息
scanBarCode() {
if (this.formData.materialCode) {
console.log(this.formData.materialCode)
this.range = [];
//判断是否扫描二维码
if (typeof(this.formData.materialCode) === 'string') {
// this.formData.materialCode = this.code;
this.formData.materialName = this.materialOptions.find(item => item.materialCode == this.formData
.materialCode).materialName;
if (this.formData.materialCode != "") {
listEntity({
cutterMaterialCode: this.formData.materialCode,
cutterMaterialName: this.formData.materialName,
}).then((resp) => {
this.range = resp.rows;
for (var i = 0; i < resp.rows.length; i++) {
this.range[i].value = resp.rows[i].id;
this.range[i].text = resp.rows[i].entityCode + ':' + (!resp.rows[i].pieceNo ?
'' : resp.rows[i].pieceNo) + ':' + (!resp.rows[i].batchNo ? '' : resp
.rows[i].batchNo)
}
this.entityOptions = resp.rows;
});
} else {
this.entityOptions = [];
}
} else if (typeof(this.formData.materialCode) === 'object') {
if (this.formData.materialCode.id) {
this.formData.cutterEntityId = this.formData.materialCode.id;
getEntity(this.formData.materialCode.id).then(async res => {
this.range.push(res.data);
this.entityOptions = this.range;
this.formData.cutterEntityCode = this.range[0].entityCode;
this.range[0].value = this.range[0].id;
this.range[0].text = this.range[0].entityCode + ':' + (!this.range[0].pieceNo ?
'' : this.range[0].pieceNo) + ':' + (!this.range[0].batchNo ? '' : this
.range[0].batchNo)
})
}
this.formData.materialName = this.formData.materialCode.cutterMaterialName;
this.formData.materialCode = this.formData.materialCode.cutterMaterialCode;
}
}
},
scanBar() {
const _this = this;
uni.scanCode({
scanType: ['qrCode', 'barCode'],
success: function(res) {
_this.formData.cutterShankCode = res.result;
}
});
},
//根据设备编码获取设备id
getEquipmentId() {
if (this.formData.equipmentCode) {
listEquipment({
equipmentCode: this.formData.equipmentCode
}).then((resp) => {
if (resp.rows.length > 0) {
this.formData.equipmentId = resp.rows[0].id;
}
});
}
},
scanBarequipmentCode() {
const _this = this;
uni.scanCode({
scanType: ['qrCode', 'barCode'],
success: function(res) {
_this.formData.equipmentCode = res.result;
// _this.getEquipmentId();
}
});
},
selectoperator(code) {
listEmployee({
empCode: code
}).then(async res => {
if (res.rows.length > 0) {
this.formData.operator = res.rows[0].name;
} else {
this.$modal.msg("未查询到该人员,请重新输入!")
}
})
},
selectinstallBy(code) {
listEmployee({
empCode: code
}).then(async res => {
if (res.rows.length > 0) {
this.formData.installBy = res.rows[0].name;
} else {
this.$modal.msg("未查询到该人员,请重新输入!")
}
})
},
scanBarinstallBy() {
const _this = this;
uni.scanCode({
scanType: ['qrCode', 'barCode'],
success: function(res) {
_this.formData.installCode = res.result;
_this.selectinstallBy(res.result);
}
});
},
scanBaroperator() {
const _this = this;
uni.scanCode({
scanType: ['qrCode', 'barCode'],
success: function(res) {
_this.formData.operatorCode = res.result;
_this.selectoperator(res.result);
}
});
},
submit() {
this.$refs.form.validate().then(async res => {
if (this.formData.equipmentCode && this.formData.cutterShankCode) {
console.log(this.formData);
//判断安装员是否填入
setTimeout(() => {
if (this.formData.installBy) {
this.$modal.loading('提交中')
installShank(this.formData).then(res => {
this.$modal.closeLoading();
this.$modal.msgSuccess("刀柄上机成功!")
setTimeout(() => {
this.$tab.switchTab("/pages/work/index");
}, 500);
})
} else {
this.$modal.msg("请输入安装员!")
}
}, 500);
}
})
}
}
}
</script>
<style>
</style>

Some files were not shown because too many files have changed in this diff Show More