167 lines
4.5 KiB
Vue
167 lines
4.5 KiB
Vue
<template>
|
||
<view>
|
||
<uni-forms ref="form" :modelValue="form" label-width="25%" label-align="right" :rules="rules">
|
||
<uni-forms-item label="工单编号:" name="pwoCode" >
|
||
<uni-easyinput v-model="form.pwoCode" placeholder="请输入不小于5位的工单编号" />
|
||
</uni-forms-item>
|
||
<uni-forms-item label='批号:' name='batchNo'>
|
||
<uni-easyinput v-model="form.batchNo" placeholder="请输入不小于5位的批号" />
|
||
</uni-forms-item>
|
||
<uni-forms-item label="物料编码:" >
|
||
<uni-easyinput v-model="form.ptNoTar" placeholder="请输入物料编码" />
|
||
</uni-forms-item>
|
||
<uni-forms-item label="物料名称:" >
|
||
<uni-easyinput v-model="form.ptTitleTar" placeholder="请输入物料名称" />
|
||
</uni-forms-item>
|
||
<uni-forms-item label="物料规格:" >
|
||
<uni-easyinput v-model="form.specification1" placeholder="请输入物料规格" />
|
||
</uni-forms-item>
|
||
</uni-forms>
|
||
<button type="primary" @click="clickSubmit(form)" :disabled="formComputed">查询</button>
|
||
<uni-popup ref="popup" type="center" background-color="#fff" :is-mask-click="false">
|
||
<!-- 加载动画 -->
|
||
<loding-vue/>
|
||
</uni-popup>
|
||
<uni-popup ref="message" type="message">
|
||
<uni-popup-message :type="message.type" :message="message.messageText" :duration="message.duration"></uni-popup-message>
|
||
</uni-popup>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import {
|
||
listPwoLike
|
||
} from "@/api/mes/pwoIn.js";
|
||
import {listDepartment} from"@/api/basic/department.js"
|
||
import {
|
||
hasValue
|
||
} from "@/utils/judge"
|
||
import {listWarehouse} from "@/api/wms/pdcIn.js"
|
||
//引入加载动画
|
||
import lodingVue from "@/utils/loding/loding.vue";
|
||
export default {
|
||
components:{
|
||
lodingVue
|
||
},
|
||
data() {
|
||
return {
|
||
/**表单数据 */
|
||
form:{
|
||
/** 工单编号 */
|
||
pwoCode : null,
|
||
/** 批号 */
|
||
batchNo : null,
|
||
/** 物料编码 */
|
||
ptNoTar : null,
|
||
/** 物料名称 */
|
||
ptTitleTar : null,
|
||
/** 物料规格 */
|
||
specification1 : null
|
||
},
|
||
/** 校验规则 */
|
||
rules:{
|
||
pwoCode:{
|
||
rules:[
|
||
{
|
||
required : true,
|
||
},
|
||
]
|
||
},
|
||
batchNo:{
|
||
rules:[
|
||
{
|
||
required : true,
|
||
},
|
||
]
|
||
},
|
||
},
|
||
/** 提示信息 */
|
||
message:{
|
||
//类型 succes成功,warn警告error失败inf消息
|
||
type:'error',
|
||
//提示信息
|
||
messageText:'没有符合条件的数据',
|
||
//显示时间
|
||
duration:1500
|
||
}
|
||
}
|
||
},
|
||
async mounted(){
|
||
//在页面挂载的时候获取部门数据
|
||
const data = await Promise.all([ listDepartment(), listWarehouse()])
|
||
this.$store.commit('updateDepartment',data[0].rows)
|
||
this.$store.commit('updateWarehouse',data[1].rows)
|
||
},
|
||
/**
|
||
* 计算属性
|
||
*/
|
||
computed:{
|
||
/**
|
||
* 判断form值是否符合要求
|
||
* 如果符合则可以点击按钮,没有不能点击
|
||
*/
|
||
formComputed(){
|
||
const {pwoCode,batchNo} = this.form
|
||
//判断工单编号和批号是否有值
|
||
//如果有值且长度大于5位则必填标志消失,并且提交按钮可以点击
|
||
if((hasValue(pwoCode) && pwoCode.length >= 5) || (hasValue(batchNo) && batchNo.length >= 5)){
|
||
if(hasValue(pwoCode) && pwoCode.length >= 5) this.rules.batchNo.rules[0].required = false
|
||
if(hasValue(batchNo) && batchNo.length >= 5) this.rules.pwoCode.rules[0].required = false
|
||
return false
|
||
}
|
||
this.rules.batchNo.rules[0].required = this.rules.pwoCode.rules[0].required = true
|
||
return true
|
||
}
|
||
},
|
||
methods: {
|
||
/**
|
||
* 提交按钮点击事件
|
||
*/
|
||
async clickSubmit(){
|
||
const _self = this
|
||
try{
|
||
//打开蒙层
|
||
this.$refs.popup.open()
|
||
//查询接口
|
||
const res = await listPwoLike(this.form)
|
||
//关闭蒙层
|
||
//当没有查到数据给一个提示
|
||
if(res.total === 0 || res.rows.length === 0) {
|
||
this.$refs.message.open()
|
||
return
|
||
}
|
||
//通过vuex把获取到的数据保存下来 this.$store.state.pwo
|
||
this.$store.commit('updatData',res.rows)
|
||
uni.navigateTo({
|
||
url:'/pages/mes/jobCv/transfer/table'
|
||
})
|
||
}catch{
|
||
this.message.messageText="请求超时"
|
||
this.$refs.message.open()
|
||
}finally{
|
||
this.$refs.popup.close()
|
||
}
|
||
}
|
||
},
|
||
/**
|
||
* 页面卸载的时候清空数据
|
||
*/
|
||
onUnload(){
|
||
this.$store.commit('updateDepartment',[])
|
||
this.$store.commit('updateWarehouse',[])
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style scoped>
|
||
//设置页面背景颜色
|
||
page {
|
||
background-color: #ffffff;
|
||
padding-top: 1vw;
|
||
}
|
||
view {
|
||
width: 98%;
|
||
margin: 2% auto;
|
||
color: black;
|
||
}
|
||
</style> |