Commit 9f51e4ff authored by shifangwuji's avatar shifangwuji

9/18

parent eda791e3
......@@ -33,7 +33,8 @@
"path-to-regexp": "2.4.0",
"qs": "^6.9.4",
"v-viewer": "^1.5.1",
"vue": "2.6.10",
"vee-validate": "^4.11.6",
"vue": "^2.7.14",
"vue-cropper": "^0.5.4",
"vue-pdf": "^4.1.0",
"vue-router": "3.0.6",
......@@ -66,7 +67,7 @@
"stylus-loader": "^3.0.2",
"svg-sprite-loader": "4.1.3",
"svgo": "1.2.2",
"vue-template-compiler": "2.6.10"
"vue-template-compiler": "^2.7.14"
},
"engines": {
"node": ">=8.9",
......
import request from '@/utils/request'
// 根据key值查询数据字典数据
export function getDictData(params) {
return request({
url: '/wbapply/queryDict',
method: 'get',
params
})
}
// 新增设备新增
export function addApplication(data) {
return request({
url: '/wbapply/add',
method: 'post',
data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
// 分页查询要处理的设备
export function getEquipment(params) {
return request({
url: '/wbwarehouse/canceListByPagination',
method: 'get',
params
})
}
......@@ -263,62 +263,62 @@
/>
</el-form-item>
<el-form-item label="gx" prop="gx">
<el-select
v-model="form.gx"
clearable
placeholder="请选择gx"
style="width: 340px"
@change="handleGxChange"
>
<el-option
v-for="(dict, index) in pissbList"
:key="index"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="jbcode" prop="jbcode">
<el-input
ref="input2"
ref="input3"
v-model.trim="form.jbcode"
:maxlength="30"
placeholder="请输入jbcode"
@keyup.enter.native="handelTab(2, $event)"
@keyup.enter.native="handelTab(3, $event)"
/>
</el-form-item>
<el-form-item label="jbrank" prop="jbrank">
<el-input
ref="input3"
ref="input4"
v-model.trim="form.jbrank"
:maxlength="30"
placeholder="请输入jbrank"
@keyup.enter.native="handelTab(3, $event)"
@keyup.enter.native="handelTab(4, $event)"
/>
</el-form-item>
<el-form-item label="wb" prop="wb">
<el-input
ref="input4"
ref="input5"
v-model.trim="form.wb"
:maxlength="30"
placeholder="请输入wb"
@keyup.enter.native="handelTab(4, $event)"
@keyup.enter.native="handelTab(5, $event)"
/>
</el-form-item>
<el-form-item label="jl" prop="jl">
<el-input
ref="input5"
ref="input6"
v-model.trim="form.jl"
:maxlength="30"
placeholder="请输入jl"
@keyup.enter.native="handelTab(5, $event)"
@keyup.enter.native="handelTab(6, $event)"
/>
</el-form-item>
<el-form-item label="gx" prop="gx">
<el-select
v-model="form.gx"
clearable
placeholder="请选择gx"
style="width: 340px"
@change="handleGxChange"
>
<el-option
v-for="(dict, index) in pissbList"
:key="index"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel"> </el-button>
......@@ -350,8 +350,67 @@ export default {
form: {},
rules: {
jxpn: [{ required: true, message: '请输入jxpn', trigger: 'blur' }],
jbcode: [{ required: true, message: '请输入jbcode', trigger: 'blur' }],
jbrank: [{ required: true, message: '请输入jbrank', trigger: 'blur' }]
gx: [{ required: true, message: '请选择gx', trigger: 'blur' }],
jbrank: [
{
validator: (rule, value, callback) => {
if (this.form.jbcode && !value) {
// 如果 jbcode 有数据且 jbrank 为空,则执行验证并返回错误信息
return callback(new Error('请输入jbrank'));
}
callback(); // 否则,验证通过
},
trigger: 'blur',
},
],
wb: [
{
validator: (rule, value, callback) => {
// 三选一必填验证逻辑
const wb = this.form.wb || '';
const jbcode = this.form.jbcode || '';
const jl = this.form.jl || '';
if (!(wb || jbcode || jl)) {
return callback(new Error('请至少填写一个选项:wb、jbcode、jl 中的一个'));
}
callback();
},
trigger: 'blur',
},
],
jl: [
{
validator: (rule, value, callback) => {
// 三选一必填验证逻辑
const wb = this.form.wb || '';
const jbcode = this.form.jbcode || '';
const jl = this.form.jl || '';
if (!(wb || jbcode || jl)) {
return callback(new Error('请至少填写一个选项:wb、jbcode、jl 中的一个'));
}
callback();
},
trigger: 'blur',
},
],
jbcode: [
{
validator: (rule, value, callback) => {
// 三选一必填验证逻辑
const wb = this.form.wb || '';
const jbcode = this.form.jbcode || '';
const jl = this.form.jl || '';
if (!(wb || jbcode || jl)) {
return callback(new Error('请至少填写一个选项:wb、jbcode、jl 中的一个'));
}
callback();
},
trigger: 'blur',
},
]
},
pissbList: [],
total: 0,
......@@ -419,8 +478,17 @@ export default {
submitForm() {
this.$refs.form.validate(valid => {
if (valid) {
// 校验通过,提交表单或进行其他操作
// 校验通过
if (this.form.businessId !== undefined) {
if (this.jscode) {
// 如果 jscode 有值
if (!this.jbrank) {
// 如果 jbrank 为空
this.$message.error('如果填写 jscode,则必须填写 jbrank');
return;
}
}
updataInfo(this.form).then(res => {
if (res.code === 200) {
this.open = false
......@@ -450,6 +518,7 @@ export default {
}
})
},
cancel() {
this.open = false
this.reFrom()
......
<template>
<div class="app-container">
<el-form ref="form" :model="form" :rules="rule" label-width="80px">
<el-row :gutter="40">
<el-col :span="12" style="padding-left: 10%;">
<el-form-item label="pn:" style="flex-basis: 50%;" prop="pn">
<el-input ref="input1" v-model="form.pn" placeholder="请输入pn" :minlength="3" style="width: 400px" :maxlength="100" @keyup.enter.native="handelTab(1,$event)" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="40">
<el-col :span="12" style="padding-left: 10%;">
<el-form-item label="lot:" style="flex-basis: 50%;" prop="lot">
<el-input ref="input2" v-model="form.lot" placeholder="请输入lot" style="width: 400px" :maxlength="100" @keyup.enter.native="handelTab(2,$event)" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="40">
<el-col :span="12" style="padding-left: 10%;">
<el-form-item label="gx:" style="flex-basis: 50%;" prop="gx">
<el-select
v-model="form.gx"
clearable
placeholder="请选择gx"
style="width: 400px"
@change="handlePgxChange"
>
<el-option
v-for="(dict,index) in pissbList"
:key="index"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="machine:" style="flex-basis: 50%;" prop="machine">
<el-input ref="input4" v-model="form.machine" placeholder="请输入machine" style="width: 400px" :maxlength="10" @keyup.enter.native="handelTab(3,$event)" />
</el-form-item>
</el-col>
</el-row>
<hr>
<el-row :gutter="40">
<el-col :span="12" style="padding-left: 10%;">
<el-form-item label="jbcode:" style="flex-basis: 50%;" prop="jbcode">
<el-input ref="input5" v-model="form.jbcode" placeholder="请输入jbcode" :minlength="3" style="width: 800px" :maxlength="100" @keyup.enter.native="handleTab(4, $event)" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="40">
<el-col :span="8" style="padding-left: 10%;">
<el-form :model="form" ref="form" :rules="rules" label-width="80px">
<el-form-item label="jbtype:" prop="jbtype">
<el-input v-model="form.jbtype" placeholder="jbtype" :disabled="true" style="width: 200px" />
</el-form-item>
</el-form>
</el-col>
<el-col :span="8">
<el-form :model="form" ref="form" :rules="rules" label-width="80px">
<el-form-item label="jbrank:" prop="jbrank">
<el-input v-model="form.jbrank" placeholder="jbrank" :disabled="true" style="width: 200px" />
</el-form-item>
</el-form>
</el-col>
<el-col :span="8">
<el-form :model="form" ref="form" :rules="rules" label-width="80px">
<el-form-item label="jbLot:" prop="jbLot">
<el-input v-model="form.jbLot" placeholder="jbLot" :disabled="true" style="width: 200px" />
</el-form-item>
</el-form>
</el-col>
</el-row>
</el-form>
<el-form label-width="80px">
<el-row style="padding-left: 8.7%; padding-top: 1%">
<el-col :span="12">
<el-form-item style="flex-basis: 50%;">
<el-button type="primary" @click="submitForm">保存</el-button>
<el-button @click="resetQuery">清空</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</template>
<script>
import { getDictData, addApplication } from '@/api/production/gfual'
export default {
name: 'Role',
data() {
return {
isRequired: false,
// 对应后端配置文件cy.init.pgxList的的内容
phdList: ['003'],
// 判断是否存在缓存
exist: false,
form: {
pn: '',
lot: '',
gx: '',
machine: '',
jbcode: '',
jbtype: '',
jbrank: '',
jbLot: ''
},
rule: {
pn: [{ required: true, message: '请输入pn', trigger: 'blur' }],
lot: [{ required: true, message: '请输入lot', trigger: 'blur' }],
gx: [{ required: true, message: '请选择gx', trigger: 'blur' }],
machine: [{ required: true, message: '请输入machine', trigger: 'blur' }]
},
pissbList: [],
pgxList: [
{
label: '否',
value: '0'
},
{
label: '是',
value: '1'
}
]
}
},
mounted() {
this.$nextTick(() => {
this.$refs.input1.$refs.input.focus()
})
},
// 路由跳转,是存储页面的值
beforeRouteLeave(to, from, next) {
console.log('form')
sessionStorage.setItem('applicationForm', JSON.stringify(this.form))
next()
},
created() {
sessionStorage.getItem('applicationForm') ? this.exist = true : this.exist = false
if (this.exist) {
this.form = JSON.parse(sessionStorage.getItem('applicationForm'))
}
this.init()
},
methods: {
handlePgxChange() {
if (this.phdList.includes(this.form.pgx)){
this.isRequired = true
} else {
this.isRequired = false
}
},
resetQuery() {
this.form = {
pn: '',
lot: '',
gx: '',
machine: ''
}
sessionStorage.setItem('applicationForm', JSON.stringify(this.form))
},
handelTab(i, e) {
const that = this
if (!that.$refs['input' + i]) {
return
}
that.$nextTick(() => {
e.target.blur()
const index = i + 1
that.$refs['input' + index].focus()
})
},
// 重置
resetFrom() {
this.form = {
pn: '',
lot: '',
gx: '',
machine: ''
}
this.$refs.form.clearValidate()
},
// 初始化要调的接口
init() {
this.getDict()
},
// 提价时要调的接口
submitForm() {
this.$confirm('是否确认保存?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$refs.form.validate((valid) => {
if (valid) {
addApplication(this.form).then(res => {
console.log('res', res)
if (res.code === 200) {
if (res.data !== null) {
if (res.data.ptype === '1') {
this.$message({
showClose: true,
message: '保存成功',
type: 'success',
duration: 5000
})
} else if (res.data.ptype === '2') {
this.$message({
showClose: true,
message: '保存成功',
type: 'success',
duration: 5000
})
}
}
this.resetFrom()
} else if (res.code === null) {
this.$message({
showClose: true,
message: res.message,
type: 'error',
duration: 10000
})
}
})
}
})
})
},
// 调数据字典查询
getDict() {
const obj = {
key: 'GX_CODE'
}
getDictData(obj).then(res => {
console.log('res', res)
if (res.code === 200 && res.data !== null) {
this.pissbList = res.data
}
})
}
}
}
</script>
<style lang="scss" scoped>
.app-container {
font-size: 18px;
padding: 0;
.info{
height: 100px;
display: flex;
align-items: center;
justify-content: center;
.title{
font-size: 16px;
color: #333;
font-weight: 700;
}
}
.button{
margin-top: 7%;
margin-left: 20%;
}
}
</style>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment