|
|
@@ -10,7 +10,8 @@
|
|
|
<headerTitle title="基本信息">
|
|
|
<el-button @click="cancel">返回</el-button>
|
|
|
<el-button type="primary" @click="submit" :loading="loading"
|
|
|
- >保存</el-button
|
|
|
+ >保存
|
|
|
+ </el-button
|
|
|
>
|
|
|
</headerTitle>
|
|
|
|
|
|
@@ -37,19 +38,19 @@
|
|
|
|
|
|
<el-col :span="8" v-else key="2">
|
|
|
<el-form-item label="编码" prop="code">
|
|
|
- <el-input v-model="form.code" :disabled="status == 0" />
|
|
|
+ <el-input v-model="form.code" :disabled="status == 0"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="名称" prop="name">
|
|
|
- <el-input v-model="form.name" />
|
|
|
+ <el-input v-model="form.name"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="图号/件号" prop="imgCode">
|
|
|
- <el-input v-model="form.imgCode" />
|
|
|
+ <el-input v-model="form.imgCode"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
|
|
|
@@ -89,18 +90,18 @@
|
|
|
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="牌号" prop="brandNum">
|
|
|
- <el-input v-model="form.brandNum" />
|
|
|
+ <el-input v-model="form.brandNum"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="型号" prop="modelType">
|
|
|
- <el-input v-model="form.modelType" />
|
|
|
+ <el-input v-model="form.modelType"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="规格" prop="specification">
|
|
|
- <el-input v-model="form.specification" />
|
|
|
+ <el-input v-model="form.specification"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
|
|
|
@@ -140,7 +141,7 @@
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="体积">
|
|
|
<div class="form-line">
|
|
|
- <el-input v-model="form.volume" />
|
|
|
+ <el-input v-model="form.volume"/>
|
|
|
<DictSelection
|
|
|
class="line-select"
|
|
|
dictName="体积单位"
|
|
|
@@ -155,7 +156,7 @@
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="毛重">
|
|
|
<div class="form-line">
|
|
|
- <el-input v-model="form.roughWeight" />
|
|
|
+ <el-input v-model="form.roughWeight"/>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
@@ -163,7 +164,7 @@
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="净重">
|
|
|
<div class="form-line">
|
|
|
- <el-input v-model="form.netWeight" />
|
|
|
+ <el-input v-model="form.netWeight"/>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
@@ -192,21 +193,24 @@
|
|
|
<el-form-item :label="f.label">
|
|
|
<template>
|
|
|
<div class="form-line">
|
|
|
- <div
|
|
|
- style="width: 100%"
|
|
|
- v-if="f.prop === 'packingSpecification'"
|
|
|
- >
|
|
|
- <template v-if="form.extField.packingSpecification">
|
|
|
- <el-tag
|
|
|
- v-for="item in form.extField.packingSpecification.split(
|
|
|
- ','
|
|
|
- )"
|
|
|
- >{{ item }}</el-tag
|
|
|
- >
|
|
|
- </template>
|
|
|
- <el-input v-else disabled v-model="form.extField[f.prop]" />
|
|
|
- </div>
|
|
|
- <el-input v-else v-model="form.extField[f.prop]" />
|
|
|
+ <!-- <div-->
|
|
|
+ <!-- style="width: 100%"-->
|
|
|
+ <!-- v-if="f.prop === 'packingSpecification'"-->
|
|
|
+ <!-- >-->
|
|
|
+ <!-- <template v-if="form.extField.packingSpecification">-->
|
|
|
+ <!-- <el-tag-->
|
|
|
+ <!-- v-for="item in form.extField.packingSpecification.split(-->
|
|
|
+ <!-- ','-->
|
|
|
+ <!-- )"-->
|
|
|
+ <!-- >{{ item }}</el-tag-->
|
|
|
+ <!-- >-->
|
|
|
+ <!-- </template>-->
|
|
|
+ <!-- <el-input v-else disabled v-model="form.extField[f.prop]" />-->
|
|
|
+ <!-- </div>-->
|
|
|
+ <!-- <[f.tagType] v-model="form.extField[f.prop]" />-->
|
|
|
+ <component :is="f.tagType" v-model="form.extField[f.prop]" :disabled="f.extAttribute?.disabled"
|
|
|
+ clearable :isProhibit="f.modelType=='dict'?f.extAttribute?.disabled:false"
|
|
|
+ :dictName="f.modelType=='dict'?f.label:''"></component>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-form-item>
|
|
|
@@ -223,7 +227,7 @@
|
|
|
@chooseCode="chooseCode"
|
|
|
></CodeDialog>
|
|
|
<!-- 分类选择弹窗 -->
|
|
|
- <CategoryDialog ref="categoryRefs" @chooseCategory="confirmCategory" />
|
|
|
+ <CategoryDialog ref="categoryRefs" @chooseCategory="confirmCategory"/>
|
|
|
<!-- 仓储配置 -->
|
|
|
<WarehouseInfo
|
|
|
ref="warehouseRefs"
|
|
|
@@ -233,19 +237,19 @@
|
|
|
@change="changePackagingSpecification"
|
|
|
/>
|
|
|
<!-- 生产信息 -->
|
|
|
- <ProductionInfo ref="productionRefs" :form="categoryMes" />
|
|
|
+ <ProductionInfo ref="productionRefs" :form="categoryMes"/>
|
|
|
<!-- 计划 -->
|
|
|
- <PlanInfo ref="planRefs" :form="categoryAps" />
|
|
|
+ <PlanInfo ref="planRefs" :form="categoryAps"/>
|
|
|
<!-- 质量配置 -->
|
|
|
- <QualityInfo ref="qualityRefs" :form="categoryQms" />
|
|
|
+ <QualityInfo ref="qualityRefs" :form="categoryQms"/>
|
|
|
<!-- 舟皿信息 -->
|
|
|
- <BoatInfo ref="qualityRefs" :form="categoryPallet" />
|
|
|
+ <BoatInfo ref="qualityRefs" :form="categoryPallet"/>
|
|
|
<!-- 周转车信息 -->
|
|
|
- <TurnoverInfo ref="turnoverRefs" :form="categoryVehicle" />
|
|
|
+ <TurnoverInfo ref="turnoverRefs" :form="categoryVehicle"/>
|
|
|
<!-- 模具信息 -->
|
|
|
- <MoldInfo ref="moldRefs" :form="categoryMold" />
|
|
|
+ <MoldInfo ref="moldRefs" :form="categoryMold"/>
|
|
|
<!-- 备注信息 -->
|
|
|
- <RemarkInfo ref="remarkRefs" :form="remarkform" />
|
|
|
+ <RemarkInfo ref="remarkRefs" :form="remarkform"/>
|
|
|
<!-- 关联信息 -->
|
|
|
<linkMsg
|
|
|
ref="linkMsgRef"
|
|
|
@@ -257,485 +261,485 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
- import GroupDialog from './components/GroupDialog.vue';
|
|
|
- import CodeDialog from './components/codeDialog.vue';
|
|
|
- import CategoryDialog from './components/CategoryDialog.vue';
|
|
|
- import WarehouseInfo from './components/WarehouseInfo.vue';
|
|
|
- import ProcureInfo from './components/ProcureInfo.vue';
|
|
|
- import ProductionInfo from './components/ProductionInfo.vue';
|
|
|
- import PlanInfo from './components/PlanInfo.vue';
|
|
|
- import SalesInfo from './components/SalesInfo.vue';
|
|
|
- import QualityInfo from './components/QualityInfo.vue';
|
|
|
- import BoatInfo from './components/BoatInfo.vue';
|
|
|
- import TurnoverInfo from './components/TurnoverInfo.vue';
|
|
|
- import MoldInfo from './components/MoldInfo.vue';
|
|
|
- import RemarkInfo from './components/RemarkInfo.vue';
|
|
|
- import deptSelect from '@/components/CommomSelect/dept-select.vue';
|
|
|
- import personSelect from '@/components/CommomSelect/person-select.vue';
|
|
|
- import linkMsg from './components/link-msg.vue';
|
|
|
- import { getDetails } from '@/api/classifyManage/itemInformation';
|
|
|
- import { getByCode } from '@/api/system/dictionary-data';
|
|
|
- import { getCode, rootCategoryCode, fieldModel } from '@/api/codeManagement';
|
|
|
-
|
|
|
- import { addMaterial } from '@/api/material/list.js';
|
|
|
- import { deepClone } from '@/utils/index';
|
|
|
- import { finishPageTab, reloadPageTab } from '@/utils/page-tab-util';
|
|
|
-
|
|
|
- export default {
|
|
|
- name: 'ManageMaterial',
|
|
|
- components: {
|
|
|
- linkMsg,
|
|
|
- GroupDialog,
|
|
|
- deptSelect,
|
|
|
- personSelect,
|
|
|
- WarehouseInfo,
|
|
|
- ProcureInfo,
|
|
|
- ProductionInfo,
|
|
|
- PlanInfo,
|
|
|
- SalesInfo,
|
|
|
- QualityInfo,
|
|
|
- BoatInfo,
|
|
|
- TurnoverInfo,
|
|
|
- MoldInfo,
|
|
|
- RemarkInfo,
|
|
|
- CategoryDialog,
|
|
|
- CodeDialog
|
|
|
- },
|
|
|
- data() {
|
|
|
- return {
|
|
|
- packagingSpecificationList: [],
|
|
|
- loading: false,
|
|
|
- levelOptions: [
|
|
|
- {
|
|
|
- label: '特级',
|
|
|
- value: '特级'
|
|
|
- },
|
|
|
- {
|
|
|
- label: '一级',
|
|
|
- value: '一级'
|
|
|
- },
|
|
|
- {
|
|
|
- label: '二级',
|
|
|
- value: '二级'
|
|
|
- },
|
|
|
- {
|
|
|
- label: '三级',
|
|
|
- value: '三级'
|
|
|
- }
|
|
|
- ],
|
|
|
- form: {
|
|
|
- categoryLevelGroupName: '',
|
|
|
- categoryLevelName: '',
|
|
|
- isConsumable: 1,
|
|
|
-
|
|
|
- extField: {}
|
|
|
+import GroupDialog from './components/GroupDialog.vue';
|
|
|
+import CodeDialog from './components/codeDialog.vue';
|
|
|
+import CategoryDialog from './components/CategoryDialog.vue';
|
|
|
+import WarehouseInfo from './components/WarehouseInfo.vue';
|
|
|
+import ProcureInfo from './components/ProcureInfo.vue';
|
|
|
+import ProductionInfo from './components/ProductionInfo.vue';
|
|
|
+import PlanInfo from './components/PlanInfo.vue';
|
|
|
+import SalesInfo from './components/SalesInfo.vue';
|
|
|
+import QualityInfo from './components/QualityInfo.vue';
|
|
|
+import BoatInfo from './components/BoatInfo.vue';
|
|
|
+import TurnoverInfo from './components/TurnoverInfo.vue';
|
|
|
+import MoldInfo from './components/MoldInfo.vue';
|
|
|
+import RemarkInfo from './components/RemarkInfo.vue';
|
|
|
+import deptSelect from '@/components/CommomSelect/dept-select.vue';
|
|
|
+import personSelect from '@/components/CommomSelect/person-select.vue';
|
|
|
+import linkMsg from './components/link-msg.vue';
|
|
|
+import {getDetails} from '@/api/classifyManage/itemInformation';
|
|
|
+import {getByCode} from '@/api/system/dictionary-data';
|
|
|
+import {getCode, rootCategoryCode, fieldModel} from '@/api/codeManagement';
|
|
|
+
|
|
|
+import {addMaterial} from '@/api/material/list.js';
|
|
|
+import {deepClone} from '@/utils/index';
|
|
|
+import {finishPageTab, reloadPageTab} from '@/utils/page-tab-util';
|
|
|
+
|
|
|
+export default {
|
|
|
+ name: 'ManageMaterial',
|
|
|
+ components: {
|
|
|
+ linkMsg,
|
|
|
+ GroupDialog,
|
|
|
+ deptSelect,
|
|
|
+ personSelect,
|
|
|
+ WarehouseInfo,
|
|
|
+ ProcureInfo,
|
|
|
+ ProductionInfo,
|
|
|
+ PlanInfo,
|
|
|
+ SalesInfo,
|
|
|
+ QualityInfo,
|
|
|
+ BoatInfo,
|
|
|
+ TurnoverInfo,
|
|
|
+ MoldInfo,
|
|
|
+ RemarkInfo,
|
|
|
+ CategoryDialog,
|
|
|
+ CodeDialog
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ packagingSpecificationList: [],
|
|
|
+ loading: false,
|
|
|
+ levelOptions: [
|
|
|
+ {
|
|
|
+ label: '特级',
|
|
|
+ value: '特级'
|
|
|
},
|
|
|
-
|
|
|
- remarkform: {
|
|
|
- remarkAttach: []
|
|
|
+ {
|
|
|
+ label: '一级',
|
|
|
+ value: '一级'
|
|
|
},
|
|
|
- categoryAps: {},
|
|
|
- categoryMes: {},
|
|
|
- categoryMold: {},
|
|
|
- categoryPallet: {},
|
|
|
- categoryQms: {},
|
|
|
- categoryVehicle: {},
|
|
|
- categoryWms: {
|
|
|
- isUnpack: 1
|
|
|
+ {
|
|
|
+ label: '二级',
|
|
|
+ value: '二级'
|
|
|
},
|
|
|
- packageDispositionVOList: [],
|
|
|
- categoryLevelPathId: null,
|
|
|
-
|
|
|
- dictList: [],
|
|
|
-
|
|
|
- fileList: [],
|
|
|
- // 表单验证规则
|
|
|
- rules: {
|
|
|
- categoryLevelGroupName: [
|
|
|
- { required: true, message: '请选择所属物料组', trigger: 'change' }
|
|
|
- ],
|
|
|
- code: [{ required: true, message: '请输入编码', trigger: 'blur' }],
|
|
|
- name: [{ required: true, message: '请输入名称', trigger: 'blur' }],
|
|
|
- categoryLevelName: [
|
|
|
- { required: true, message: '请选择所属分类', trigger: 'change' }
|
|
|
- ],
|
|
|
- measuringUnit: [
|
|
|
- { required: true, message: '请选择计量单位', trigger: 'change' }
|
|
|
- ],
|
|
|
-
|
|
|
- weightUnit: [
|
|
|
- { required: true, message: '请选择重量单位', trigger: 'change' }
|
|
|
- ],
|
|
|
-
|
|
|
- packingUnit: [
|
|
|
- { required: true, message: '请选择包装单位', trigger: 'change' }
|
|
|
- ],
|
|
|
-
|
|
|
- netWeight: [
|
|
|
- { required: true, message: '请输入净重', trigger: 'blur' }
|
|
|
- ]
|
|
|
- },
|
|
|
- PathInfo: {},
|
|
|
- id: null,
|
|
|
+ {
|
|
|
+ label: '三级',
|
|
|
+ value: '三级'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ form: {
|
|
|
+ categoryLevelGroupName: '',
|
|
|
+ categoryLevelName: '',
|
|
|
+ isConsumable: 1,
|
|
|
|
|
|
- ruleCode: null,
|
|
|
- codeShow: false,
|
|
|
+ extField: {}
|
|
|
+ },
|
|
|
|
|
|
- status: null
|
|
|
- };
|
|
|
- },
|
|
|
- watch: {
|
|
|
- '$route.query.id': {
|
|
|
- handler(id) {
|
|
|
- console.log('id-------------', id);
|
|
|
- if (id) {
|
|
|
- this._getDetails();
|
|
|
- }
|
|
|
- },
|
|
|
- deep: true,
|
|
|
- immediate: true
|
|
|
- }
|
|
|
- },
|
|
|
- async created() {
|
|
|
- this.getFieldModel();
|
|
|
- this.status = this.$route.query.status;
|
|
|
- // if (this.$route.query.id) {
|
|
|
- // this._getDetails();
|
|
|
- // }
|
|
|
- this.getDictList('productionType');
|
|
|
- },
|
|
|
- methods: {
|
|
|
- changePackagingSpecification(val) {
|
|
|
- this.packagingSpecificationList = val;
|
|
|
+ remarkform: {
|
|
|
+ remarkAttach: []
|
|
|
},
|
|
|
- async _getDetails() {
|
|
|
- const data = await getDetails(this.$route.query.id);
|
|
|
- const info = deepClone(data);
|
|
|
+ categoryAps: {},
|
|
|
+ categoryMes: {},
|
|
|
+ categoryMold: {},
|
|
|
+ categoryPallet: {},
|
|
|
+ categoryQms: {},
|
|
|
+ categoryVehicle: {},
|
|
|
+ categoryWms: {
|
|
|
+ isUnpack: 1
|
|
|
+ },
|
|
|
+ packageDispositionVOList: [],
|
|
|
+ categoryLevelPathId: null,
|
|
|
|
|
|
- this.form = {
|
|
|
- ...info.category
|
|
|
- };
|
|
|
- let productType_ = this.form.produceType;
|
|
|
- if (productType_ != undefined && productType_ != null) {
|
|
|
- let intproductType = [];
|
|
|
- for (const [index, value] of productType_.entries()) {
|
|
|
- intproductType.push(value.toString());
|
|
|
- }
|
|
|
- this.form.produceType = intproductType;
|
|
|
- }
|
|
|
+ dictList: [],
|
|
|
+
|
|
|
+ fileList: [],
|
|
|
+ // 表单验证规则
|
|
|
+ rules: {
|
|
|
+ categoryLevelGroupName: [
|
|
|
+ {required: true, message: '请选择所属物料组', trigger: 'change'}
|
|
|
+ ],
|
|
|
+ code: [{required: true, message: '请输入编码', trigger: 'blur'}],
|
|
|
+ name: [{required: true, message: '请输入名称', trigger: 'blur'}],
|
|
|
+ categoryLevelName: [
|
|
|
+ {required: true, message: '请选择所属分类', trigger: 'change'}
|
|
|
+ ],
|
|
|
+ measuringUnit: [
|
|
|
+ {required: true, message: '请选择计量单位', trigger: 'change'}
|
|
|
+ ],
|
|
|
|
|
|
- this.categoryLevelPathId = info.category.categoryLevelPathIdParent;
|
|
|
- this.judgeSet(info);
|
|
|
+ weightUnit: [
|
|
|
+ {required: true, message: '请选择重量单位', trigger: 'change'}
|
|
|
+ ],
|
|
|
|
|
|
- if (this.status == 1) {
|
|
|
- rootCategoryCode(this.categoryLevelPathId).then((res) => {
|
|
|
- this.$set(this.form, 'code', res);
|
|
|
- });
|
|
|
- }
|
|
|
+ packingUnit: [
|
|
|
+ {required: true, message: '请选择包装单位', trigger: 'change'}
|
|
|
+ ],
|
|
|
|
|
|
- this.$forceUpdate();
|
|
|
+ netWeight: [
|
|
|
+ {required: true, message: '请输入净重', trigger: 'blur'}
|
|
|
+ ]
|
|
|
},
|
|
|
- // 判断字段类型并赋值
|
|
|
- judgeSet(info) {
|
|
|
- console.log('info-------', info);
|
|
|
- if (typeof info.categoryAps == 'string') {
|
|
|
- this.categoryAps = {};
|
|
|
- } else {
|
|
|
- this.categoryAps = info.categoryAps;
|
|
|
- }
|
|
|
- if (typeof info.categoryMes == 'string') {
|
|
|
- this.categoryMes = {};
|
|
|
- } else {
|
|
|
- this.categoryMes = info.categoryMes;
|
|
|
- }
|
|
|
- if (typeof info.categoryMold == 'string') {
|
|
|
- this.categoryMold = {};
|
|
|
- } else {
|
|
|
- this.categoryMold = info.categoryMold;
|
|
|
- }
|
|
|
- if (typeof info.categoryPallet == 'string') {
|
|
|
- this.categoryPallet = {};
|
|
|
- } else {
|
|
|
- this.categoryPallet = info.categoryPallet;
|
|
|
- }
|
|
|
- if (typeof info.categoryQms == 'string') {
|
|
|
- this.categoryQms = {};
|
|
|
- } else {
|
|
|
- this.categoryQms = info.categoryQms;
|
|
|
- }
|
|
|
- if (typeof info.categoryVehicle == 'string') {
|
|
|
- this.categoryVehicle = {};
|
|
|
- } else {
|
|
|
- this.categoryVehicle = info.categoryVehicle;
|
|
|
- }
|
|
|
- if (typeof info.categoryWms == 'string') {
|
|
|
- this.categoryWms = {};
|
|
|
- } else {
|
|
|
- this.categoryWms = info.categoryWms;
|
|
|
- }
|
|
|
- if (typeof info.packageDispositionVOList == 'string') {
|
|
|
- this.packageDispositionVOList = [];
|
|
|
- } else {
|
|
|
- this.packageDispositionVOList = info.packageDispositionVOList;
|
|
|
- console.log(
|
|
|
- 'this.packageDispositionVOList---!!!----',
|
|
|
- this.packageDispositionVOList
|
|
|
- );
|
|
|
+ PathInfo: {},
|
|
|
+ id: null,
|
|
|
+
|
|
|
+ ruleCode: null,
|
|
|
+ codeShow: false,
|
|
|
+
|
|
|
+ status: null
|
|
|
+ };
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ '$route.query.id': {
|
|
|
+ handler(id) {
|
|
|
+ console.log('id-------------', id);
|
|
|
+ if (id) {
|
|
|
+ this._getDetails();
|
|
|
}
|
|
|
},
|
|
|
+ deep: true,
|
|
|
+ immediate: true
|
|
|
+ }
|
|
|
+ },
|
|
|
+ async created() {
|
|
|
+ this.getFieldModel();
|
|
|
+ this.status = this.$route.query.status;
|
|
|
+ // if (this.$route.query.id) {
|
|
|
+ // this._getDetails();
|
|
|
+ // }
|
|
|
+ this.getDictList('productionType');
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ changePackagingSpecification(val) {
|
|
|
+ this.packagingSpecificationList = val;
|
|
|
+ },
|
|
|
+ async _getDetails() {
|
|
|
+ const data = await getDetails(this.$route.query.id);
|
|
|
+ const info = deepClone(data);
|
|
|
|
|
|
- getFieldModel() {
|
|
|
- fieldModel({ fieldModel: 't_main_category' }).then((res) => {
|
|
|
- this.fileList = res;
|
|
|
+ this.form = {
|
|
|
+ ...info.category
|
|
|
+ };
|
|
|
+ let productType_ = this.form.produceType;
|
|
|
+ if (productType_ != undefined && productType_ != null) {
|
|
|
+ let intproductType = [];
|
|
|
+ for (const [index, value] of productType_.entries()) {
|
|
|
+ intproductType.push(value.toString());
|
|
|
+ }
|
|
|
+ this.form.produceType = intproductType;
|
|
|
+ }
|
|
|
|
|
|
- this.fileList.forEach((f) => {
|
|
|
- this.$set(this.form.extField, f.prop, ''); // 初始化动态模型属性
|
|
|
- });
|
|
|
+ this.categoryLevelPathId = info.category.categoryLevelPathIdParent;
|
|
|
+ this.judgeSet(info);
|
|
|
+
|
|
|
+ if (this.status == 1) {
|
|
|
+ rootCategoryCode(this.categoryLevelPathId).then((res) => {
|
|
|
+ this.$set(this.form, 'code', res);
|
|
|
});
|
|
|
- },
|
|
|
+ }
|
|
|
|
|
|
- // 确定分类
|
|
|
- async confirmCategory(node, title, PathInfo, ruleCode) {
|
|
|
- if (this.status != 0) {
|
|
|
- this.$set(this.form, 'code', null);
|
|
|
- }
|
|
|
- this.categoryLevelPathId = PathInfo.categoryLevelPathId.split(',')[0];
|
|
|
+ this.$forceUpdate();
|
|
|
+ },
|
|
|
+ // 判断字段类型并赋值
|
|
|
+ judgeSet(info) {
|
|
|
+ console.log('info-------', info);
|
|
|
+ if (typeof info.categoryAps == 'string') {
|
|
|
+ this.categoryAps = {};
|
|
|
+ } else {
|
|
|
+ this.categoryAps = info.categoryAps;
|
|
|
+ }
|
|
|
+ if (typeof info.categoryMes == 'string') {
|
|
|
+ this.categoryMes = {};
|
|
|
+ } else {
|
|
|
+ this.categoryMes = info.categoryMes;
|
|
|
+ }
|
|
|
+ if (typeof info.categoryMold == 'string') {
|
|
|
+ this.categoryMold = {};
|
|
|
+ } else {
|
|
|
+ this.categoryMold = info.categoryMold;
|
|
|
+ }
|
|
|
+ if (typeof info.categoryPallet == 'string') {
|
|
|
+ this.categoryPallet = {};
|
|
|
+ } else {
|
|
|
+ this.categoryPallet = info.categoryPallet;
|
|
|
+ }
|
|
|
+ if (typeof info.categoryQms == 'string') {
|
|
|
+ this.categoryQms = {};
|
|
|
+ } else {
|
|
|
+ this.categoryQms = info.categoryQms;
|
|
|
+ }
|
|
|
+ if (typeof info.categoryVehicle == 'string') {
|
|
|
+ this.categoryVehicle = {};
|
|
|
+ } else {
|
|
|
+ this.categoryVehicle = info.categoryVehicle;
|
|
|
+ }
|
|
|
+ if (typeof info.categoryWms == 'string') {
|
|
|
+ this.categoryWms = {};
|
|
|
+ } else {
|
|
|
+ this.categoryWms = info.categoryWms;
|
|
|
+ }
|
|
|
+ if (typeof info.packageDispositionVOList == 'string') {
|
|
|
+ this.packageDispositionVOList = [];
|
|
|
+ } else {
|
|
|
+ this.packageDispositionVOList = info.packageDispositionVOList;
|
|
|
+ console.log(
|
|
|
+ 'this.packageDispositionVOList---!!!----',
|
|
|
+ this.packageDispositionVOList
|
|
|
+ );
|
|
|
+ }
|
|
|
+ },
|
|
|
|
|
|
- if (title == '选择产品分类') {
|
|
|
- this.$set(this.form, 'productCategoryLevelName', node.name);
|
|
|
- this.$set(this.form, 'productCategoryLevelId', node.id);
|
|
|
- } else {
|
|
|
- this.$set(this.form, 'categoryLevelName', node.name);
|
|
|
- this.$set(this.form, 'categoryLevelId', node.id);
|
|
|
- this.$set(this.form, 'categoryLevelPath', node.name);
|
|
|
- this.$set(this.form, 'categoryLevelPathId', node.id);
|
|
|
- this.PathInfo = PathInfo;
|
|
|
-
|
|
|
- this.ruleCode = ruleCode;
|
|
|
-
|
|
|
- if (ruleCode && ruleCode != '自定义' && this.status != 0) {
|
|
|
- const code = await getCode(ruleCode);
|
|
|
- this.$set(this.form, 'code', code);
|
|
|
- }
|
|
|
+ getFieldModel() {
|
|
|
+ fieldModel({fieldModel: 't_main_category'}).then((res) => {
|
|
|
+ this.fileList = res;
|
|
|
+
|
|
|
+ this.fileList.forEach((f) => {
|
|
|
+ this.$set(this.form.extField, f.prop, ''); // 初始化动态模型属性
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ // 确定分类
|
|
|
+ async confirmCategory(node, title, PathInfo, ruleCode) {
|
|
|
+ if (this.status != 0) {
|
|
|
+ this.$set(this.form, 'code', null);
|
|
|
+ }
|
|
|
+ this.categoryLevelPathId = PathInfo.categoryLevelPathId.split(',')[0];
|
|
|
+
|
|
|
+ if (title == '选择产品分类') {
|
|
|
+ this.$set(this.form, 'productCategoryLevelName', node.name);
|
|
|
+ this.$set(this.form, 'productCategoryLevelId', node.id);
|
|
|
+ } else {
|
|
|
+ this.$set(this.form, 'categoryLevelName', node.name);
|
|
|
+ this.$set(this.form, 'categoryLevelId', node.id);
|
|
|
+ this.$set(this.form, 'categoryLevelPath', node.name);
|
|
|
+ this.$set(this.form, 'categoryLevelPathId', node.id);
|
|
|
+ this.PathInfo = PathInfo;
|
|
|
+
|
|
|
+ this.ruleCode = ruleCode;
|
|
|
+
|
|
|
+ if (ruleCode && ruleCode != '自定义' && this.status != 0) {
|
|
|
+ const code = await getCode(ruleCode);
|
|
|
+ this.$set(this.form, 'code', code);
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- this.$forceUpdate();
|
|
|
- },
|
|
|
+ this.$forceUpdate();
|
|
|
+ },
|
|
|
|
|
|
- async getDictList(code) {
|
|
|
- let { data: res } = await getByCode(code);
|
|
|
- this.dictList = res.map((item) => {
|
|
|
- let values = Object.keys(item);
|
|
|
- return {
|
|
|
- value: Number(values[0]),
|
|
|
- label: item[values[0]]
|
|
|
- };
|
|
|
- });
|
|
|
- },
|
|
|
+ async getDictList(code) {
|
|
|
+ let {data: res} = await getByCode(code);
|
|
|
+ this.dictList = res.map((item) => {
|
|
|
+ let values = Object.keys(item);
|
|
|
+ return {
|
|
|
+ value: Number(values[0]),
|
|
|
+ label: item[values[0]]
|
|
|
+ };
|
|
|
+ });
|
|
|
+ },
|
|
|
|
|
|
- openCategory() {
|
|
|
- this.$refs.categoryRefs.open();
|
|
|
- },
|
|
|
+ openCategory() {
|
|
|
+ this.$refs.categoryRefs.open();
|
|
|
+ },
|
|
|
|
|
|
- openCode() {
|
|
|
- this.codeShow = true;
|
|
|
- },
|
|
|
+ openCode() {
|
|
|
+ this.codeShow = true;
|
|
|
+ },
|
|
|
|
|
|
- chooseCode(code) {
|
|
|
- this.$set(this.form, 'code', code);
|
|
|
- this.codeShow = false;
|
|
|
- this.$forceUpdate();
|
|
|
- },
|
|
|
+ chooseCode(code) {
|
|
|
+ this.$set(this.form, 'code', code);
|
|
|
+ this.codeShow = false;
|
|
|
+ this.$forceUpdate();
|
|
|
+ },
|
|
|
|
|
|
- cancel() {
|
|
|
- finishPageTab();
|
|
|
- this.$router.go(-1);
|
|
|
- },
|
|
|
+ cancel() {
|
|
|
+ finishPageTab();
|
|
|
+ this.$router.go(-1);
|
|
|
+ },
|
|
|
|
|
|
- // 保存
|
|
|
- submit() {
|
|
|
- this.$refs.manageForm.validate(async (valid) => {
|
|
|
- let productionValid = await this.$refs.productionRefs.getFormValid();
|
|
|
- console.log(productionValid);
|
|
|
- if (!valid || !productionValid) {
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- let packageDispositionVOList = [];
|
|
|
- if (this.packagingSpecificationList.length > 0) {
|
|
|
- packageDispositionVOList = this.packagingSpecificationList.map(
|
|
|
- (item) => {
|
|
|
- let obj = {
|
|
|
- code: item.code,
|
|
|
- name: item.name
|
|
|
- };
|
|
|
- return [
|
|
|
- {
|
|
|
- ...obj,
|
|
|
- sort: 0,
|
|
|
- status: item.status
|
|
|
- },
|
|
|
- {
|
|
|
- ...obj,
|
|
|
- sort: 1,
|
|
|
- packageCell: item.minPackageCell,
|
|
|
- packageUnit: item.packageUnit,
|
|
|
- conversionUnit: item.minConversionUnit
|
|
|
- },
|
|
|
- {
|
|
|
- ...obj,
|
|
|
- sort: 2,
|
|
|
- packageCell: item.inPackageCell,
|
|
|
- packageUnit: item.minConversionUnit,
|
|
|
- conversionUnit: item.inConversionUnit
|
|
|
- },
|
|
|
- {
|
|
|
- ...obj,
|
|
|
- sort: 3,
|
|
|
- packageCell: item.outPackageCell,
|
|
|
- packageUnit: item.inConversionUnit,
|
|
|
- conversionUnit: item.outConversionUnit
|
|
|
- }
|
|
|
- ];
|
|
|
- }
|
|
|
- );
|
|
|
- let packagingSpecificationList =
|
|
|
- this.packagingSpecificationList.filter(
|
|
|
- (item) => item.status == 1
|
|
|
- );
|
|
|
- this.form.extField.packingSpecification = packagingSpecificationList
|
|
|
- .map((item) => {
|
|
|
- return [
|
|
|
- `${item.minPackageCell}${item.packageUnit}/${item.minConversionUnit}`,
|
|
|
- `${item.inPackageCell}${item.minConversionUnit}/${item.inConversionUnit}`,
|
|
|
- `${item.outPackageCell}${item.inConversionUnit}/${item.outConversionUnit}`
|
|
|
- ];
|
|
|
- })
|
|
|
- .flat()
|
|
|
- .join(',');
|
|
|
- } else {
|
|
|
- this.form.extField.packingSpecification = '';
|
|
|
- }
|
|
|
-
|
|
|
- this.loading = true;
|
|
|
- // const imgList = this.remarkform.imgList;
|
|
|
- // const arr = [];
|
|
|
- // if (imgList.length) {
|
|
|
- // imgList.map((item) => {
|
|
|
- // arr.push(item.storePath);
|
|
|
- // });
|
|
|
- // this.form.remarkAttach = arr.join(',');
|
|
|
- // }
|
|
|
- // this.form.remark = this.remarkform.remark
|
|
|
- // ? this.remarkform.remark
|
|
|
- // : '';
|
|
|
-
|
|
|
- const data = {
|
|
|
- categoryWms: this.categoryWms,
|
|
|
- categoryAps: this.categoryAps,
|
|
|
- categoryMes: this.categoryMes,
|
|
|
- categoryMold: this.categoryMold,
|
|
|
- categoryPallet: this.categoryPallet,
|
|
|
- categoryQms: this.categoryQms,
|
|
|
- categoryVehicle: this.categoryVehicle,
|
|
|
- category: {
|
|
|
- ...this.form,
|
|
|
- ...this.remarkform,
|
|
|
- ...this.PathInfo
|
|
|
- },
|
|
|
- packageDispositionVOList: packageDispositionVOList.flat()
|
|
|
- };
|
|
|
-
|
|
|
- if (this.$route.query.status == 1) {
|
|
|
- data.category.id = null;
|
|
|
- data.categoryWms.id = null;
|
|
|
- data.categoryAps.id = null;
|
|
|
- data.categoryMes.id = null;
|
|
|
- data.categoryMold.id = null;
|
|
|
- data.categoryPallet.id = null;
|
|
|
- data.categoryQms.id = null;
|
|
|
- data.categoryVehicle.id = null;
|
|
|
- data.packageDispositionVOList = data.packageDispositionVOList.map(
|
|
|
- (item) => {
|
|
|
- return {
|
|
|
- ...item,
|
|
|
- id: null
|
|
|
- };
|
|
|
- }
|
|
|
+ // 保存
|
|
|
+ submit() {
|
|
|
+ this.$refs.manageForm.validate(async (valid) => {
|
|
|
+ let productionValid = await this.$refs.productionRefs.getFormValid();
|
|
|
+ console.log(productionValid);
|
|
|
+ if (!valid || !productionValid) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ let packageDispositionVOList = [];
|
|
|
+ if (this.packagingSpecificationList.length > 0) {
|
|
|
+ packageDispositionVOList = this.packagingSpecificationList.map(
|
|
|
+ (item) => {
|
|
|
+ let obj = {
|
|
|
+ code: item.code,
|
|
|
+ name: item.name
|
|
|
+ };
|
|
|
+ return [
|
|
|
+ {
|
|
|
+ ...obj,
|
|
|
+ sort: 0,
|
|
|
+ status: item.status
|
|
|
+ },
|
|
|
+ {
|
|
|
+ ...obj,
|
|
|
+ sort: 1,
|
|
|
+ packageCell: item.minPackageCell,
|
|
|
+ packageUnit: item.packageUnit,
|
|
|
+ conversionUnit: item.minConversionUnit
|
|
|
+ },
|
|
|
+ {
|
|
|
+ ...obj,
|
|
|
+ sort: 2,
|
|
|
+ packageCell: item.inPackageCell,
|
|
|
+ packageUnit: item.minConversionUnit,
|
|
|
+ conversionUnit: item.inConversionUnit
|
|
|
+ },
|
|
|
+ {
|
|
|
+ ...obj,
|
|
|
+ sort: 3,
|
|
|
+ packageCell: item.outPackageCell,
|
|
|
+ packageUnit: item.inConversionUnit,
|
|
|
+ conversionUnit: item.outConversionUnit
|
|
|
+ }
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ );
|
|
|
+ let packagingSpecificationList =
|
|
|
+ this.packagingSpecificationList.filter(
|
|
|
+ (item) => item.status == 1
|
|
|
);
|
|
|
- }
|
|
|
-
|
|
|
- addMaterial(data)
|
|
|
- .then((msg) => {
|
|
|
- this.loading = false;
|
|
|
- this.$message.success(msg);
|
|
|
- reloadPageTab({ fullPath: '/material/product' });
|
|
|
- this.$router.go(-1);
|
|
|
+ this.form.extField.packingSpecification = packagingSpecificationList
|
|
|
+ .map((item) => {
|
|
|
+ return [
|
|
|
+ `${item.minPackageCell}${item.packageUnit}/${item.minConversionUnit}`,
|
|
|
+ `${item.inPackageCell}${item.minConversionUnit}/${item.inConversionUnit}`,
|
|
|
+ `${item.outPackageCell}${item.inConversionUnit}/${item.outConversionUnit}`
|
|
|
+ ];
|
|
|
})
|
|
|
- .catch((e) => {
|
|
|
- this.loading = false;
|
|
|
- });
|
|
|
- });
|
|
|
- }
|
|
|
+ .flat()
|
|
|
+ .join(',');
|
|
|
+ } else {
|
|
|
+ this.form.extField.packingSpecification = '';
|
|
|
+ }
|
|
|
+
|
|
|
+ this.loading = true;
|
|
|
+ // const imgList = this.remarkform.imgList;
|
|
|
+ // const arr = [];
|
|
|
+ // if (imgList.length) {
|
|
|
+ // imgList.map((item) => {
|
|
|
+ // arr.push(item.storePath);
|
|
|
+ // });
|
|
|
+ // this.form.remarkAttach = arr.join(',');
|
|
|
+ // }
|
|
|
+ // this.form.remark = this.remarkform.remark
|
|
|
+ // ? this.remarkform.remark
|
|
|
+ // : '';
|
|
|
+
|
|
|
+ const data = {
|
|
|
+ categoryWms: this.categoryWms,
|
|
|
+ categoryAps: this.categoryAps,
|
|
|
+ categoryMes: this.categoryMes,
|
|
|
+ categoryMold: this.categoryMold,
|
|
|
+ categoryPallet: this.categoryPallet,
|
|
|
+ categoryQms: this.categoryQms,
|
|
|
+ categoryVehicle: this.categoryVehicle,
|
|
|
+ category: {
|
|
|
+ ...this.form,
|
|
|
+ ...this.remarkform,
|
|
|
+ ...this.PathInfo
|
|
|
+ },
|
|
|
+ packageDispositionVOList: packageDispositionVOList.flat()
|
|
|
+ };
|
|
|
+
|
|
|
+ if (this.$route.query.status == 1) {
|
|
|
+ data.category.id = null;
|
|
|
+ data.categoryWms.id = null;
|
|
|
+ data.categoryAps.id = null;
|
|
|
+ data.categoryMes.id = null;
|
|
|
+ data.categoryMold.id = null;
|
|
|
+ data.categoryPallet.id = null;
|
|
|
+ data.categoryQms.id = null;
|
|
|
+ data.categoryVehicle.id = null;
|
|
|
+ data.packageDispositionVOList = data.packageDispositionVOList.map(
|
|
|
+ (item) => {
|
|
|
+ return {
|
|
|
+ ...item,
|
|
|
+ id: null
|
|
|
+ };
|
|
|
+ }
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ addMaterial(data)
|
|
|
+ .then((msg) => {
|
|
|
+ this.loading = false;
|
|
|
+ this.$message.success(msg);
|
|
|
+ reloadPageTab({fullPath: '/material/product'});
|
|
|
+ this.$router.go(-1);
|
|
|
+ })
|
|
|
+ .catch((e) => {
|
|
|
+ this.loading = false;
|
|
|
+ });
|
|
|
+ });
|
|
|
}
|
|
|
- };
|
|
|
+ }
|
|
|
+};
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
- .ele-page-header {
|
|
|
- border: none;
|
|
|
- }
|
|
|
+.ele-page-header {
|
|
|
+ border: none;
|
|
|
+}
|
|
|
+
|
|
|
+.body-top {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ background: #fff;
|
|
|
|
|
|
- .body-top {
|
|
|
+ .top-left {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
- justify-content: space-between;
|
|
|
- background: #fff;
|
|
|
+ justify-content: flex-start;
|
|
|
+ margin-left: -25px;
|
|
|
|
|
|
- .top-left {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: flex-start;
|
|
|
- margin-left: -25px;
|
|
|
-
|
|
|
- .el-form-item {
|
|
|
- margin-bottom: 0;
|
|
|
- }
|
|
|
+ .el-form-item {
|
|
|
+ margin-bottom: 0;
|
|
|
}
|
|
|
}
|
|
|
+}
|
|
|
|
|
|
- .divider {
|
|
|
- margin: 20px 0;
|
|
|
+.divider {
|
|
|
+ margin: 20px 0;
|
|
|
|
|
|
- .title {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- margin-bottom: 10px;
|
|
|
-
|
|
|
- div {
|
|
|
- width: 8px;
|
|
|
- height: 20px;
|
|
|
- margin-right: 10px;
|
|
|
- }
|
|
|
+ .title {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 10px;
|
|
|
|
|
|
- span {
|
|
|
- font-size: 20px;
|
|
|
- }
|
|
|
+ div {
|
|
|
+ width: 8px;
|
|
|
+ height: 20px;
|
|
|
+ margin-right: 10px;
|
|
|
}
|
|
|
|
|
|
- .ele-width {
|
|
|
- width: 100%;
|
|
|
- height: 2px;
|
|
|
+ span {
|
|
|
+ font-size: 20px;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- .form-line {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: space-between;
|
|
|
+ .ele-width {
|
|
|
+ width: 100%;
|
|
|
+ height: 2px;
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
- .line-select {
|
|
|
- margin-left: 15px;
|
|
|
- }
|
|
|
+.form-line {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+
|
|
|
+ .line-select {
|
|
|
+ margin-left: 15px;
|
|
|
}
|
|
|
+}
|
|
|
</style>
|