fix:首页表格样式调整(跟随页面大小调整)。客户管理和供应商管理TAB栏里面的编码添加超链接,跳转到详情页

This commit is contained in:
zhangxuanming 2025-02-05 16:51:02 +08:00
parent 8ce9df6eb6
commit 4995e9bf2f
12 changed files with 782 additions and 41 deletions

View File

@ -260,7 +260,49 @@ export const dynamicRoutes = [
meta: {title: '打印模板编辑',activeMenu: '/print/printtemplate/edit'} meta: {title: '打印模板编辑',activeMenu: '/print/printtemplate/edit'}
} }
] ]
} },
{
path: '/mes/md/item',
component: Layout,
hidden: true,
permissions: ['mes:md:mditem:edit'],
children: [
{
path: 'form',
component: () => import('@/views/mes/md/mditem/form.vue'),
name: 'itemForm',
meta: { title: '物料详情', activeMenu: '/mes/md/item/form' }
}
]
},
{
path: '/mes/wm/purchaseInventory',
component: Layout,
hidden: true,
permissions: ['mes:wm:itemrecpt:edit'],
children: [
{
path: 'form',
component: () => import('@/views/mes/wm/itemrecpt/form.vue'),
name: 'itemrecptForm',
meta: { title: '采购入库详情', activeMenu: '/mes/wm/itemrecpt/form' }
}
]
},
{
path: '/mes/wm/saleOutbound',
component: Layout,
hidden: true,
children: [
{
path: 'form',
component: () => import('@/views/mes/wm/productsalse/form.vue'),
name: 'productsalseForm',
meta: { title: '销售出库详情', activeMenu: '/mes/wm/productsalse/form' }
}
]
},
] ]
// 防止连续点击多次路由报错 // 防止连续点击多次路由报错

View File

@ -24,23 +24,18 @@
>{{scope.row.workorderCode}}</el-button> >{{scope.row.workorderCode}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="订单编号" width="140" align="center" prop="sourceCode" /> <el-table-column label="订单编号" align="center" prop="sourceCode" />
<el-table-column label="工单名称" width="140" align="center" prop="workorderName" :show-overflow-tooltip="true"/> <el-table-column label="工单名称" align="center" prop="workorderName" :show-overflow-tooltip="true"/>
<el-table-column label="产品编号" width="120" align="center" prop="productCode" /> <el-table-column label="产品编号" width="120" align="center" prop="productCode" />
<el-table-column label="产品名称" width="250px" align="center" prop="productName" :show-overflow-tooltip="true"/> <el-table-column label="产品名称" align="center" prop="productName" :show-overflow-tooltip="true"/>
<el-table-column label="规格型号" width="140" align="center" prop="productSpc" :show-overflow-tooltip="true"/> <el-table-column label="规格型号" width="140" align="center" prop="productSpc" :show-overflow-tooltip="true"/>
<el-table-column label="单位" width="140" align="center" prop="unitOfMeasure" /> <el-table-column label="单位" width="140" align="center" prop="unitOfMeasure" />
<!-- <el-table-column label="生产进度" align="center" width="200px" >--> <el-table-column label="需求日期" align="center" prop="requestDate">
<!-- <template slot-scope="scope">-->
<!-- <el-progress :text-inside="true" :stroke-width="20" :percentage="parseFloat(((scope.row.quantityProduced/scope.row.quantity*100).toFixed(2)))>100?100:parseFloat(((scope.row.quantityProduced/scope.row.quantity*100).toFixed(2)))"></el-progress>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="需求日期" width="140" align="center" prop="requestDate">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.requestDate, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.requestDate, '{y}-{m}-{d}') }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="工序进度" align="center" width="200"> <el-table-column label="工序进度" align="center" width="250">
<template slot-scope="scope"> <template slot-scope="scope">
<div style="display: flex;width: 100%;overflow:auto;"> <div style="display: flex;width: 100%;overflow:auto;">
<div v-for="(item, index) in scope.row.routeHomg" style="flex-shrink: 0;"> <div v-for="(item, index) in scope.row.routeHomg" style="flex-shrink: 0;">

