Merge remote-tracking branch 'origin/0.8.X' into 0.8.X
This commit is contained in:
@@ -76,7 +76,6 @@
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['${moduleName}:${businessName}:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -145,21 +144,18 @@
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['${moduleName}:${businessName}:edit']"
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-plus"
|
||||
@click="handleAdd(scope.row)"
|
||||
v-hasPermi="['${moduleName}:${businessName}:add']"
|
||||
>新增</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['${moduleName}:${businessName}:remove']"
|
||||
>删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@@ -76,7 +76,6 @@
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['${moduleName}:${businessName}:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -87,7 +86,6 @@
|
||||
size="mini"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['${moduleName}:${businessName}:edit']"
|
||||
>修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -98,7 +96,6 @@
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['${moduleName}:${businessName}:remove']"
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -108,7 +105,6 @@
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['${moduleName}:${businessName}:export']"
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
@@ -159,14 +155,12 @@
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['${moduleName}:${businessName}:edit']"
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['${moduleName}:${businessName}:remove']"
|
||||
>删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@@ -74,7 +74,6 @@
|
||||
plain
|
||||
icon="Plus"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['${moduleName}:${businessName}:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -137,9 +136,9 @@
|
||||
#end
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['${moduleName}:${businessName}:edit']">修改</el-button>
|
||||
<el-button link type="primary" icon="Plus" @click="handleAdd(scope.row)" v-hasPermi="['${moduleName}:${businessName}:add']">新增</el-button>
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['${moduleName}:${businessName}:remove']">删除</el-button>
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
|
||||
<el-button link type="primary" icon="Plus" @click="handleAdd(scope.row)">新增</el-button>
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
@@ -73,7 +73,6 @@
|
||||
plain
|
||||
icon="Plus"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['${moduleName}:${businessName}:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -83,7 +82,6 @@
|
||||
icon="Edit"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['${moduleName}:${businessName}:edit']"
|
||||
>修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -93,7 +91,6 @@
|
||||
icon="Delete"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['${moduleName}:${businessName}:remove']"
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -102,7 +99,6 @@
|
||||
plain
|
||||
icon="Download"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['${moduleName}:${businessName}:export']"
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
@@ -148,8 +144,8 @@
|
||||
#end
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['${moduleName}:${businessName}:edit']">修改</el-button>
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['${moduleName}:${businessName}:remove']">删除</el-button>
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
@@ -11,6 +11,10 @@ import ThemePicker from "@/components/ThemePicker";
|
||||
export default {
|
||||
name: "App",
|
||||
components: { ThemePicker },
|
||||
created() {
|
||||
// 应用启动时全局初始化分类数据
|
||||
this.$store.dispatch('category/getCategoryList');
|
||||
},
|
||||
metaInfo() {
|
||||
return {
|
||||
title: this.$store.state.settings.dynamicTitle && this.$store.state.settings.title,
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listCategory } from '@/api/wms/category';
|
||||
import { mapState, mapActions } from 'vuex';
|
||||
|
||||
export default {
|
||||
name: 'CategorySelect',
|
||||
@@ -55,30 +55,29 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
categoryOptions: [],
|
||||
innerValue: this.value
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapState('category', ['categoryList']),
|
||||
categoryOptions() {
|
||||
return this.categoryList.filter(
|
||||
item => item.categoryType === this.categoryType && item.isEnabled === 1
|
||||
);
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
value(val) {
|
||||
this.innerValue = val;
|
||||
},
|
||||
categoryType: {
|
||||
handler() {
|
||||
this.loadOptions();
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.loadOptions();
|
||||
created() {
|
||||
if (!this.categoryList || this.categoryList.length === 0) {
|
||||
this.getCategoryList();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
loadOptions() {
|
||||
listCategory({ categoryType: this.categoryType, isEnabled: 1 }).then(res => {
|
||||
this.categoryOptions = res.rows || [];
|
||||
});
|
||||
},
|
||||
...mapActions('category', ['getCategoryList']),
|
||||
onChange(val) {
|
||||
this.$emit('input', val);
|
||||
this.$emit('change', val);
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
<template>
|
||||
<span v-if="category">
|
||||
<slot :category="category">
|
||||
{{ category.categoryName }}
|
||||
</slot>
|
||||
</span>
|
||||
<span v-else>--</span>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapState } from 'vuex';
|
||||
|
||||
export default {
|
||||
name: 'CategoryRenderer',
|
||||
props: {
|
||||
categoryId: {
|
||||
type: [String, Number],
|
||||
required: true
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapState('category', ['categoryList']),
|
||||
category() {
|
||||
return this.categoryList.find(cat => String(cat.categoryId) === String(this.categoryId));
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
@@ -6,6 +6,7 @@ import user from './modules/user'
|
||||
import tagsView from './modules/tagsView'
|
||||
import permission from './modules/permission'
|
||||
import settings from './modules/settings'
|
||||
import category from './modules/category'
|
||||
import getters from './getters'
|
||||
|
||||
Vue.use(Vuex)
|
||||
@@ -17,7 +18,8 @@ const store = new Vuex.Store({
|
||||
user,
|
||||
tagsView,
|
||||
permission,
|
||||
settings
|
||||
settings,
|
||||
category
|
||||
},
|
||||
getters
|
||||
})
|
||||
|
||||
30
klp-ui/src/store/modules/category.js
Normal file
30
klp-ui/src/store/modules/category.js
Normal file
@@ -0,0 +1,30 @@
|
||||
import { listCategory } from '@/api/wms/category';
|
||||
|
||||
const state = {
|
||||
categoryList: []
|
||||
};
|
||||
|
||||
const mutations = {
|
||||
SET_CATEGORY_LIST(state, list) {
|
||||
state.categoryList = list;
|
||||
}
|
||||
};
|
||||
|
||||
const actions = {
|
||||
getCategoryList({ state, commit }) {
|
||||
if (state.categoryList.length > 0) {
|
||||
return Promise.resolve(state.categoryList);
|
||||
}
|
||||
return listCategory().then(res => {
|
||||
commit('SET_CATEGORY_LIST', res.rows || []);
|
||||
return res.rows || [];
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
export default {
|
||||
namespaced: true,
|
||||
state,
|
||||
mutations,
|
||||
actions
|
||||
};
|
||||
@@ -47,7 +47,6 @@
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['demo:demo:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -58,7 +57,6 @@
|
||||
size="mini"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['demo:demo:edit']"
|
||||
>修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -69,7 +67,6 @@
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['demo:demo:remove']"
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -79,7 +76,6 @@
|
||||
icon="el-icon-upload2"
|
||||
size="mini"
|
||||
@click="handleImport"
|
||||
v-hasPermi="['demo:demo:import']"
|
||||
>导入(校验)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -89,7 +85,6 @@
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['demo:demo:export']"
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
|
||||
@@ -11,14 +11,6 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="分类编码" prop="categoryCode">
|
||||
<el-input
|
||||
v-model="queryParams.categoryCode"
|
||||
placeholder="请输入分类编码"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="分类名称" prop="categoryName">
|
||||
<el-input
|
||||
v-model="queryParams.categoryName"
|
||||
@@ -27,14 +19,6 @@
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="分类描述" prop="categoryDesc">
|
||||
<el-input
|
||||
v-model="queryParams.categoryDesc"
|
||||
placeholder="请输入分类描述"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否启用" prop="isEnabled">
|
||||
<el-select v-model="queryParams.isEnabled" placeholder="请选择是否启用" clearable>
|
||||
<el-option
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['klp:order:add']"
|
||||
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -50,7 +50,7 @@
|
||||
size="mini"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['klp:order:edit']"
|
||||
|
||||
>修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -61,7 +61,7 @@
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['klp:order:remove']"
|
||||
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -71,7 +71,7 @@
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['klp:order:export']"
|
||||
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
@@ -96,14 +96,14 @@
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['klp:order:edit']"
|
||||
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['klp:order:remove']"
|
||||
|
||||
>删除</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['klp:product:add']"
|
||||
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -94,7 +94,7 @@
|
||||
size="mini"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['klp:product:edit']"
|
||||
|
||||
>修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -105,7 +105,7 @@
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['klp:product:remove']"
|
||||
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -115,7 +115,7 @@
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['klp:product:export']"
|
||||
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
@@ -123,14 +123,29 @@
|
||||
|
||||
<el-table v-loading="loading" :data="productList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="主键ID" align="center" prop="productId" v-if="true"/>
|
||||
<el-table-column label="产品编号" align="center" prop="productCode" />
|
||||
<el-table-column label="产品名称" align="center" prop="productName" />
|
||||
<el-table-column label="负责人" align="center" prop="owner" />
|
||||
<el-table-column label="基础材质分类ID" align="center" prop="baseMaterialId" />
|
||||
<el-table-column label="表面处理分类ID" align="center" prop="surfaceTreatmentId" />
|
||||
<el-table-column label="客户需求分类ID" align="center" prop="customerReqId" />
|
||||
<el-table-column label="包装分类ID" align="center" prop="packagingId" />
|
||||
<el-table-column label="基础材质分类" align="center">
|
||||
<template slot-scope="scope">
|
||||
<CategoryRenderer :category-id="scope.row.baseMaterialId" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="表面处理分类" align="center">
|
||||
<template slot-scope="scope">
|
||||
<CategoryRenderer :category-id="scope.row.surfaceTreatmentId" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="客户需求分类" align="center">
|
||||
<template slot-scope="scope">
|
||||
<CategoryRenderer :category-id="scope.row.customerReqId" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="包装分类" align="center">
|
||||
<template slot-scope="scope">
|
||||
<CategoryRenderer :category-id="scope.row.packagingId" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="厚度" align="center" prop="thickness" />
|
||||
<el-table-column label="宽度" align="center" prop="width" />
|
||||
<el-table-column label="内径" align="center" prop="innerDiameter" />
|
||||
@@ -142,14 +157,14 @@
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['klp:product:edit']"
|
||||
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['klp:product:remove']"
|
||||
|
||||
>删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -211,11 +226,13 @@
|
||||
<script>
|
||||
import { listProduct, getProduct, delProduct, addProduct, updateProduct } from "@/api/wms/product";
|
||||
import CategorySelect from '@/components/KLPService/CategorySelect';
|
||||
import CategoryRenderer from '@/components/KLPService/Renderer/CategoryRenderer.vue';
|
||||
|
||||
export default {
|
||||
name: "Product",
|
||||
components: {
|
||||
CategorySelect
|
||||
CategorySelect,
|
||||
CategoryRenderer
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
@@ -1,20 +1,12 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="产品ID" prop="productId">
|
||||
<el-form-item label="产品" prop="productId">
|
||||
<ProductSelect v-model="queryParams.productId" placeholder="请选择产品" />
|
||||
</el-form-item>
|
||||
<el-form-item label="原材料ID" prop="rawMaterialId">
|
||||
<el-form-item label="原材料" prop="rawMaterialId">
|
||||
<RawMaterialSelect v-model="queryParams.rawMaterialId" placeholder="请选择原材料" />
|
||||
</el-form-item>
|
||||
<el-form-item label="每个产品所需原材料数量" prop="quantity">
|
||||
<el-input
|
||||
v-model="queryParams.quantity"
|
||||
placeholder="请输入每个产品所需原材料数量"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="单位" prop="unit">
|
||||
<el-input
|
||||
v-model="queryParams.unit"
|
||||
@@ -37,7 +29,6 @@
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['wms:productBom:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -48,7 +39,6 @@
|
||||
size="mini"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['wms:productBom:edit']"
|
||||
>修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -59,7 +49,6 @@
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['wms:productBom:remove']"
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -69,7 +58,6 @@
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['wms:productBom:export']"
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
@@ -77,10 +65,9 @@
|
||||
|
||||
<el-table v-loading="loading" :data="productBomList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="BOM主键ID" align="center" prop="bomId" v-if="true"/>
|
||||
<el-table-column label="产品ID" align="center" prop="productId" />
|
||||
<el-table-column label="原材料ID" align="center" prop="rawMaterialId" />
|
||||
<el-table-column label="每个产品所需原材料数量" align="center" prop="quantity" />
|
||||
<el-table-column label="产品" align="center" prop="productName" />
|
||||
<el-table-column label="原材料" align="center" prop="rawMaterialName" />
|
||||
<el-table-column label="原材料数量" align="center" prop="quantity" />
|
||||
<el-table-column label="单位" align="center" prop="unit" />
|
||||
<el-table-column label="备注" align="center" prop="remark" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
@@ -90,14 +77,12 @@
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['wms:productBom:edit']"
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['wms:productBom:remove']"
|
||||
>删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -113,14 +98,14 @@
|
||||
|
||||
<!-- 添加或修改产品BOM(产品-原材料清单)对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="产品ID" prop="productId">
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
|
||||
<el-form-item label="产品" prop="productId">
|
||||
<ProductSelect v-model="form.productId" placeholder="请选择产品" />
|
||||
</el-form-item>
|
||||
<el-form-item label="原材料ID" prop="rawMaterialId">
|
||||
<el-form-item label="原材料" prop="rawMaterialId">
|
||||
<RawMaterialSelect v-model="form.rawMaterialId" placeholder="请选择原材料" />
|
||||
</el-form-item>
|
||||
<el-form-item label="每个产品所需原材料数量" prop="quantity">
|
||||
<el-form-item label="原材料数量" prop="quantity">
|
||||
<el-input v-model="form.quantity" placeholder="请输入每个产品所需原材料数量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="单位" prop="unit">
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
|
||||
<el-form-item label="原材料编号" prop="rawMaterialCode">
|
||||
<el-input
|
||||
v-model="queryParams.rawMaterialCode"
|
||||
@@ -36,6 +36,7 @@
|
||||
<el-form-item label="基础材质分类" prop="baseMaterialId">
|
||||
<CategorySelect
|
||||
v-model="queryParams.baseMaterialId"
|
||||
category-type="base_material"
|
||||
placeholder="请选择基础材质分类"
|
||||
clearable
|
||||
/>
|
||||
@@ -43,74 +44,11 @@
|
||||
<el-form-item label="表面处理分类" prop="surfaceTreatmentId">
|
||||
<CategorySelect
|
||||
v-model="queryParams.surfaceTreatmentId"
|
||||
category-type="surface_treatment"
|
||||
placeholder="请选择表面处理分类"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="厚度" prop="thickness">
|
||||
<el-input
|
||||
v-model="queryParams.thickness"
|
||||
placeholder="请输入厚度"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="厚度偏差" prop="thicknessDeviation">
|
||||
<el-input
|
||||
v-model="queryParams.thicknessDeviation"
|
||||
placeholder="请输入厚度偏差"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="宽度" prop="width">
|
||||
<el-input
|
||||
v-model="queryParams.width"
|
||||
placeholder="请输入宽度"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="目标冷轧宽度" prop="targetColdWidth">
|
||||
<el-input
|
||||
v-model="queryParams.targetColdWidth"
|
||||
placeholder="请输入目标冷轧宽度"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="目标冷轧厚度" prop="targetColdThickness">
|
||||
<el-input
|
||||
v-model="queryParams.targetColdThickness"
|
||||
placeholder="请输入目标冷轧厚度"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="凸度" prop="crown">
|
||||
<el-input
|
||||
v-model="queryParams.crown"
|
||||
placeholder="请输入凸度"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="卷重" prop="coilWeight">
|
||||
<el-input
|
||||
v-model="queryParams.coilWeight"
|
||||
placeholder="请输入卷重"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="表面质量" prop="surfaceQuality">
|
||||
<el-input
|
||||
v-model="queryParams.surfaceQuality"
|
||||
placeholder="请输入表面质量"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否启用" prop="isEnabled">
|
||||
<el-input
|
||||
v-model="queryParams.isEnabled"
|
||||
@@ -133,7 +71,7 @@
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['klp:rawMaterial:add']"
|
||||
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -144,7 +82,7 @@
|
||||
size="mini"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['klp:rawMaterial:edit']"
|
||||
|
||||
>修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -155,7 +93,7 @@
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['klp:rawMaterial:remove']"
|
||||
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -165,7 +103,7 @@
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['klp:rawMaterial:export']"
|
||||
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
@@ -178,20 +116,21 @@
|
||||
<el-table-column label="原材料名称" align="center" prop="rawMaterialName" />
|
||||
<el-table-column label="钢种/牌号" align="center" prop="steelGrade" />
|
||||
<el-table-column label="目标冷轧牌号" align="center" prop="targetColdGrade" />
|
||||
<el-table-column label="基础材质分类ID" align="center" prop="baseMaterialId" />
|
||||
<el-table-column label="表面处理分类ID" align="center" prop="surfaceTreatmentId" />
|
||||
<el-table-column label="厚度" align="center" prop="thickness" />
|
||||
<el-table-column label="厚度偏差" align="center" prop="thicknessDeviation" />
|
||||
<el-table-column label="宽度" align="center" prop="width" />
|
||||
<el-table-column label="目标冷轧宽度" align="center" prop="targetColdWidth" />
|
||||
<el-table-column label="目标冷轧厚度" align="center" prop="targetColdThickness" />
|
||||
<el-table-column label="凸度" align="center" prop="crown" />
|
||||
<el-table-column label="卷重" align="center" prop="coilWeight" />
|
||||
<el-table-column label="表面质量" align="center" prop="surfaceQuality" />
|
||||
<el-table-column label="基础材质分类" align="center">
|
||||
<template slot-scope="scope">
|
||||
<CategoryRenderer :category-id="scope.row.baseMaterialId" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="表面处理分类" align="center">
|
||||
<template slot-scope="scope">
|
||||
<CategoryRenderer :category-id="scope.row.surfaceTreatmentId" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="是否启用" align="center" prop="isEnabled" />
|
||||
<el-table-column label="备注" align="center" prop="remark" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" icon="el-icon-info" @click="showParamDetail(scope.row)">参数详情</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
@@ -217,8 +156,8 @@
|
||||
/>
|
||||
|
||||
<!-- 添加或修改原材料对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
||||
<el-form-item label="原材料编号" prop="rawMaterialCode">
|
||||
<el-input v-model="form.rawMaterialCode" placeholder="请输入原材料编号" />
|
||||
</el-form-item>
|
||||
@@ -231,62 +170,112 @@
|
||||
<el-form-item label="目标冷轧牌号" prop="targetColdGrade">
|
||||
<el-input v-model="form.targetColdGrade" placeholder="请输入目标冷轧牌号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="基础材质分类" prop="baseMaterialId">
|
||||
<CategorySelect v-model="form.baseMaterialId" categoryType="base_material" placeholder="请选择基础材质分类" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="表面处理分类" prop="surfaceTreatmentId">
|
||||
<CategorySelect v-model="form.surfaceTreatmentId" categoryType="surface_treatment" placeholder="请选择表面处理分类" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="厚度" prop="thickness">
|
||||
<el-input v-model="form.thickness" placeholder="请输入厚度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="厚度偏差" prop="thicknessDeviation">
|
||||
<el-input v-model="form.thicknessDeviation" placeholder="请输入厚度偏差" />
|
||||
</el-form-item>
|
||||
<el-form-item label="宽度" prop="width">
|
||||
<el-input v-model="form.width" placeholder="请输入宽度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="目标冷轧宽度" prop="targetColdWidth">
|
||||
<el-input v-model="form.targetColdWidth" placeholder="请输入目标冷轧宽度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="目标冷轧厚度" prop="targetColdThickness">
|
||||
<el-input v-model="form.targetColdThickness" placeholder="请输入目标冷轧厚度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="凸度" prop="crown">
|
||||
<el-input v-model="form.crown" placeholder="请输入凸度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="卷重" prop="coilWeight">
|
||||
<el-input v-model="form.coilWeight" placeholder="请输入卷重" />
|
||||
</el-form-item>
|
||||
<el-form-item label="表面质量" prop="surfaceQuality">
|
||||
<el-input v-model="form.surfaceQuality" placeholder="请输入表面质量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="检测结论" prop="inspectionResult">
|
||||
<el-input v-model="form.inspectionResult" placeholder="请输入检测结论" />
|
||||
</el-form-item>
|
||||
<!-- 基础材质分类和表面处理分类同一行 -->
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="基础材质分类" prop="baseMaterialId">
|
||||
<CategorySelect v-model="form.baseMaterialId" category-type="base_material" placeholder="请选择基础材质分类" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="表面处理分类" prop="surfaceTreatmentId">
|
||||
<CategorySelect v-model="form.surfaceTreatmentId" category-type="surface_treatment" placeholder="请选择表面处理分类" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-form-item label="是否启用" prop="isEnabled">
|
||||
<el-input v-model="form.isEnabled" placeholder="请输入是否启用" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
|
||||
<el-collapse>
|
||||
<el-collapse-item title="详细参数">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="厚度" prop="thickness">
|
||||
<el-input v-model="form.thickness" placeholder="请输入厚度" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="厚度偏差" prop="thicknessDeviation">
|
||||
<el-input v-model="form.thicknessDeviation" placeholder="请输入厚度偏差" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="宽度" prop="width">
|
||||
<el-input v-model="form.width" placeholder="请输入宽度" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="目标冷轧宽度" prop="targetColdWidth">
|
||||
<el-input v-model="form.targetColdWidth" placeholder="请输入目标冷轧宽度" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="目标冷轧厚度" prop="targetColdThickness">
|
||||
<el-input v-model="form.targetColdThickness" placeholder="请输入目标冷轧厚度" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="凸度" prop="crown">
|
||||
<el-input v-model="form.crown" placeholder="请输入凸度" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="卷重" prop="coilWeight">
|
||||
<el-input v-model="form.coilWeight" placeholder="请输入卷重" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="表面质量" prop="surfaceQuality">
|
||||
<el-input v-model="form.surfaceQuality" placeholder="请输入表面质量" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog title="参数详情" :visible.sync="paramDialogVisible" width="400px">
|
||||
<el-descriptions v-if="paramRow" :column="1" border>
|
||||
<el-descriptions-item label="厚度">{{ paramRow.thickness || '--' }}</el-descriptions-item>
|
||||
<el-descriptions-item label="厚度偏差">{{ paramRow.thicknessDeviation || '--' }}</el-descriptions-item>
|
||||
<el-descriptions-item label="宽度">{{ paramRow.width || '--' }}</el-descriptions-item>
|
||||
<el-descriptions-item label="目标冷轧宽度">{{ paramRow.targetColdWidth || '--' }}</el-descriptions-item>
|
||||
<el-descriptions-item label="目标冷轧厚度">{{ paramRow.targetColdThickness || '--' }}</el-descriptions-item>
|
||||
<el-descriptions-item label="凸度">{{ paramRow.crown || '--' }}</el-descriptions-item>
|
||||
<el-descriptions-item label="卷重">{{ paramRow.coilWeight || '--' }}</el-descriptions-item>
|
||||
<el-descriptions-item label="表面质量">{{ paramRow.surfaceQuality || '--' }}</el-descriptions-item>
|
||||
<!-- 其它参数可继续追加 -->
|
||||
</el-descriptions>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listRawMaterial, getRawMaterial, delRawMaterial, addRawMaterial, updateRawMaterial } from "@/api/wms/rawMaterial";
|
||||
import CategorySelect from "@/components/KLPService/CategorySelect/index.vue";
|
||||
import CategoryRenderer from '@/components/KLPService/Renderer/CategoryRenderer.vue';
|
||||
|
||||
export default {
|
||||
name: "RawMaterial",
|
||||
components: {
|
||||
CategorySelect
|
||||
CategorySelect,
|
||||
CategoryRenderer
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -389,7 +378,9 @@ export default {
|
||||
isEnabled: [
|
||||
{ required: true, message: "是否启用不能为空", trigger: "blur" }
|
||||
],
|
||||
}
|
||||
},
|
||||
paramDialogVisible: false,
|
||||
paramRow: null,
|
||||
};
|
||||
},
|
||||
created() {
|
||||
@@ -524,6 +515,10 @@ export default {
|
||||
this.download('wms/rawMaterial/export', {
|
||||
...this.queryParams
|
||||
}, `rawMaterial_${new Date().getTime()}.xlsx`)
|
||||
},
|
||||
showParamDetail(row) {
|
||||
this.paramRow = row;
|
||||
this.paramDialogVisible = true;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['klp:schedulePlan:add']"
|
||||
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -42,7 +42,7 @@
|
||||
size="mini"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['klp:schedulePlan:edit']"
|
||||
|
||||
>修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -53,7 +53,7 @@
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['klp:schedulePlan:remove']"
|
||||
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -63,7 +63,7 @@
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['klp:schedulePlan:export']"
|
||||
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
@@ -89,14 +89,14 @@
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['klp:schedulePlan:edit']"
|
||||
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['klp:schedulePlan:remove']"
|
||||
|
||||
>删除</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
|
||||
@@ -1,235 +1,234 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="仓库/库区/库位ID" prop="warehouseId">
|
||||
<warehouse-select
|
||||
v-model="queryParams.warehouseId"
|
||||
placeholder="请选择仓库/库区/库位"
|
||||
style="width: 100%;"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="物品类型" prop="itemType">
|
||||
<el-select v-model="queryParams.itemType" placeholder="请选择物品类型" clearable>
|
||||
<el-option
|
||||
v-for="dict in dict.type.stock_item_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
<div class="app-container stock-layout">
|
||||
<el-row gutter="0">
|
||||
<!-- 左侧树结构 -->
|
||||
<el-col :span="5" class="stock-tree-col">
|
||||
<el-card shadow="never" class="stock-tree-card">
|
||||
<div slot="header" class="stock-tree-title">仓库结构</div>
|
||||
<el-tree
|
||||
:data="warehouseTreeData"
|
||||
:props="treeProps"
|
||||
node-key="warehouseId"
|
||||
highlight-current
|
||||
@node-click="handleTreeSelect"
|
||||
:expand-on-click-node="false"
|
||||
:default-expand-all="true"
|
||||
class="stock-tree"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="物品ID" prop="itemId">
|
||||
<raw-material-select
|
||||
v-if="queryParams.itemType === 'rawMaterial'"
|
||||
v-model="queryParams.itemId"
|
||||
placeholder="请选择原材料"
|
||||
style="width: 100%;"
|
||||
clearable
|
||||
/>
|
||||
<product-select
|
||||
v-else-if="queryParams.itemType === 'product'"
|
||||
v-model="queryParams.itemId"
|
||||
placeholder="请选择产品"
|
||||
style="width: 100%;"
|
||||
clearable
|
||||
/>
|
||||
<el-input
|
||||
v-else
|
||||
v-model="queryParams.itemId"
|
||||
placeholder="请先选择物品类型"
|
||||
:disabled="true"
|
||||
style="width: 100%;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="库存数量" prop="quantity">
|
||||
<el-input
|
||||
v-model="queryParams.quantity"
|
||||
placeholder="请输入库存数量"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="单位" prop="unit">
|
||||
<el-input
|
||||
v-model="queryParams.unit"
|
||||
placeholder="请输入单位"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="批次号" prop="batchNo">
|
||||
<el-input
|
||||
v-model="queryParams.batchNo"
|
||||
placeholder="请输入批次号"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<!-- 右侧内容 -->
|
||||
<el-col :span="19" class="stock-main-col">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<!-- 移除仓库筛选项 -->
|
||||
<el-form-item label="物品类型" prop="itemType">
|
||||
<el-select v-model="queryParams.itemType" placeholder="请选择物品类型" clearable>
|
||||
<el-option
|
||||
v-for="dict in dict.type.stock_item_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="物料" prop="itemId">
|
||||
<raw-material-select
|
||||
v-if="queryParams.itemType === 'rawMaterial'"
|
||||
v-model="queryParams.itemId"
|
||||
placeholder="请选择原材料"
|
||||
style="width: 100%;"
|
||||
clearable
|
||||
/>
|
||||
<product-select
|
||||
v-else-if="queryParams.itemType === 'product'"
|
||||
v-model="queryParams.itemId"
|
||||
placeholder="请选择产品"
|
||||
style="width: 100%;"
|
||||
clearable
|
||||
/>
|
||||
<el-input
|
||||
v-else
|
||||
v-model="queryParams.itemId"
|
||||
placeholder="请先选择物品类型"
|
||||
:disabled="true"
|
||||
style="width: 100%;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="单位" prop="unit">
|
||||
<el-input
|
||||
v-model="queryParams.unit"
|
||||
placeholder="请输入单位"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['wms:stock:add']"
|
||||
>新增</el-button>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['wms:stock:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="el-icon-edit"
|
||||
size="mini"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['wms:stock:edit']"
|
||||
>修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="el-icon-delete"
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['wms:stock:remove']"
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['wms:stock:export']"
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="stockList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="主键ID" align="center" prop="stockId" v-if="true"/>
|
||||
<el-table-column label="物品类型" align="center" prop="itemType">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.stock_item_type" :value="scope.row.itemType"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="物品" align="center" prop="itemName" />
|
||||
<el-table-column label="物品编号" align="center" prop="itemCode" />
|
||||
<el-table-column label="库存数量" align="center" prop="quantity" />
|
||||
<el-table-column label="单位" align="center" prop="unit" />
|
||||
<el-table-column label="批次号" align="center" prop="batchNo" />
|
||||
<el-table-column label="备注" align="center" prop="remark" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['wms:stock:edit']"
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['wms:stock:remove']"
|
||||
>删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改库存对话框(保持不变) -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="仓库/库区/库位ID" prop="warehouseId">
|
||||
<warehouse-select
|
||||
v-model="form.warehouseId"
|
||||
placeholder="请选择仓库/库区/库位"
|
||||
style="width: 100%;"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="物品类型" prop="itemType">
|
||||
<el-select v-model="form.itemType" placeholder="请选择物品类型">
|
||||
<el-option
|
||||
v-for="dict in dict.type.stock_item_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="物品ID" prop="itemId">
|
||||
<raw-material-select
|
||||
v-if="form.itemType === 'rawMaterial'"
|
||||
v-model="form.itemId"
|
||||
placeholder="请选择原材料"
|
||||
style="width: 100%;"
|
||||
clearable
|
||||
/>
|
||||
<product-select
|
||||
v-else-if="form.itemType === 'product'"
|
||||
v-model="form.itemId"
|
||||
placeholder="请选择产品"
|
||||
style="width: 100%;"
|
||||
clearable
|
||||
/>
|
||||
<el-input
|
||||
v-else
|
||||
v-model="form.itemId"
|
||||
placeholder="请先选择物品类型"
|
||||
:disabled="true"
|
||||
style="width: 100%;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="库存数量" prop="quantity">
|
||||
<el-input v-model="form.quantity" placeholder="请输入库存数量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="单位" prop="unit">
|
||||
<el-input v-model="form.unit" placeholder="请输入单位" />
|
||||
</el-form-item>
|
||||
<el-form-item label="批次号" prop="batchNo">
|
||||
<el-input v-model="form.batchNo" placeholder="请输入批次号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="el-icon-edit"
|
||||
size="mini"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['wms:stock:edit']"
|
||||
>修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="el-icon-delete"
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['wms:stock:remove']"
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['wms:stock:export']"
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="stockList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="主键ID" align="center" prop="stockId" v-if="true"/>
|
||||
<el-table-column label="仓库/库区/库位ID" align="center" prop="warehouseId" />
|
||||
<el-table-column label="物品类型" align="center" prop="itemType">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.stock_item_type" :value="scope.row.itemType"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="物品ID" align="center" prop="itemId" />
|
||||
<el-table-column label="库存数量" align="center" prop="quantity" />
|
||||
<el-table-column label="单位" align="center" prop="unit" />
|
||||
<el-table-column label="批次号" align="center" prop="batchNo" />
|
||||
<el-table-column label="备注" align="center" prop="remark" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['wms:stock:edit']"
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['wms:stock:remove']"
|
||||
>删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改库存:原材料/产品与库区/库位的存放关系对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="仓库/库区/库位ID" prop="warehouseId">
|
||||
<warehouse-select
|
||||
v-model="form.warehouseId"
|
||||
placeholder="请选择仓库/库区/库位"
|
||||
style="width: 100%;"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="物品类型" prop="itemType">
|
||||
<el-select v-model="form.itemType" placeholder="请选择物品类型">
|
||||
<el-option
|
||||
v-for="dict in dict.type.stock_item_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="物品ID" prop="itemId">
|
||||
<raw-material-select
|
||||
v-if="form.itemType === 'rawMaterial'"
|
||||
v-model="form.itemId"
|
||||
placeholder="请选择原材料"
|
||||
style="width: 100%;"
|
||||
clearable
|
||||
/>
|
||||
<product-select
|
||||
v-else-if="form.itemType === 'product'"
|
||||
v-model="form.itemId"
|
||||
placeholder="请选择产品"
|
||||
style="width: 100%;"
|
||||
clearable
|
||||
/>
|
||||
<el-input
|
||||
v-else
|
||||
v-model="form.itemId"
|
||||
placeholder="请先选择物品类型"
|
||||
:disabled="true"
|
||||
style="width: 100%;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="库存数量" prop="quantity">
|
||||
<el-input v-model="form.quantity" placeholder="请输入库存数量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="单位" prop="unit">
|
||||
<el-input v-model="form.unit" placeholder="请输入单位" />
|
||||
</el-form-item>
|
||||
<el-form-item label="批次号" prop="batchNo">
|
||||
<el-input v-model="form.batchNo" placeholder="请输入批次号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listStock, getStock, delStock, addStock, updateStock } from "@/api/wms/stock";
|
||||
import WarehouseSelect from "@/components/WarehouseSelect";
|
||||
import { listWarehouse } from "@/api/wms/warehouse";
|
||||
import RawMaterialSelect from "@/components/KLPService/RawMaterialSelect";
|
||||
import ProductSelect from "@/components/KLPService/ProductSelect";
|
||||
import WarehouseSelect from "@/components/WarehouseSelect";
|
||||
|
||||
export default {
|
||||
name: "Stock",
|
||||
@@ -294,10 +293,18 @@ export default {
|
||||
batchNo: [
|
||||
{ required: true, message: "批次号不能为空", trigger: "blur" }
|
||||
],
|
||||
}
|
||||
},
|
||||
// 仓库树数据
|
||||
warehouseTreeData: [],
|
||||
treeProps: {
|
||||
children: 'children',
|
||||
label: 'warehouseName',
|
||||
isLeaf: () => false
|
||||
},
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getWarehouseTree();
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
@@ -310,6 +317,27 @@ export default {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 获取仓库树数据
|
||||
getWarehouseTree() {
|
||||
listWarehouse().then(response => {
|
||||
this.warehouseTreeData = this.handleTree(response.data, 'warehouseId', 'parentId');
|
||||
});
|
||||
},
|
||||
// 处理树结构
|
||||
handleTree(data, id, parentId) {
|
||||
const cloneData = JSON.parse(JSON.stringify(data));
|
||||
return cloneData.filter(father => {
|
||||
const branchArr = cloneData.filter(child => father[id] === child[parentId]);
|
||||
if (branchArr.length > 0) father.children = branchArr;
|
||||
return father[parentId] === 0 || father[parentId] === null;
|
||||
});
|
||||
},
|
||||
// 树节点点击
|
||||
handleTreeSelect(node) {
|
||||
this.queryParams.warehouseId = node.warehouseId;
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
@@ -417,3 +445,37 @@ export default {
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.stock-layout {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
.stock-tree-col {
|
||||
min-width: 220px;
|
||||
max-width: 300px;
|
||||
background: #fff;
|
||||
border-right: 1px solid #f0f0f0;
|
||||
height: 100%;
|
||||
padding-right: 0;
|
||||
}
|
||||
.stock-tree-card {
|
||||
height: 100%;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
.stock-tree-title {
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
padding: 8px 0;
|
||||
}
|
||||
.stock-tree {
|
||||
min-height: 500px;
|
||||
max-height: 80vh;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.stock-main-col {
|
||||
padding-left: 24px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="出入库单号" prop="stockIoCode" style="min-width:200px;max-width:220px;">
|
||||
<el-form-item label="单号" prop="stockIoCode">
|
||||
<el-input
|
||||
v-model="queryParams.stockIoCode"
|
||||
placeholder="请输入出入库单号"
|
||||
@@ -50,7 +50,7 @@
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['klp:stockIo:add']"
|
||||
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -61,7 +61,7 @@
|
||||
size="mini"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['klp:stockIo:edit']"
|
||||
|
||||
>修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -72,7 +72,7 @@
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['klp:stockIo:remove']"
|
||||
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -82,7 +82,7 @@
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['klp:stockIo:export']"
|
||||
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
@@ -121,14 +121,14 @@
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['klp:stockIo:edit']"
|
||||
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['klp:stockIo:remove']"
|
||||
|
||||
>删除</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
:disabled="stockIo.status >= 2"
|
||||
v-hasPermi="['klp:stockIoDetail:add']"
|
||||
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -42,7 +42,7 @@
|
||||
size="mini"
|
||||
:disabled="single || stockIo.status >= 2"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['klp:stockIoDetail:edit']"
|
||||
|
||||
>修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -53,7 +53,7 @@
|
||||
size="mini"
|
||||
:disabled="multiple || stockIo.status >= 2"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['klp:stockIoDetail:remove']"
|
||||
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@@ -63,7 +63,7 @@
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['klp:stockIoDetail:export']"
|
||||
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
@@ -92,7 +92,7 @@
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
:disabled="stockIo.status >= 2"
|
||||
v-hasPermi="['klp:stockIoDetail:edit']"
|
||||
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
@@ -100,7 +100,7 @@
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
:disabled="stockIo.status >= 2"
|
||||
v-hasPermi="['klp:stockIoDetail:remove']"
|
||||
|
||||
>删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['klp:warehouse:add']"
|
||||
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
|
||||
Reference in New Issue
Block a user