|
|
@@ -1,91 +1,85 @@
|
|
|
<!-- 委外 -->
|
|
|
<template>
|
|
|
- <div>
|
|
|
- <div class="my-title">委外</div>
|
|
|
- <!-- 表单 -->
|
|
|
- <el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="auto">
|
|
|
- <div class="form-item" v-for="(item, index) in dataForm.list" :key="item.purchaseDetailId">
|
|
|
- <el-row>
|
|
|
- <el-col :span="6">
|
|
|
- <el-form-item label="物料名称">
|
|
|
- <span>{{item.productName}}</span>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="6">
|
|
|
- <el-form-item label="物料规格">
|
|
|
- <span>{{item.productSpec}}</span>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="6">
|
|
|
- <el-form-item label="数量">
|
|
|
- <span>{{item.cnt}}</span>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="6">
|
|
|
- <el-form-item label="图号">
|
|
|
- <span>{{item.batchNumber}}</span>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row class="my-row">
|
|
|
- <el-col :span="6">
|
|
|
- <el-form-item label="类别" :prop="'list.' + index + '.commissionType'" :rules="dataRule.commissionType">
|
|
|
- <el-select
|
|
|
- v-model="dataForm.commissionType"
|
|
|
- remote
|
|
|
- placeholder="请选择">
|
|
|
- <el-option
|
|
|
- v-for="item in optionsType"
|
|
|
- :key="item.code"
|
|
|
- :label="item.value"
|
|
|
- :value="item.code">
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="6">
|
|
|
- <el-form-item label="要求说明" :prop="'list.' + index + '.specificationExplian'" :rules="dataRule.specificationExplian">
|
|
|
- <el-input v-model="item.specificationExplian" placeholder="要求说明"></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="6">
|
|
|
- <el-form-item label="委外数量" :prop="'list.' + index + '.cnt'" :rules="dataRule.cnt">
|
|
|
- <el-input-number v-model="item.cnt" :step="1" :min="0"></el-input-number>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="6">
|
|
|
- <el-form-item label="单位" :prop="'list.' + index + '.unitName'" :rules="dataRule.unitName">
|
|
|
- <el-input v-model="item.unitName" placeholder="单位单位"></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row class="my-row">
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="备注" prop="notes">
|
|
|
- <el-input type="textarea" v-model="item.notes"></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </div>
|
|
|
- </el-form>
|
|
|
- <span slot="footer" class="dialog-footer">
|
|
|
- <el-button @click="onChose">取消</el-button>
|
|
|
- <el-button type="primary" @click="dataFormSubmit()" v-reClick>确定</el-button>
|
|
|
- </span>
|
|
|
- </div>
|
|
|
+ <div>
|
|
|
+ <div class="my-title">委外</div>
|
|
|
+ <!-- 表单 -->
|
|
|
+ <el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="auto">
|
|
|
+ <div class="form-item" v-for="(item, index) in dataForm.list" :key="item.purchaseDetailId">
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="物料名称">
|
|
|
+ <span>{{ item.productName }}</span>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="物料规格">
|
|
|
+ <span>{{ item.productSpec }}</span>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="数量">
|
|
|
+ <span>{{ item.cnt }}</span>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="图号">
|
|
|
+ <span>{{ item.batchNumber }}</span>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row class="my-row">
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="类别" :prop="'list.' + index + '.commissionType'" :rules="dataRule.commissionType">
|
|
|
+ <el-select v-model="item.commissionType" remote placeholder="请选择">
|
|
|
+ <el-option v-for="opt in optionsType" :key="opt.code" :label="opt.value" :value="opt.code">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="要求说明" :prop="'list.' + index + '.specificationExplian'"
|
|
|
+ :rules="dataRule.specificationExplian">
|
|
|
+ <el-input v-model="item.specificationExplian" placeholder="要求说明"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="委外数量" :prop="'list.' + index + '.cnt'" :rules="dataRule.cnt">
|
|
|
+ <el-input-number v-model="item.cnt" :step="1" :min="0"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="单位" :prop="'list.' + index + '.unitName'" :rules="dataRule.unitName">
|
|
|
+ <el-input v-model="item.unitName" placeholder="单位单位"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row class="my-row">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="备注" prop="notes">
|
|
|
+ <el-input type="textarea" v-model="item.notes"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ </el-form>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="onChose">取消</el-button>
|
|
|
+ <el-button type="primary" @click="dataFormSubmit()" v-reClick>确定</el-button>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import {commission} from '@/api/production'
|
|
|
+import { commission } from '@/api/production'
|
|
|
import MaterialComponent from '@/views/modules/common/material-component'
|
|
|
-import {getDictList} from '@/api/dict'
|
|
|
+import { getDictList } from '@/api/dict'
|
|
|
|
|
|
export default {
|
|
|
name: 'scheduling-commission',
|
|
|
components: {
|
|
|
MaterialComponent
|
|
|
},
|
|
|
- data () {
|
|
|
+ data() {
|
|
|
return {
|
|
|
id: 0,
|
|
|
dataForm: {
|
|
|
@@ -100,29 +94,37 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
- created () {
|
|
|
+ created() {
|
|
|
this.getType()
|
|
|
},
|
|
|
methods: {
|
|
|
- onChose () {
|
|
|
+ onChose() {
|
|
|
this.$emit('onChose')
|
|
|
},
|
|
|
- async init (row) {
|
|
|
+ async init(row) {
|
|
|
this.dataForm.id = row.id
|
|
|
if (row instanceof Array) {
|
|
|
this.dataForm.list = row
|
|
|
} else {
|
|
|
this.dataForm.list = [row]
|
|
|
}
|
|
|
+ // 确保每个条目包含 commissionType 字段,保持与表单校验路径一致且可响应
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.dataForm.list.forEach(it => {
|
|
|
+ if (!Object.prototype.hasOwnProperty.call(it, 'commissionType')) {
|
|
|
+ this.$set(it, 'commissionType', '')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
},
|
|
|
- validateField (type) {
|
|
|
+ validateField(type) {
|
|
|
this.$refs.dataForm.validateField(type)
|
|
|
},
|
|
|
- // 表单提交
|
|
|
- dataFormSubmit () {
|
|
|
+ // 表单提交
|
|
|
+ dataFormSubmit() {
|
|
|
this.$refs['dataForm'].validate((valid) => {
|
|
|
if (valid) {
|
|
|
- commission(this.dataForm).then(({data}) => {
|
|
|
+ commission(this.dataForm).then(({ data }) => {
|
|
|
if (data && data.code === '200') {
|
|
|
this.$message({
|
|
|
message: '操作成功',
|
|
|
@@ -141,8 +143,8 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
// 获取类别
|
|
|
- getType () {
|
|
|
- getDictList({type: 'commission_type'}).then(({data}) => {
|
|
|
+ getType() {
|
|
|
+ getDictList({ type: 'commission_type' }).then(({ data }) => {
|
|
|
if (data) {
|
|
|
this.optionsType = data
|
|
|
}
|
|
|
@@ -155,7 +157,7 @@ export default {
|
|
|
<style scoped>
|
|
|
.form-item {
|
|
|
margin: 5px 0;
|
|
|
- padding:25px 0 5px;
|
|
|
+ padding: 25px 0 5px;
|
|
|
background-color: #f1f9f9;
|
|
|
border-radius: 10px;
|
|
|
}
|