You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

225 lines
5.8 KiB

const app = getApp(),
Api = require("../../../utils/util.js");
const { API_MONIT_URL,API_BASE_URL,UP_MONIT_IMG } = require('../../../api/api')
Page({
data: {
formData: {},
typeObj: [],
typeList: [], //物料类型下拉
specList: [], //物料规格下拉
type: '',
specName: '',
applyNum: ''
},
onLoad(options) {
this.setData({
orderId: options.orderId,
id: options.id,
title: options.title,
userId: wx.getStorageSync('userId'),
userName: wx.getStorageSync('name')
})
wx.setNavigationBarTitle({
title: options.title,
})
if(options.id){
this.getDetail()
}
this.getTypeList()
},
//详情
getDetail(e) {
let that = this
wx.showLoading({
title: '加载中...',
})
Api.req('blade-platformFittingApply/platformFittingApply/detail', {
id: this.data.id
}, 'get').then(res => {
wx.hideLoading()
if(res.code == 200){
let typeId = this.data.typeObj.find(item=>item.dictValue == res.data.fittingVersion).dictKey;
that.getSpecList(typeId)
that.setData({
formData: res.data,
factoryMarks: res.data.factoryMarks,
userName: res.data.empName,
userId: res.data.applicantId,
code: res.data.fittingCode,
name: res.data.fittingName,
type: res.data.fittingVersion,
specName: res.data.fittingPower,
applyNum: res.data.applyNum,
remarks: res.data.applyMarks,
})
}
})
},
//校验物料代码
getMaterialCode(e) {
let that = this
if(e.detail.value){
wx.showLoading({
title: '加载中...',
})
Api.req('blade-platformFittingApply/platformFittingApply/getMaterialDetailByMaterialCode', {
materialCode: e.detail.value
}, 'get').then(res => {
wx.hideLoading()
if(res.msg =='操作成功'){
that.getSpecList(res.data.type)
that.setData({
name: res.data.name,
type: res.data.materialType,
specName: res.data.power,
})
}else{
wx.showToast({
title: '物料代码不存在',
icon: 'none',
})
that.setData({
name: '',
type: '',
specName: '',
})
}
})
}
},
//物料规格
getSpecList(key){
Api.req('blade-platformFittingApply/platformFittingApply/getMaterialSpecList', {
materialType: key //物料类型
// orderId: options.id
}, 'get')
.then(res => {
if(res.code == 200){
this.setData({
specList: res.data,
})
}
})
},
//物料类型
getTypeList(){
Api.req('blade-system/dict/dictionary', {
code: 'wl_type'
}, 'get')
.then(res => {
if(res.code == 200){
this.setData({
typeObj: res.data,
typeList: res.data.map(itm=>itm.dictValue),
typeKeyList: res.data.map(itm=>itm.dictKey),
})
}
})
},
//文本输入
inputText: function(e) {
let name = e.currentTarget.dataset.name
this.setData({
[`${name}`]: e.detail.value,
})
},
//数字输入
inputNum: function(e) {
let name = e.currentTarget.dataset.name
this.setData({
[`${name}`]: e.detail.value,
})
},
//下拉选择
changSelect: function(e) {
let name = e.currentTarget.dataset.name
let list = e.currentTarget.dataset.list
let index = Number(e.detail.value);
this.setData({
[`${name}`]: this.data[list][index],
})
if(name == 'type'){
this.setData({
specName: ''
})
let key = this.data.typeKeyList[index]
this.getSpecList(key)
}
},
//提交
submit: function(e) {
var that = this;
let url = ''
if(this.data.type == ''){
wx.showToast({
title: '物料类型不能为空',
icon: 'none'
})
return
}else if(this.data.specName ==''){
wx.showToast({
title: '物料规格不能为空',
icon: 'none'
})
return
}else if(this.data.applyNum == '' || !/^[1-9]\d*$/.test(this.data.applyNum)){
wx.showToast({
title: '申请数量只能是大于0的整数',
icon: 'none',
duration: 2000
})
return
}
wx.showLoading({
title: '提交中...',
mask: true
})
var data = {
orderId: this.data.orderId, //订单详情进入的要传
empUserId: this.data.userId, //服务工程师
materialCode: this.data.code, //物料代码
materialName: this.data.name,//物料名称
fittingVersion: this.data.type,// 物料类型
materialSpec: this.data.specName, //物料规格
applyNum: this.data.applyNum, //备件申请数量
applyMarks: this.data.remarks, //申请备注
}
if(this.data.id){
data.id = this.data.id
url = 'blade-platformFittingApply/platformFittingApply/update'
}else{
url = 'blade-platformFittingApply/platformFittingApply/save'
}
// console.log("执行",data);
// return
Api.req(url, data, 'post', '','1')
.then(res => {
wx.hideLoading()
if (res.code == '200') {
wx.showToast({
title: '操作成功',
})
var page = getCurrentPages();
let prevPage = page[page.length - 2];
setTimeout(function() {
prevPage.getList();
wx.navigateBack({})
}, 1000)
} else {
wx.showToast({
title: res.msg,
icon: 'none',
mask: true
})
}
})
},
//取消
cancel(){
wx.navigateBack()
},
})