|
|
@@ -1,326 +1,319 @@
|
|
|
|
|
|
<template>
|
|
|
<ele-modal width="1160px" :visible="visible" v-if="visible" :append-to-body="true" :close-on-click-modal="true"
|
|
|
- custom-class="ele-dialog-form" title="选择物料" @update:visible="updateVisible">
|
|
|
- <header-title title="基本信息"></header-title>
|
|
|
- <el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
|
|
- <el-row>
|
|
|
-
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="产品名称:" prop="name">
|
|
|
- <el-input disabled v-model="form.name" readonly />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
-
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="产品编码:" prop="code">
|
|
|
- <el-input disabled v-model="form.code" placeholder="自动带入" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="型号:" prop="modelType">
|
|
|
- <el-input disabled v-model="form.modelType" placeholder="自动带入" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
-
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="牌号:" prop="brandNum">
|
|
|
- <el-input disabled v-model="form.brandNum" placeholder="自动带入" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
-
|
|
|
-
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="规格:" prop="specification">
|
|
|
- <el-input disabled v-model="form.specification" placeholder="自动带入" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
-
|
|
|
-
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="计量单位:" prop="measuringUnit" >
|
|
|
-
|
|
|
- <el-input disabled v-model="form.measuringUnit" placeholder="自动带入" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
-
|
|
|
-
|
|
|
+ custom-class="ele-dialog-form" title="选择物料" @update:visible="updateVisible">
|
|
|
+ <header-title title="基本信息"></header-title>
|
|
|
+ <el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
|
|
+ <el-row>
|
|
|
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="产品名称:" prop="name">
|
|
|
+ <el-input disabled v-model="form.name" readonly />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
|
|
|
-
|
|
|
-
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="产品编码:" prop="code">
|
|
|
+ <el-input disabled v-model="form.code" placeholder="自动带入" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
- </el-row>
|
|
|
-
|
|
|
-
|
|
|
- <header-title title="物料BOM"></header-title>
|
|
|
-
|
|
|
- <el-row>
|
|
|
-
|
|
|
- <div class="ele-body">
|
|
|
- <ele-pro-table ref="table" :datasource="datasource" :columns="columns">
|
|
|
- <!-- 表头工具栏 -->
|
|
|
- <template v-slot:toolbar>
|
|
|
-
|
|
|
- <el-button size="small" icon="el-icon-plus" class="ele-btn-icon" type="primary"
|
|
|
- @click.native="openParam">添加物料BOM</el-button>
|
|
|
-
|
|
|
- </template>
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- <!-- 操作列 -->
|
|
|
- <template v-slot:action="{ row }">
|
|
|
- <el-popconfirm class="ele-action" title="确定要删除当前物料吗?" @confirm="remove(row)">
|
|
|
- <template v-slot:reference>
|
|
|
- <el-link type="danger" :underline="false" icon="el-icon-delete">
|
|
|
- 删除
|
|
|
- </el-link>
|
|
|
- </template>
|
|
|
- </el-popconfirm>
|
|
|
- </template>
|
|
|
- </ele-pro-table>
|
|
|
- </div>
|
|
|
-
|
|
|
- </el-row>
|
|
|
-
|
|
|
-
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- </el-form>
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- <template v-slot:footer>
|
|
|
- <el-button @click="updateVisible(false)">取消</el-button>
|
|
|
- <el-button type="primary" :loading="loading" @click="save">
|
|
|
- 保存
|
|
|
- </el-button>
|
|
|
- </template>
|
|
|
-
|
|
|
-
|
|
|
- <!-- 选择物料弹窗 -->
|
|
|
- <ProductModal ref="productRefs" @changeProduct='determineChoose' />
|
|
|
-
|
|
|
|
|
|
-
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="型号:" prop="modelType">
|
|
|
+ <el-input disabled v-model="form.modelType" placeholder="自动带入" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="牌号:" prop="brandNum">
|
|
|
+ <el-input disabled v-model="form.brandNum" placeholder="自动带入" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="规格:" prop="specification">
|
|
|
+ <el-input disabled v-model="form.specification" placeholder="自动带入" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="计量单位:" prop="measuringUnit">
|
|
|
+ <el-input disabled v-model="form.measuringUnit" placeholder="自动带入" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+
|
|
|
+ <header-title title="物料BOM"></header-title>
|
|
|
+
|
|
|
+ <el-row>
|
|
|
+
|
|
|
+ <div class="ele-body">
|
|
|
+ <ele-pro-table ref="table" :datasource="datasource" :columns="columns">
|
|
|
+ <!-- 表头工具栏 -->
|
|
|
+ <template v-slot:toolbar>
|
|
|
+
|
|
|
+ <el-button size="small" icon="el-icon-plus" class="ele-btn-icon" type="primary"
|
|
|
+ @click.native="openParam">添加物料BOM</el-button>
|
|
|
+
|
|
|
+ </template>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ <!-- 操作列 -->
|
|
|
+ <template v-slot:action="{ row }">
|
|
|
+ <el-popconfirm class="ele-action" title="确定要删除当前物料吗?" @confirm="remove(row)">
|
|
|
+ <template v-slot:reference>
|
|
|
+ <el-link type="danger" :underline="false" icon="el-icon-delete">
|
|
|
+ 删除
|
|
|
+ </el-link>
|
|
|
+ </template>
|
|
|
+ </el-popconfirm>
|
|
|
+ </template>
|
|
|
+ </ele-pro-table>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ </el-form>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ <template v-slot:footer>
|
|
|
+ <el-button @click="updateVisible(false)">取消</el-button>
|
|
|
+ <el-button type="primary" :loading="loading" @click="save">
|
|
|
+ 保存
|
|
|
+ </el-button>
|
|
|
+ </template>
|
|
|
+
|
|
|
+
|
|
|
+ <!-- 选择物料弹窗 -->
|
|
|
+
|
|
|
+ <materialDialog ref="materiaRef" @chooseModal="chooseModal"></materialDialog>
|
|
|
+
|
|
|
+
|
|
|
|
|
|
-
|
|
|
</ele-modal>
|
|
|
- </template>
|
|
|
+</template>
|
|
|
|
|
|
- <script>
|
|
|
- import parameter from '@/api/technology/productParam';
|
|
|
- import ProductModal from '@/views/technology/productParam/components/ProductModal.vue';
|
|
|
+<script>
|
|
|
|
|
|
|
|
|
-
|
|
|
- import { pageList } from '@/api/technology/version/version.js';
|
|
|
- export default {
|
|
|
+
|
|
|
+import materialDialog from '@/components/material'
|
|
|
+export default {
|
|
|
components: {
|
|
|
- ProductModal,
|
|
|
+ materialDialog
|
|
|
|
|
|
},
|
|
|
props: {
|
|
|
- // 弹窗是否打开
|
|
|
- visible: Boolean,
|
|
|
- // 修改回显的数据
|
|
|
- data: Object
|
|
|
+ // 弹窗是否打开
|
|
|
+ visible: Boolean,
|
|
|
+ // 修改回显的数据
|
|
|
+ data: Object
|
|
|
},
|
|
|
data() {
|
|
|
- const defaultForm = {
|
|
|
- id: null,
|
|
|
- name: '',
|
|
|
- code: '',
|
|
|
- modelType: '',
|
|
|
- brandNum: '',
|
|
|
- specification: '',
|
|
|
- measuringUnit: ''
|
|
|
-
|
|
|
-
|
|
|
- };
|
|
|
- return {
|
|
|
- defaultForm,
|
|
|
- // 表单数据
|
|
|
- form: { ...defaultForm },
|
|
|
-
|
|
|
- versionList: [],
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- // 表单验证规则
|
|
|
- rules: {
|
|
|
- categoryName: [
|
|
|
- { required: true, message: '请输入产品名称', trigger: 'blur' }
|
|
|
- ],
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- },
|
|
|
- // 提交状态
|
|
|
- loading: false,
|
|
|
+ const defaultForm = {
|
|
|
+ id: null,
|
|
|
+ name: '',
|
|
|
+ code: '',
|
|
|
+ modelType: '',
|
|
|
+ brandNum: '',
|
|
|
+ specification: '',
|
|
|
+ measuringUnit: ''
|
|
|
|
|
|
|
|
|
- removeList: [],
|
|
|
-
|
|
|
- // 表格列配置
|
|
|
- columns: [
|
|
|
- {
|
|
|
- prop: 'code',
|
|
|
- label: '参数编码',
|
|
|
- showOverflowTooltip: true,
|
|
|
- align: 'center',
|
|
|
- minWidth: 110
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'name',
|
|
|
- label: '参数名称',
|
|
|
- showOverflowTooltip: true,
|
|
|
- align: 'center',
|
|
|
- minWidth: 110
|
|
|
- },
|
|
|
- {
|
|
|
- align: 'center',
|
|
|
- prop: 'description',
|
|
|
- label: '文本描述',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth: 110
|
|
|
- },
|
|
|
-
|
|
|
- {
|
|
|
- prop: 'maxValue',
|
|
|
- slot: 'maxValue',
|
|
|
- label: '参数上限',
|
|
|
- align: 'center',
|
|
|
-
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'minValue',
|
|
|
- slot: 'minValue',
|
|
|
- label: '参数下限',
|
|
|
- align: 'center',
|
|
|
-
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'defaultValue',
|
|
|
- slot: 'defaultValue',
|
|
|
- label: '默认值',
|
|
|
- align: 'center',
|
|
|
-
|
|
|
- },
|
|
|
-
|
|
|
- {
|
|
|
- prop: 'unitName',
|
|
|
- slot: 'unitName',
|
|
|
- label: '参数单位',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true
|
|
|
- },
|
|
|
-
|
|
|
-
|
|
|
- {
|
|
|
- columnKey: 'action',
|
|
|
- label: '操作',
|
|
|
-
|
|
|
- align: 'center',
|
|
|
- resizable: false,
|
|
|
- slot: 'action',
|
|
|
- showOverflowTooltip: true
|
|
|
- }
|
|
|
- ],
|
|
|
-
|
|
|
- };
|
|
|
+ };
|
|
|
+ return {
|
|
|
+ defaultForm,
|
|
|
+ // 表单数据
|
|
|
+ form: { ...defaultForm },
|
|
|
+
|
|
|
+ versionList: [],
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ // 表单验证规则
|
|
|
+ rules: {
|
|
|
+ categoryName: [
|
|
|
+ { required: true, message: '请输入产品名称', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ },
|
|
|
+ // 提交状态
|
|
|
+ loading: false,
|
|
|
+
|
|
|
+
|
|
|
+ removeList: [],
|
|
|
+
|
|
|
+ // 表格列配置
|
|
|
+ columns: [
|
|
|
+ {
|
|
|
+ prop: 'code',
|
|
|
+ label: '参数编码',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ align: 'center',
|
|
|
+ minWidth: 110
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'name',
|
|
|
+ label: '参数名称',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ align: 'center',
|
|
|
+ minWidth: 110
|
|
|
+ },
|
|
|
+ {
|
|
|
+ align: 'center',
|
|
|
+ prop: 'description',
|
|
|
+ label: '文本描述',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 110
|
|
|
+ },
|
|
|
+
|
|
|
+ {
|
|
|
+ prop: 'maxValue',
|
|
|
+ slot: 'maxValue',
|
|
|
+ label: '参数上限',
|
|
|
+ align: 'center',
|
|
|
+
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'minValue',
|
|
|
+ slot: 'minValue',
|
|
|
+ label: '参数下限',
|
|
|
+ align: 'center',
|
|
|
+
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'defaultValue',
|
|
|
+ slot: 'defaultValue',
|
|
|
+ label: '默认值',
|
|
|
+ align: 'center',
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ {
|
|
|
+ prop: 'unitName',
|
|
|
+ slot: 'unitName',
|
|
|
+ label: '参数单位',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+ {
|
|
|
+ columnKey: 'action',
|
|
|
+ label: '操作',
|
|
|
+
|
|
|
+ align: 'center',
|
|
|
+ resizable: false,
|
|
|
+ slot: 'action',
|
|
|
+ showOverflowTooltip: true
|
|
|
+ }
|
|
|
+ ],
|
|
|
+
|
|
|
+ };
|
|
|
},
|
|
|
computed: {
|
|
|
- // 是否开启响应式布局
|
|
|
- styleResponsive() {
|
|
|
- return this.$store.state.theme.styleResponsive;
|
|
|
- }
|
|
|
+ // 是否开启响应式布局
|
|
|
+ styleResponsive() {
|
|
|
+ return this.$store.state.theme.styleResponsive;
|
|
|
+ }
|
|
|
},
|
|
|
methods: {
|
|
|
-
|
|
|
-
|
|
|
- chooseProduct() {
|
|
|
- this.$refs.productRefs.open(this.form, '选择产品', '9')
|
|
|
- },
|
|
|
-
|
|
|
-
|
|
|
- chooseMolding() {
|
|
|
- this.$refs.productRefs.open(this.form, '选择舟皿', '8')
|
|
|
- },
|
|
|
-
|
|
|
- determineChoose(title, row) {
|
|
|
|
|
|
-
|
|
|
- },
|
|
|
-
|
|
|
|
|
|
-
|
|
|
- /* 表格数据源 */
|
|
|
- datasource({ page, limit, where }) {
|
|
|
- return []
|
|
|
- },
|
|
|
-
|
|
|
|
|
|
-
|
|
|
- /* 保存编辑 */
|
|
|
- save() {
|
|
|
- this.$refs.form.validate((valid) => {
|
|
|
-
|
|
|
- if (!valid) {
|
|
|
- return false;
|
|
|
- }
|
|
|
- this.loading = true;
|
|
|
|
|
|
-
|
|
|
-
|
|
|
+ openParam() {
|
|
|
+ this.$refs.materiaRef.open(this.tableData, '选择物料', '1')
|
|
|
+ },
|
|
|
+
|
|
|
+ determineChoose(title, row) {
|
|
|
+
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /* 表格数据源 */
|
|
|
+ datasource({ page, limit, where }) {
|
|
|
+ return []
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /* 保存编辑 */
|
|
|
+ save() {
|
|
|
+ this.$refs.form.validate((valid) => {
|
|
|
+
|
|
|
+ if (!valid) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ this.loading = true;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /* 更新visible */
|
|
|
+ updateVisible(value) {
|
|
|
+ this.$emit('update:visible', value);
|
|
|
+ },
|
|
|
+
|
|
|
|
|
|
-
|
|
|
- });
|
|
|
- },
|
|
|
- /* 更新visible */
|
|
|
- updateVisible(value) {
|
|
|
- this.$emit('update:visible', value);
|
|
|
- },
|
|
|
-
|
|
|
-
|
|
|
},
|
|
|
-
|
|
|
+
|
|
|
watch: {
|
|
|
- async visible(visible) {
|
|
|
- if (visible) {
|
|
|
+ async visible(visible) {
|
|
|
+ if (visible) {
|
|
|
|
|
|
-
|
|
|
- if (this.data) {
|
|
|
- console.log(this.data)
|
|
|
-
|
|
|
- this.$util.assignObject(this.form, {
|
|
|
- ...this.data
|
|
|
- });
|
|
|
|
|
|
- } else {
|
|
|
-
|
|
|
+ if (this.data) {
|
|
|
+ console.log(this.data)
|
|
|
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- } else {
|
|
|
- this.$refs.form.clearValidate();
|
|
|
- this.form = { ...this.defaultForm };
|
|
|
+ this.$util.assignObject(this.form, {
|
|
|
+ ...this.data
|
|
|
+ });
|
|
|
+
|
|
|
+ } else {
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ } else {
|
|
|
+ this.$refs.form.clearValidate();
|
|
|
+ this.form = { ...this.defaultForm };
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
}
|
|
|
- };
|
|
|
- </script>
|
|
|
+};
|
|
|
+</script>
|
|
|
|