View File

@ -1,7 +1,15 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-table v-loading="loading" :data="itemList"> <el-table v-loading="loading" :data="itemList">
<el-table-column label="物料编码" align="center" width="120px" prop="itemCode" /> <el-table-column label="物料编码" align="center" width="120px" prop="itemCode">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
@click="handleView(scope.row)"
>{{scope.row.itemCode}}</el-button>
</template>
</el-table-column>
<el-table-column label="物料名称" align="center" prop="itemName" :show-overflow-tooltip="true"/> <el-table-column label="物料名称" align="center" prop="itemName" :show-overflow-tooltip="true"/>
<el-table-column label="规格型号" align="center" prop="specification" :show-overflow-tooltip="true"/> <el-table-column label="规格型号" align="center" prop="specification" :show-overflow-tooltip="true"/>
<el-table-column label="单位" align="center" prop="unitOfMeasure" /> <el-table-column label="单位" align="center" prop="unitOfMeasure" />
@ -47,6 +55,15 @@ export default {
this.getList(this.clientId); this.getList(this.clientId);
}, },
methods: { methods: {
handleView(row) {
this.$emit('handleSkip', row)
this.$router.push({
path: '/mes/md/item/form',
query: {
id: row.itemId
}
})
},
handleOpen(vendorId) { handleOpen(vendorId) {
this.getList(vendorId) this.getList(vendorId)
}, },

View File

@ -1,16 +1,29 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-table v-loading="loading" :data="recordList"> <el-table v-loading="loading" :data="recordList">
<el-table-column label="出库单编号" align="center" prop="salseCode" width="120px" :show-overflow-tooltip="true" /> <el-table-column label="出库单编号" width="150px" align="center" prop="salseCode" >
<el-table-column label="出库单名称" align="center" prop="salseName" :show-overflow-tooltip="true" /> <template slot-scope="scope">
<el-table-column label="销售订单编号" align="center" prop="soCode" /> <el-button
<el-table-column label="出库日期" align="center" prop="salseDate" width="120px" /> size="mini"
<el-table-column label="产品编码" align="center" prop="itemCode" :show-overflow-tooltip="true" /> type="text"
<el-table-column label="产品名称" align="center" prop="itemName" :show-overflow-tooltip="true" /> @click="handleView(scope.row)"
<el-table-column label="规格型号" align="center" prop="specification" /> >{{scope.row.salseCode}}</el-button>
<el-table-column label="单位" align="center" prop="unitOfMeasure" /> </template>
<el-table-column label="出库数量" align="center" prop="quantitySalse" /> </el-table-column>
<el-table-column label="批次号" align="center" prop="batchCode" /> <el-table-column label="出库单名称" width="150px" align="center" prop="salseName" />
<el-table-column label="销售订单编号" width="120px" align="center" prop="soCode" />
<el-table-column label="客户编码" align="center" prop="clientCode" />
<el-table-column label="客户名称" align="center" prop="clientName" />
<el-table-column label="出库日期" align="center" prop="salseDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.salseDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="单据状态" align="center" prop="status">
<template slot-scope="scope">
<dict-tag :options="dict.type.mes_order_status" :value="scope.row.status"/>
</template>
</el-table-column>
</el-table> </el-table>
<pagination <pagination
@ -27,7 +40,8 @@
import {getSaleRecord} from "@/api/mes/wm/productsalse"; import {getSaleRecord} from "@/api/mes/wm/productsalse";
export default { export default {
name: "Bom", name: "productsalseForm",
dicts: ['sys_yes_no','mes_item_product', 'mes_order_status'],
data() { data() {
return { return {
// //
@ -51,6 +65,15 @@ export default {
this.getList(this.clientId); this.getList(this.clientId);
}, },
methods: { methods: {
handleView(row) {
this.$emit('handleSkip', row)
this.$router.push({
path: '/mes/wm/saleOutbound/form',
query: {
id: row.salseId
}
})
},
handleOpen(vendorId) { handleOpen(vendorId) {
this.getList(vendorId) this.getList(vendorId)
}, },

View File

@ -347,10 +347,10 @@
</el-form> </el-form>
<el-tabs type="border-card" v-model="activeName" v-if="optType != 'add'" @tab-click="handleClick"> <el-tabs type="border-card" v-model="activeName" v-if="optType != 'add'" @tab-click="handleClick">
<el-tab-pane label="产品清单" name="item"> <el-tab-pane label="产品清单" name="item">
<Item ref="itemList" :optType="optType" :clientId="form.clientId"></Item> <Item ref="itemList" @handleSkip="handleSkip" :optType="optType" :clientId="form.clientId"></Item>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="销售记录" name="salesRecord"> <el-tab-pane label="销售记录" name="salesRecord">
<SalesRecord ref="salesRecordList" :optType="optType" :clientId="form.clientId"></SalesRecord> <SalesRecord ref="salesRecordList" @handleSkip="handleSkip" :optType="optType" :clientId="form.clientId"></SalesRecord>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@ -549,7 +549,6 @@ export default {
methods: { methods: {
handleSkip() { handleSkip() {
this.cancel() this.cancel()
this.$router.push("/mes/wm/arrivalnotice")
}, },
handleClick(tab) { handleClick(tab) {
if (tab.name === 'item') { if (tab.name === 'item') {
@ -642,6 +641,8 @@ export default {
this.open = true; this.open = true;
this.title = "查看客户"; this.title = "查看客户";
this.optType = "view"; this.optType = "view";
this.activeName = 'item'
this.$refs.itemList.handleOpen(this.form.clientId)
}); });
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
@ -653,6 +654,8 @@ export default {
this.open = true; this.open = true;
this.title = "修改客户"; this.title = "修改客户";
this.optType = "edit"; this.optType = "edit";
this.activeName = 'item'
this.$refs.itemList.handleOpen(this.form.clientId)
}); });
}, },
/** 提交按钮 */ /** 提交按钮 */

View File

@ -0,0 +1,272 @@
<template>
<div class="app-container">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-col :span="14">
<el-row>
<el-col :span="16">
<el-form-item label="物料编码" prop="itemCode">
<el-input v-model="form.itemCode" readonly="readonly" maxlength="64" v-if="optType == 'view'"/>
<el-input v-model="form.itemCode" placeholder="请输入物料编码" maxlength="64" v-else/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="80">
<el-switch v-model="autoGenFlag"
active-color="#13ce66"
active-text="自动生成"
@change="handleAutoGenChange(autoGenFlag)" v-if="optType != 'view'">
</el-switch>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="物料名称" prop="itemName">
<el-input v-model="form.itemName" maxlength="255" readonly="readonly" v-if="optType=='view'" />
<el-input v-model="form.itemName" placeholder="请输入物料名称" maxlength="255" v-else/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="规格型号" prop="specification">
<el-input v-model="form.specification" type="textarea" maxlength="500" readonly="readonly" v-if="optType=='view'" />
<el-input v-model="form.specification" type="textarea" placeholder="请输入规格型号" maxlength="500" v-else/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="单位" prop="unitOfMeasure">
<el-select v-model="form.unitOfMeasure" disabled v-if="optType=='view'">
<el-option
v-for="item in measureOptions"
:key="item.measureCode"
:label="item.measureName"
:value="item.measureCode"
:disabled="item.enableFlag == 'N'"
></el-option>
</el-select>
<el-select v-model="form.unitOfMeasure" placeholder="请选择单位" v-else>
<el-option
v-for="item in measureOptions"
:key="item.measureCode"
:label="item.measureName"
:value="item.measureCode"
:disabled="item.enableFlag == 'N'"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="10">
<BarcodeImg ref="barcodeImg" :bussinessId="form.itemId" :bussinessCode="form.itemCode" barcodeType="ITEM"></BarcodeImg>
</el-col>
</el-row>
<el-row>
<el-col :span="14">
<el-form-item label="物料/产品分类" prop="itemTypeId">
<treeselect v-model="form.itemTypeId" :options="itemTypeOptions" :show-count="true" disabled v-if="optType=='view'" />
<treeselect v-model="form.itemTypeId" :options="itemTypeOptions" :show-count="true" placeholder="请选择所属分类" v-else :disable-branch-nodes="true"/>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="高价值/易被盗物品" label-width="150px" prop="highValue">
<el-checkbox v-model="form.highValue" :true-label="'Y'" :false-label="'N'"></el-checkbox>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="是否启用">
<el-radio-group v-model="form.enableFlag" disabled v-if="optType=='view'">
<el-radio
v-for="dict in dict.type.sys_yes_no"
:key="dict.value"
:label="dict.value"
>{{dict.label}}</el-radio>
</el-radio-group>
<el-radio-group v-model="form.enableFlag" v-else>
<el-radio
v-for="dict in dict.type.sys_yes_no"
:key="dict.value"
:label="dict.value"
>{{dict.label}}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="批次管理">
<el-switch
v-model="form.batchFlag"
active-text="是"
inactive-text="否"
active-value="Y"
inactive-value="N"
></el-switch>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="安全库存">
<el-radio-group v-model="form.safeStockFlag" disabled v-if="optType=='view'">
<el-radio
v-for="dict in dict.type.sys_yes_no"
:key="dict.value"
:label="dict.value"
>{{dict.label}}</el-radio>
</el-radio-group>
<el-radio-group v-model="form.safeStockFlag" v-else>
<el-radio
v-for="dict in dict.type.sys_yes_no"
:key="dict.value"
:label="dict.value"
>{{dict.label}}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="form.safeStockFlag == 'Y'">
<el-col :span="12">
<el-form-item label="最小库存量">
<el-input-number v-model="form.minStock" :percision="2" :step="1" disabled v-if="optType=='view'" />
<el-input-number v-model="form.minStock" :percision="2" :step="1" placeholder="请输入最小安全库存量" v-else />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="最大库存量">
<el-input-number v-model="form.maxStock" :percision="2" :step="1" disabled v-if="optType=='view'" />
<el-input-number v-model="form.maxStock" :percision="2" :step="1" placeholder="请输入最大安全库存量" v-else/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" readonly v-if="optType=='view'"></el-input>
<el-input v-model="form.remark" type="textarea" maxlength="500" placeholder="请输入内容" v-else></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-tabs type="border-card" v-if="form.itemId != null">
<el-tab-pane label="BOM组成">
<ItemBom :optType="optType" :itemId="form.itemId"></ItemBom>
</el-tab-pane>
<el-tab-pane v-if="form.batchFlag =='Y'" label="批次属性"></el-tab-pane>
<el-tab-pane label="替代品"></el-tab-pane>
<el-tab-pane label="SIP">
<SIPTab :itemId="form.itemId" :optType="optType"></SIPTab>
</el-tab-pane>
<el-tab-pane label="SOP">
<SOPTab :itemId="form.itemId" :optType="optType"></SOPTab>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import SOPTab from "@/views/mes/md/mditem/components/sop.vue";
import BarcodeImg from "@/components/barcodeImg/index.vue";
import SIPTab from "@/views/mes/md/mditem/components/sip.vue";
import ItemBom from "@/views/mes/md/mditem/components/itembom.vue";
import Treeselect from "@riophae/vue-treeselect";
import {genCode} from "@/api/system/autocode/rule";
import {listAllUnitmeasure} from "@/api/mes/md/unitmeasure";
import {treeselect} from "@/api/mes/md/itemtype";
import {getMdItem} from "@/api/mes/md/mdItem";
export default {
name: "itemForm",
components: {ItemBom, SIPTab, Treeselect, BarcodeImg, SOPTab},
dicts: ['sys_yes_no','mes_item_product'],
data() {
return {
itemId: '',
//
form: {},
//
itemTypeOptions: undefined,
//
measureOptions: [],
//
autoGenFlag: false,
// view add edit
optType: undefined,
//
rules: {
itemCode: [
{ required: true, message: "物料/产品编码不能为空", trigger: "blur" },
{ max: 64, message: '物料/产品编码长度必须小于64个字符', trigger: 'blur' }
],
itemName: [
{ required: true, message: "物料/产品名称不能为空", trigger: "blur" }
],
unitOfMeasure: [
{ required: true, message: "单位不能为空",trigger: "blur"}
],
itemTypeId: [
{ required: true, message: "物料分类不能为空", trigger: "blur" },
],
remark: [
{ max: 250, message: '长度必须小于250个字符', trigger: 'blur' }
]
}
};
},
created() {
this.itemId = this.$route.query.id
this.getMdItemForm(this.itemId)
this.getUnits()
this.getTreeselect()
},
watch: {
'$route.query.id': {
handler(newVal, oldVal) {
if (newVal != undefined) {
this.itemId = newVal
this.getMdItemForm(this.itemId)
}
},
deep: true
}
},
methods: {
//
getMdItemForm(itemId) {
getMdItem(itemId).then(response => {
this.form = response.data;
this.optType = "view";
this.$nextTick(()=>{
this.$refs.barcodeImg.getBarcode();
})
});
},
/** 查询分类下拉树结构 */
getTreeselect() {
treeselect().then(response => {
this.itemTypeOptions = response.data;
});
},
getUnits(){
listAllUnitmeasure().then(response =>{
this.measureOptions = response.data;
});
},
//
handleAutoGenChange(autoGenFlag){
debugger;
if(autoGenFlag){
genCode('ITEM_CODE').then(response =>{
this.form.itemCode = response;
});
}else{
this.form.itemCode = null;
}
}
}
};
</script>

View File

@ -1,22 +1,21 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-table v-loading="loading" :data="itemList"> <el-table v-loading="loading" :data="itemList">
<el-table-column label="物料编码" align="center" width="120px" prop="itemCode" /> <el-table-column label="物料编码" align="center" width="120px" prop="itemCode">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
@click="handleView(scope.row)"
v-hasPermi="['mes:md:mditem:edit']"
>{{scope.row.itemCode}}</el-button>
</template>
</el-table-column>
<el-table-column label="物料名称" align="center" prop="itemName" :show-overflow-tooltip="true"/> <el-table-column label="物料名称" align="center" prop="itemName" :show-overflow-tooltip="true"/>
<el-table-column label="规格型号" align="center" prop="specification" :show-overflow-tooltip="true"/> <el-table-column label="规格型号" align="center" prop="specification" :show-overflow-tooltip="true"/>
<el-table-column label="单位" align="center" prop="unitOfMeasure" /> <el-table-column label="单位" align="center" prop="unitOfMeasure" />
<el-table-column label="入库数量" align="center" prop="quantityRecived" /> <el-table-column label="入库数量" align="center" prop="quantityRecived" />
<el-table-column label="批次号" align="center" prop="batchCode" /> <el-table-column label="批次号" align="center" prop="batchCode" />
<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-position"
@click="handleSkip(scope.row)"
>跳转</el-button>
</template>
</el-table-column>
</el-table> </el-table>
<pagination <pagination
@ -57,6 +56,15 @@ export default {
this.getList(this.vendorId); this.getList(this.vendorId);
}, },
methods: { methods: {
handleView(row) {
this.$emit('handleSkip', row)
this.$router.push({
path: '/mes/md/item/form',
query: {
id: row.itemId
}
})
},
handleOpen(vendorId) { handleOpen(vendorId) {
this.getList(vendorId) this.getList(vendorId)
}, },

View File

@ -1,7 +1,15 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-table v-loading="loading" :data="recordList"> <el-table v-loading="loading" :data="recordList">
<el-table-column label="入库编号" align="center" prop="recptCode" width="120px" :show-overflow-tooltip="true" /> <el-table-column label="入库编号" align="center" prop="recptCode" width="120px" :show-overflow-tooltip="true">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
@click="handleView(scope.row)"
>{{scope.row.recptCode}}</el-button>
</template>
</el-table-column>
<el-table-column label="入库名称" align="center" prop="recptName" /> <el-table-column label="入库名称" align="center" prop="recptName" />
<el-table-column label="采购订单号" align="center" prop="poCode" /> <el-table-column label="采购订单号" align="center" prop="poCode" />
<el-table-column label="物料编码" align="center" prop="itemCode" width="120px" :show-overflow-tooltip="true" /> <el-table-column label="物料编码" align="center" prop="itemCode" width="120px" :show-overflow-tooltip="true" />
@ -50,6 +58,15 @@ export default {
this.getList(this.vendorId); this.getList(this.vendorId);
}, },
methods: { methods: {
handleView(row) {
this.$emit('handleSkip', row)
this.$router.push({
path: '/mes/wm/purchaseInventory/form',
query: {
id: row.recptId
}
})
},
handleOpen(vendorId) { handleOpen(vendorId) {
this.getList(vendorId) this.getList(vendorId)
}, },

View File

@ -361,7 +361,7 @@
<Item ref="itemList" @handleSkip="handleSkip" :optType="optType" :vendorId="form.vendorId"></Item> <Item ref="itemList" @handleSkip="handleSkip" :optType="optType" :vendorId="form.vendorId"></Item>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="采购记录" name="purchase"> <el-tab-pane label="采购记录" name="purchase">
<Purchase ref="PurchaseList" :optType="optType" :vendorId="form.vendorId"></Purchase> <Purchase ref="PurchaseList" @handleSkip="handleSkip" :optType="optType" :vendorId="form.vendorId"></Purchase>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@ -557,7 +557,6 @@ export default {
methods: { methods: {
handleSkip() { handleSkip() {
this.cancel() this.cancel()
this.$router.push("/mes/wm/arrivalnotice")
}, },
handleClick(tab) { handleClick(tab) {
if (tab.name == 'item') { if (tab.name == 'item') {
@ -653,6 +652,7 @@ export default {
this.open = true; this.open = true;
this.title = "查看供应商"; this.title = "查看供应商";
this.optType = "view"; this.optType = "view";
this.activeName = "item"
this.getBarcodeUrl(); this.getBarcodeUrl();
this.$refs.itemList.handleOpen(vendorId) this.$refs.itemList.handleOpen(vendorId)
}); });
@ -666,7 +666,9 @@ export default {
this.open = true; this.open = true;
this.title = "修改供应商"; this.title = "修改供应商";
this.optType = "edit"; this.optType = "edit";
this.activeName = "item"
this.getBarcodeUrl(); this.getBarcodeUrl();
this.$refs.itemList.handleOpen(vendorId)
}); });
}, },
/** 提交按钮 */ /** 提交按钮 */

View File

@ -0,0 +1,188 @@
<template>
<div class="app-container">
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="8">
<el-form-item label="入库单编号" prop="recptCode">
<el-input v-model="form.recptCode" placeholder="请输入入库单编号" />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label-width="80">
<el-switch v-model="autoGenFlag"
active-color="#13ce66"
active-text="自动生成"
@change="handleAutoGenChange(autoGenFlag)" v-if="optType != 'view' && form.status =='PREPARE'">
</el-switch>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="入库单名称" prop="recptName">
<el-input v-model="form.recptName" placeholder="请输入入库单名称" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="入库日期" prop="recptDate">
<el-date-picker clearable
v-model="form.recptDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择入库日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="到货通知单" prop="noticeCode">
<el-input v-model="form.noticeCode" readonly="readonly" placeholder="请选择到货通知单" >
<el-button slot="append" @click="handleSelectNotice" icon="el-icon-search"></el-button>
</el-input>
<NoticeSelect ref="noticeSelect" @onSelected="onNoticeSelected"></NoticeSelect>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="采购订单号" prop="poCode">
<el-input v-model="form.poCode" placeholder="请输入采购订单号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="供应商" prop="vendorName">
<el-input v-model="form.vendorName" readonly="readonly" placeholder="请选择供应商" >
<el-button slot="append" @click="handleSelectVendor" icon="el-icon-search"></el-button>
</el-input>
<VendorSelect ref="vendorSelect" @onSelected="onVendorSelected" />
</el-form-item>
</el-col>
<el-col :span="8">
</el-col>
<el-col :span="8">
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-divider v-if="form.recptId !=null" content-position="center">物料信息</el-divider>
<el-card shadow="always" v-if="form.recptId !=null" class="box-card">
<Itemrecptline ref=line :recptId="form.recptId" :noticeId="form.noticeId" :optType="optType"></Itemrecptline>
</el-card>
</div>
</template>
<script>
import Itemrecptline from "@/views/mes/wm/itemrecpt/line.vue";
import VendorSelect from "@/components/vendorSelect/single.vue";
import NoticeSelect from "@/components/noticeSelect/single.vue";
import {genCode} from "@/api/system/autocode/rule";
import {getItemrecpt} from "@/api/mes/wm/itemrecpt";
export default {
name: "itemrecptForm",
components: {NoticeSelect, VendorSelect, Itemrecptline},
dicts:['mes_order_status'],
data() {
return {
recptId: '',
//
autoGenFlag:false,
//
form: {},
//
rules: {
recptCode: [
{ required: true, message: "入库单编号不能为空", trigger: "blur" },
{ max: 64, message: "字段过长", trigger: "blur" }
],
recptName: [
{ required: true, message: "入库单名称不能为空", trigger: "blur" },
{ max: 100, message: "字段过长", trigger: "blur" }
],
recptDate: [
{ required: true, message: "入库时间不能为空", trigger: "blur"}
],
vendorName: [
{ required: true, message: "请选择对应的供应商", trigger: "blur"}
],
remark: [
{ max: 250, message: '长度必须小于250个字符', trigger: 'blur' }
]
}
}
},
created() {
this.recptId = this.$route.query.id
this.getItemrecptForm(this.recptId)
},
watch: {
'$route.query.id': {
handler(newVal, oldVal) {
if (newVal != undefined) {
this.recptId = newVal
this.getItemrecptForm(this.recptId)
}
},
deep: true
}
},
methods: {
getItemrecptForm(recptId) {
getItemrecpt(recptId).then(response => {
this.form = response.data;
this.warehouseInfo[0] = response.data.warehouseId;
this.warehouseInfo[1] = response.data.locationId;
this.warehouseInfo[2] = response.data.areaId;
this.optType = "view";
});
},
//
onVendorSelected(obj){
if(obj != undefined && obj != null){
this.form.vendorId = obj.vendorId;
this.form.vendorCode = obj.vendorCode;
this.form.vendorName = obj.vendorName;
this.form.vendorNick = obj.vendorNick;
}
},
//
handleSelectVendor(){
this.$refs.form.resetFields()
this.$refs.vendorSelect.handleOpen(this.form.vendorId)
},
//
onNoticeSelected(obj){
debugger;
if(obj != undefined && obj != null){
this.form.noticeId = obj.noticeId;
this.form.noticeCode = obj.noticeCode;
this.form.poCode = obj.poCode;
this.form.vendorId = obj.vendorId;
this.form.vendorName = obj.vendorName;
this.form.vendorNick = obj.vendorNick;
}
},
//
handleSelectNotice(){
this.$refs.noticeSelect.handleOpen(this.form.noticeId)
},
//
handleAutoGenChange(autoGenFlag){
if(autoGenFlag){
genCode('ITEMRECPT_CODE').then(response =>{
this.form.recptCode = response;
});
}else{
this.form.recptCode = null;
}
}
}
}
</script>

View File

@ -550,7 +550,6 @@ export default {
this.form.vendorCode = obj.vendorCode; this.form.vendorCode = obj.vendorCode;
this.form.vendorName = obj.vendorName; this.form.vendorName = obj.vendorName;
this.form.vendorNick = obj.vendorNick; this.form.vendorNick = obj.vendorNick;
console.log(this.form, '----this.form----')
} }
}, },
// //

View File

@ -0,0 +1,175 @@
<template>
<div class="app-container">
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="8">
<el-form-item label="出库单编号" prop="salseCode">
<el-input v-model="form.salseCode" placeholder="请输入出库单编号" />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label-width="80">
<el-switch v-model="autoGenFlag"
active-color="#13ce66"
active-text="自动生成"
@change="handleAutoGenChange(autoGenFlag)" v-if="optType != 'view' && form.status =='PREPARE'">
</el-switch>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="出库单名称" prop="salseName">
<el-input v-model="form.salseName" placeholder="请输入出库单名称" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="销售订单编号" prop="soCode">
<el-input v-model="form.soCode" placeholder="请输入销售订单编号" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="客户编码" prop="clientCode">
<el-input v-model="form.clientCode" placeholder="请输入客户编码" >
<el-button slot="append" @click="handleSelectClient" icon="el-icon-search"></el-button>
</el-input>
<ClientSelect ref="clientSelect" @onSelected="onClientSelected" > </ClientSelect>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="客户名称" prop="clientName">
<el-input v-model="form.clientName" readonly="readonly"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="出库日期" prop="salseDate">
<el-date-picker clearable
v-model="form.salseDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择出库日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="单据状态" prop="status">
<el-select v-model="form.status" disabled placeholder="请选择单据状态">
<el-option
v-for="dict in dict.type.mes_order_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-divider v-if="form.salseId !=null" content-position="center">物料信息</el-divider>
<el-card shadow="always" v-if="form.salseId !=null" class="box-card">
<Productsalseline ref="line" :salseId="form.salseId" :warehouseId="form.warehouseId" :locationId="form.locationId" :areaId="form.areaId" :optType="optType"></Productsalseline>
</el-card>
</div>
</template>
<script>
import {genCode} from "@/api/system/autocode/rule";
import Productsalseline from "@/views/mes/wm/productsalse/line.vue";
import ClientSelect from "@/components/clientSelect/single.vue";
import {getProductsalse} from "@/api/mes/wm/productsalse";
export default {
name: "itemForm",
components: {ClientSelect, Productsalseline},
dicts: ['sys_yes_no','mes_item_product', 'mes_order_status'],
data() {
return {
salseId: '',
//
form: {},
//
autoGenFlag: false,
// view add edit
optType: undefined,
//
rules: {
salseCode: [
{ required: true, message: "出库单编号不能为空", trigger: "blur" },
{ max: 64, message: "字段过长", trigger: "blur" }
],
salseName: [
{ required: true, message: "出库单名称不能为空", trigger: "blur" },
{ max: 100, message: "字段过长", trigger: "blur" }
],
clientCode: [
{ required: true, message: "请指定客户", trigger: "blur" }
],
salseDate: [
{ required: true, message: "请选择出库日期", trigger: "blur" }
],
remark: [
{ max: 250, message: '长度必须小于250个字符', trigger: 'blur' }
]
}
};
},
created() {
this.salseId = this.$route.query.id
this.getProdectsalseForm(this.salseId)
},
watch: {
'$route.query.id': {
handler(newVal, oldVal) {
if (newVal != undefined) {
this.salseId = newVal
this.getProdectsalseForm(this.salseId)
}
},
deep: true
}
},
methods: {
getProdectsalseForm(salseId) {
getProductsalse(salseId).then(response => {
this.form = response.data;
this.warehouseInfo[0] = response.data.warehouseId;
this.warehouseInfo[1] = response.data.locationId;
this.warehouseInfo[2] = response.data.areaId;
this.optType = "view";
});
},
handleSelectClient(){
this.$refs["form"].clearValidate()
this.$refs.clientSelect.handleOpen(this.form.clientId)
},
//
onClientSelected(obj){
if(obj != undefined && obj != null){
this.form.clientId = obj.clientId;
this.form.clientCode = obj.clientCode;
this.form.clientName = obj.clientName;
}
},
//
handleAutoGenChange(autoGenFlag){
if(autoGenFlag){
genCode('PRODUCTSALSE_CODE').then(response =>{
this.form.salseCode = response;
});
}else{
this.form.salseCode = null;
}
}
}
};
</script>