作者 lixiang

1、修改入库记录功能

2、修改出库记录功能
3、修改不良品库,增加退换货功能
4、新增入库、出库功能,修改库存明细
  1 +<template>
  2 + <a-spin :spinning="confirmLoading">
  3 + <j-form-container :disabled="formDisabled">
  4 + <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
  5 + <a-row>
  6 + <a-col :span="12">
  7 + <a-form-model-item label="物料编码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="meterialCode">
  8 + <a-input
  9 + v-model="model.meterialCode"
  10 + placeholder="请输入物料编码"
  11 + readonly
  12 + ></a-input>
  13 + </a-form-model-item>
  14 + </a-col>
  15 + <a-col :span="12">
  16 + <a-form-model-item label="合同/订单号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hth">
  17 + <a-input-search
  18 + v-model="model.hth"
  19 + placeholder="请输入合同/订单号"
  20 + @search="searchHth"
  21 +
  22 + />
  23 + </a-form-model-item>
  24 + </a-col>
  25 +<!-- <a-col :span="1">-->
  26 +<!-- <a >查询</a>-->
  27 +<!-- </a-col>-->
  28 + <a-col :span="12">
  29 + <a-form-model-item label="物料长描述" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="meterialReview">
  30 + <a-input
  31 + v-model="model.meterialReview"
  32 + placeholder="请输入物料长描述"
  33 +
  34 + ></a-input>
  35 + </a-form-model-item>
  36 + </a-col>
  37 + <a-col :span="12">
  38 + <a-form-model-item label="物流单号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="wldh">
  39 + <a-input
  40 + v-model="model.wldh"
  41 + placeholder="请输入物流单号"
  42 +
  43 + ></a-input>
  44 + </a-form-model-item>
  45 + </a-col>
  46 + <a-col :span="12">
  47 + <a-form-model-item label="单位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="unit">
  48 + <a-input
  49 + v-model="model.unit"
  50 + placeholder="请输入单位"
  51 +
  52 + ></a-input>
  53 + </a-form-model-item>
  54 + </a-col>
  55 + <a-col :span="12">
  56 + <a-form-model-item label="是否在途" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="iszt">
  57 + <a-select
  58 + ref="select"
  59 + v-model:value="model.iszt"
  60 + >
  61 + <a-select-option value="1">在途</a-select-option>
  62 + <a-select-option value="2">到库</a-select-option>
  63 + </a-select>
  64 + </a-form-model-item>
  65 + </a-col>
  66 + <a-col :span="12">
  67 + <a-form-model-item label="供货商名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="cs">
  68 + <a-input
  69 + v-model="model.cs"
  70 + placeholder="请输入供货商名称"
  71 +
  72 + ></a-input>
  73 + </a-form-model-item>
  74 + </a-col>
  75 +
  76 + <a-col :span="12">
  77 + <a-form-model-item label="品牌" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="brand">
  78 + <a-input
  79 + v-model="model.brand"
  80 + placeholder="请输入品牌"
  81 +
  82 + ></a-input>
  83 + </a-form-model-item>
  84 + </a-col>
  85 + <a-col :span="12">
  86 + <a-form-model-item label="仓库" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="warehouse">
  87 + <a-input
  88 + v-model="model.warehouse"
  89 + placeholder="请输入仓库"
  90 +
  91 + ></a-input>
  92 + </a-form-model-item>
  93 + </a-col>
  94 + <a-col :span="12">
  95 + <a-form-model-item label="入库数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="rksl">
  96 + <a-input
  97 + v-model="model.rksl"
  98 + placeholder="请输入入库数量"
  99 + @blur="changeRksl(model.rksl)"
  100 + ></a-input>
  101 + </a-form-model-item>
  102 + </a-col>
  103 + <a-col :span="12">
  104 + <a-form-model-item label="采购员" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operator">
  105 + <a-input
  106 + v-model="model.operator"
  107 + placeholder="请输入采购员"
  108 +
  109 + ></a-input>
  110 + </a-form-model-item>
  111 + </a-col>
  112 + <a-col :span="12">
  113 + <a-form-model-item label="不良品数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="blpsl">
  114 + <a-input type="number"
  115 + v-model="model.blpsl"
  116 + placeholder="请输入不良品数量"
  117 + @blur="changeBlpsl(model.blpsl)"
  118 + ></a-input>
  119 + </a-form-model-item>
  120 + </a-col>
  121 + <a-col :span="12">
  122 + <a-form-model-item label="异常原因" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ycyy">
  123 + <a-input
  124 + v-model="model.ycyy"
  125 + placeholder="请输入异常原因"
  126 +
  127 + ></a-input>
  128 + </a-form-model-item>
  129 + </a-col>
  130 + </a-row>
  131 +
  132 + </a-form-model>
  133 + </j-form-container>
  134 + </a-spin>
  135 +</template>
  136 +
  137 +<script>
  138 +import { httpAction, getAction, selectUp } from '@/api/manage'
  139 +import { validateDuplicateValue } from '@/utils/util'
  140 +
  141 +export default {
  142 + name: 'TblTradInventoryIn',
  143 +
  144 + components: {},
  145 + props: {
  146 + materialCode: String, //物料编码
  147 + meterialReview: String, //物料长描述
  148 + unit: String, //计量单位
  149 + brand: String, //品牌
  150 + //表单禁用
  151 + disabled: {
  152 + type: Boolean,
  153 + default: false,
  154 + required: false,
  155 + },
  156 + },
  157 + data() {
  158 + return {
  159 + url:{
  160 + searchHth: '/trade/tblTradeBidSub/queryHtInfoByHthAndWlbm'
  161 + },
  162 + model: {
  163 + iszt: '1',
  164 + operator: this.$store.state.user.info.realname,
  165 + blpsl: 0,
  166 + },
  167 + labelCol: {
  168 + xs: { span: 24 },
  169 + sm: { span: 5 },
  170 + },
  171 + wrapperCol: {
  172 + xs: { span: 24 },
  173 + sm: { span: 16 },
  174 + },
  175 + validatorRules: {
  176 + meterialCode: [{ required: true, message: '请输入物料编码!' },],
  177 + hth: [{ required: true, message: '请输入合同/订单号!' },],
  178 + meterialReview: [{ required: true, message: '请输入物料长描述!' },],
  179 + wldh: [{ required: true, message: '请输入物流单号!' },],
  180 + unit: [{ required: true, message: '请输入单位!' },],
  181 + iszt: [{ required: true, message: '请选择是否在途!' },],
  182 + cs: [{ required: true, message: '请输入供货商名称!' },],
  183 + brand: [{ required: true, message: '请输入品牌!' },],
  184 + warehouse: [{ required: true, message: '请输入仓库!' },],
  185 + rksl: [{ required: true, message: '请输入入库数量!' },],
  186 + operator: [{ required: true, message: '请输入采购员!' },],
  187 + },
  188 + confirmLoading: false,
  189 + }
  190 + },
  191 + computed: {
  192 + formDisabled() {
  193 + return this.disabled
  194 + },
  195 + },
  196 + created() {
  197 + this.model.meterialCode = this.materialCode
  198 + this.model.meterialReview = this.meterialReview
  199 + this.model.unit = this.unit
  200 + this.model.brand = this.brand
  201 + },
  202 + methods: {
  203 + changeRksl(rksl){
  204 + console.log(" this.model.sl", this.model.sl)
  205 + console.log(" rksl", rksl)
  206 + if (rksl < 0 ){
  207 + this.$message.error("请输入正确的入库数量")
  208 + return
  209 + }
  210 + this.model.blpsl = this.model.sl-rksl
  211 + },
  212 + changeBlpsl(blpsl){
  213 + if (!this.model.hth){
  214 + this.$message.error("请先查询合同/订单号信息")
  215 + }
  216 +
  217 + if (blpsl < 0){
  218 + this.$message.error("请输入正确的不良品数量")
  219 + }
  220 + //如果不良品数量大于0,增加对不良品的规则校验
  221 + console.log("this.model.sl",this.model.sl)
  222 + if (blpsl < this.model.sl){
  223 + if (!this.model.ycyy){
  224 + this.$message.error("请输入异常原因")
  225 + }
  226 + }
  227 +
  228 + },
  229 + searchHth(){
  230 + getAction(this.url.searchHth,{
  231 + hth: this.model.hth,
  232 + wlbm: this.materialCode
  233 + }).then(res=>{
  234 + if (res.success){
  235 + // console.log(this.$store.state.user.info.realname)
  236 + this.$set(this.model, "wldh", res.result.wldh);
  237 + this.$set(this.model, "cs", res.result.cs);
  238 + this.$set(this.model, "rksl", res.result.sl);
  239 + this.$set(this.model, "sl", res.result.sl);
  240 + // this.$set(this.model, "operator", this.$store.state.user.info.realname);
  241 +
  242 +
  243 + }
  244 + })
  245 + console.log('根据订单号查询订单信息')
  246 + }
  247 + },
  248 +}
  249 +</script>
@@ -28,10 +28,10 @@ @@ -28,10 +28,10 @@
28 28
29 <!-- table区域-begin --> 29 <!-- table区域-begin -->
30 <div> 30 <div>
31 - <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">  
32 - <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项  
33 - <a style="margin-left: 24px" @click="onClearSelected">清空</a>  
34 - </div> 31 +<!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
  32 +<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项-->
  33 +<!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
  34 +<!-- </div>-->
35 35
36 <a-table 36 <a-table
37 ref="table" 37 ref="table"
@@ -43,7 +43,6 @@ @@ -43,7 +43,6 @@
43 :dataSource="dataSource" 43 :dataSource="dataSource"
44 :pagination="ipagination" 44 :pagination="ipagination"
45 :loading="loading" 45 :loading="loading"
46 - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"  
47 class="j-table-force-nowrap" 46 class="j-table-force-nowrap"
48 @change="handleTableChange"> 47 @change="handleTableChange">
49 48
@@ -68,28 +67,66 @@ @@ -68,28 +67,66 @@
68 </template> 67 </template>
69 68
70 <span slot="action" slot-scope="text, record"> 69 <span slot="action" slot-scope="text, record">
71 - <a @click="handleEdit(record)">编辑</a> 70 + <a @click="exchange(record)">退换货</a>
72 71
73 <a-divider type="vertical" /> 72 <a-divider type="vertical" />
74 - <a-dropdown>  
75 - <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>  
76 - <a-menu slot="overlay">  
77 - <a-menu-item>  
78 - <a @click="handleDetail(record)">详情</a>  
79 - </a-menu-item>  
80 - <a-menu-item>  
81 - <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">  
82 - <a>删除</a>  
83 - </a-popconfirm>  
84 - </a-menu-item>  
85 - </a-menu>  
86 - </a-dropdown>  
87 </span> 73 </span>
88 74
89 </a-table> 75 </a-table>
90 </div> 76 </div>
91 77
92 <tbl-trade-inventory-defective-product-modal ref="modalForm" @ok="modalFormOk"></tbl-trade-inventory-defective-product-modal> 78 <tbl-trade-inventory-defective-product-modal ref="modalForm" @ok="modalFormOk"></tbl-trade-inventory-defective-product-modal>
  79 +
  80 +
  81 +
  82 + <j-modal
  83 + :title="title"
  84 + :width="width"
  85 + :visible="visibleInfo"
  86 + switchFullscreen
  87 + @ok="handleOkInfoIn"
  88 + :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
  89 + @cancel="handleCancelInfoIn"
  90 + cancelText="关闭">
  91 +
  92 + <a-spin :spinning="confirmLoading">
  93 + <j-form-container :disabled="formDisabled">
  94 + <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
  95 + <a-row>
  96 + <a-col :span="24">
  97 + <a-form-model-item label="退/换货" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="thFlag">
  98 + <a-radio-group v-model="model.thFlag" >
  99 + <a-radio :value="1">
  100 + 退货
  101 + </a-radio>
  102 + <a-radio :value="2">
  103 + 换货
  104 + </a-radio>
  105 + </a-radio-group>
  106 +
  107 +
  108 +
  109 + </a-form-model-item>
  110 + </a-col>
  111 + <a-col :span="24">
  112 + <a-form-model-item label="退换货单号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="thNum">
  113 + <a-input
  114 + v-model="model.thNum"
  115 + placeholder="请输入退换货单号"
  116 + ></a-input>
  117 + </a-form-model-item>
  118 + </a-col>
  119 +
  120 +
  121 + </a-row>
  122 +
  123 + </a-form-model>
  124 + </j-form-container>
  125 + </a-spin>
  126 +
  127 + </j-modal>
  128 +
  129 +
93 </a-card> 130 </a-card>
94 </template> 131 </template>
95 132
@@ -99,6 +136,7 @@ @@ -99,6 +136,7 @@
99 import { mixinDevice } from '@/utils/mixin' 136 import { mixinDevice } from '@/utils/mixin'
100 import { JeecgListMixin } from '@/mixins/JeecgListMixin' 137 import { JeecgListMixin } from '@/mixins/JeecgListMixin'
101 import TblTradeInventoryDefectiveProductModal from './modules/TblTradeInventoryDefectiveProductModal' 138 import TblTradeInventoryDefectiveProductModal from './modules/TblTradeInventoryDefectiveProductModal'
  139 + import { postAction } from '@api/manage'
102 140
103 export default { 141 export default {
104 name: 'TblTradeInventoryDefectiveProductList', 142 name: 'TblTradeInventoryDefectiveProductList',
@@ -108,21 +146,45 @@ @@ -108,21 +146,45 @@
108 }, 146 },
109 data () { 147 data () {
110 return { 148 return {
  149 + validatorRules:{
  150 + thFlag: [
  151 + { required: true, message: '请选择退/换货', trigger: 'change' }
  152 + ],
  153 + thNum: [
  154 + { required: true, message: '请输入退换货单号', trigger: 'blur' }
  155 + ]
  156 + },
  157 + model:{
  158 +
  159 + },
  160 + labelCol: {
  161 + xs: { span: 24 },
  162 + sm: { span: 5 },
  163 + },
  164 + wrapperCol: {
  165 + xs: { span: 24 },
  166 + sm: { span: 16 },
  167 + },
  168 + confirmLoading: false,
  169 + disableSubmit: false,
  170 + title: '退换货',
  171 + width: 896,
  172 + visibleInfo: false,
111 description: '不良品库管理页面', 173 description: '不良品库管理页面',
112 // 表头 174 // 表头
113 columns: [ 175 columns: [
  176 + // {
  177 + // title: '#',
  178 + // dataIndex: '',
  179 + // key:'rowIndex',
  180 + // width:60,
  181 + // align:"center",
  182 + // customRender:function (t,r,index) {
  183 + // return parseInt(index)+1;
  184 + // }
  185 + // },
114 { 186 {
115 - title: '#',  
116 - dataIndex: '',  
117 - key:'rowIndex',  
118 - width:60,  
119 - align:"center",  
120 - customRender:function (t,r,index) {  
121 - return parseInt(index)+1;  
122 - }  
123 - },  
124 - {  
125 - title:'单号', 187 + title:'不良品单号',
126 align:"center", 188 align:"center",
127 dataIndex: 'waybillNum' 189 dataIndex: 'waybillNum'
128 }, 190 },
@@ -132,12 +194,12 @@ @@ -132,12 +194,12 @@
132 dataIndex: 'materialCode' 194 dataIndex: 'materialCode'
133 }, 195 },
134 { 196 {
135 - title:'物料描述', 197 + title:'物料描述',
136 align:"center", 198 align:"center",
137 dataIndex: 'materialDescription' 199 dataIndex: 'materialDescription'
138 }, 200 },
139 { 201 {
140 - title:'计量单位', 202 + title:'单位',
141 align:"center", 203 align:"center",
142 dataIndex: 'measurementUnit' 204 dataIndex: 'measurementUnit'
143 }, 205 },
@@ -147,27 +209,45 @@ @@ -147,27 +209,45 @@
147 dataIndex: 'brand' 209 dataIndex: 'brand'
148 }, 210 },
149 { 211 {
150 - title:'实际库存量', 212 + title:'不良品数量',
151 align:"center", 213 align:"center",
152 - dataIndex: 'actualInventory' 214 + dataIndex: 'blpsl'
153 }, 215 },
154 { 216 {
155 - title:'出库数量', 217 + title:'异常原因',
156 align:"center", 218 align:"center",
157 - dataIndex: 'outboundQuantity' 219 + dataIndex: 'ycyy',
  220 + customRender: function (text) {
  221 + var str = '';
  222 + if(text === 1){
  223 + str = '来料不良';
  224 + }else if(text === 2){
  225 + str = '货损';
  226 + }else if(text === 3){
  227 + str = '来料少件';
  228 + }else if(text === 4){
  229 + str = '发错货';
  230 + }
  231 + return str;
  232 + },
  233 + },
  234 + {
  235 + title:'操作时间',
  236 + align:"center",
  237 + dataIndex: 'createTime'
158 }, 238 },
159 { 239 {
160 title:'操作人', 240 title:'操作人',
161 align:"center", 241 align:"center",
162 - dataIndex: 'operator' 242 + dataIndex: 'createBy'
163 }, 243 },
164 { 244 {
165 - title:'合同单号/快递单号', 245 + title:'供应商合同号/订单号',
166 align:"center", 246 align:"center",
167 dataIndex: 'expressDeliveryNumber' 247 dataIndex: 'expressDeliveryNumber'
168 }, 248 },
169 { 249 {
170 - title:'交货合同编号', 250 + title:'中标合同编号',
171 align:"center", 251 align:"center",
172 dataIndex: 'deliveryContractNumber' 252 dataIndex: 'deliveryContractNumber'
173 }, 253 },
@@ -181,21 +261,32 @@ @@ -181,21 +261,32 @@
181 align:"center", 261 align:"center",
182 dataIndex: 'warehouse' 262 dataIndex: 'warehouse'
183 }, 263 },
  264 +
184 { 265 {
185 - title:'销售员', 266 + title:'销售员',
186 align:"center", 267 align:"center",
187 dataIndex: 'salesman' 268 dataIndex: 'salesman'
188 }, 269 },
189 { 270 {
190 - title:'审核人', 271 + title:'退/换货',
191 align:"center", 272 align:"center",
192 - dataIndex: 'reviewer' 273 + dataIndex: 'thFlag',
  274 + customRender: function (text) {
  275 + var str = '';
  276 + if(text === 1){
  277 + str = '退货';
  278 + }else if(text === 2){
  279 + str = '换货';
  280 + }
  281 + return str;
  282 + },
193 }, 283 },
194 { 284 {
195 - title:'合同单号/快递单号(退换)', 285 + title:'退换货单号',
196 align:"center", 286 align:"center",
197 - dataIndex: 'exchangeExpressDeliveryNumber' 287 + dataIndex: 'thNum'
198 }, 288 },
  289 +
199 { 290 {
200 title: '操作', 291 title: '操作',
201 dataIndex: 'action', 292 dataIndex: 'action',
@@ -207,6 +298,7 @@ @@ -207,6 +298,7 @@
207 ], 298 ],
208 url: { 299 url: {
209 list: "/trade/tblTradeInventoryDefectiveProduct/list", 300 list: "/trade/tblTradeInventoryDefectiveProduct/list",
  301 + edit: "/trade/tblTradeInventoryDefectiveProduct/edit",
210 delete: "/trade/tblTradeInventoryDefectiveProduct/delete", 302 delete: "/trade/tblTradeInventoryDefectiveProduct/delete",
211 deleteBatch: "/trade/tblTradeInventoryDefectiveProduct/deleteBatch", 303 deleteBatch: "/trade/tblTradeInventoryDefectiveProduct/deleteBatch",
212 exportXlsUrl: "/trade/tblTradeInventoryDefectiveProduct/exportXls", 304 exportXlsUrl: "/trade/tblTradeInventoryDefectiveProduct/exportXls",
@@ -221,11 +313,38 @@ @@ -221,11 +313,38 @@
221 this.getSuperFieldList(); 313 this.getSuperFieldList();
222 }, 314 },
223 computed: { 315 computed: {
  316 + formDisabled(){
  317 + return this.disabled
  318 + },
224 importExcelUrl: function(){ 319 importExcelUrl: function(){
225 return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; 320 return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
226 }, 321 },
227 }, 322 },
228 methods: { 323 methods: {
  324 + handleCancelInfoIn(){
  325 + this.visibleInfo = false
  326 + },
  327 + handleOkInfoIn(){
  328 + postAction(this.url.edit,{
  329 + id: this.model.id,
  330 + thFlag:this.model.thFlag,
  331 + thNum:this.model.thNum
  332 + }).then(res=>{
  333 + if(res.success){
  334 + this.$message.success('操作成功')
  335 + this.searchQuery();
  336 + }else{
  337 + this.$message.error(res.message)
  338 + }
  339 + })
  340 + this.visibleInfo = false
  341 + },
  342 + exchange(record){
  343 + this.model.id = record.id;
  344 + this.$set(this.model, "thFlag", record.thFlag);
  345 + this.$set(this.model, "thNum", record.thNum);
  346 + this.visibleInfo = true
  347 + },
229 initDictConfig(){ 348 initDictConfig(){
230 }, 349 },
231 getSuperFieldList(){ 350 getSuperFieldList(){
@@ -173,7 +173,12 @@ @@ -173,7 +173,12 @@
173 }, 173 },
174 174
175 { 175 {
176 - title:'合同单号/快递单号', 176 + title:'合同单号/订单号',
  177 + align:"center",
  178 + dataIndex: 'deliveryContractNumber'
  179 + },
  180 + {
  181 + title:'物流单号',
177 align:"center", 182 align:"center",
178 dataIndex: 'expressDeliveryNumber' 183 dataIndex: 'expressDeliveryNumber'
179 }, 184 },
@@ -197,11 +202,11 @@ @@ -197,11 +202,11 @@
197 align:"center", 202 align:"center",
198 dataIndex: 'warehouse' 203 dataIndex: 'warehouse'
199 }, 204 },
200 - {  
201 - title:'审核人',  
202 - align:"center",  
203 - dataIndex: 'reviewer'  
204 - }, 205 + // {
  206 + // title:'审核人',
  207 + // align:"center",
  208 + // dataIndex: 'reviewer'
  209 + // },
205 // { 210 // {
206 // title:'出库/入库', 211 // title:'出库/入库',
207 // align:"center", 212 // align:"center",
@@ -240,6 +245,12 @@ @@ -240,6 +245,12 @@
240 }, 245 },
241 }, 246 },
242 methods: { 247 methods: {
  248 + searchReset(){
  249 + this.queryParam = {}
  250 + this.getSuperFieldList();
  251 + this.queryParam.type='入库'
  252 + this.searchQuery(this.queryParam)
  253 + },
243 initDictConfig(){ 254 initDictConfig(){
244 }, 255 },
245 getSuperFieldList(){ 256 getSuperFieldList(){
@@ -140,6 +140,11 @@ @@ -140,6 +140,11 @@
140 // } 140 // }
141 // }, 141 // },
142 { 142 {
  143 + title:'入库/出库单号',
  144 + align:"center",
  145 + dataIndex: 'waybillNum'
  146 + },
  147 + {
143 title:'物料编码', 148 title:'物料编码',
144 align:"center", 149 align:"center",
145 dataIndex: 'materialCode' 150 dataIndex: 'materialCode'
@@ -13,10 +13,10 @@ @@ -13,10 +13,10 @@
13 <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> 13 <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
14 <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> 14 <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
15 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> 15 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
16 - <a @click="handleToggleSearch" style="margin-left: 8px">  
17 - {{ toggleSearchStatus ? '收起' : '展开' }}  
18 - <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>  
19 - </a> 16 +<!-- <a @click="handleToggleSearch" style="margin-left: 8px">-->
  17 +<!-- {{ toggleSearchStatus ? '收起' : '展开' }}-->
  18 +<!-- <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>-->
  19 +<!-- </a>-->
20 </span> 20 </span>
21 </a-col> 21 </a-col>
22 </a-row> 22 </a-row>
@@ -85,22 +85,9 @@ @@ -85,22 +85,9 @@
85 </template> 85 </template>
86 86
87 <span slot="action" slot-scope="text, record"> 87 <span slot="action" slot-scope="text, record">
88 - <!-- <a @click="handleEdit(record)">库存明细</a> --> 88 + <a @click="handleInventoryInfoIn(record)">入库</a> &nbsp
  89 + <a @click="handleInventoryInfoOut(record)">出库</a> &nbsp
89 <a @click="handleInventoryInfo(record)">库存明细</a> 90 <a @click="handleInventoryInfo(record)">库存明细</a>
90 - <!-- <a-divider type="vertical" />  
91 - <a-dropdown>  
92 - <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>  
93 - <a-menu slot="overlay">  
94 - <a-menu-item>  
95 - <a @click="handleDetail(record)">详情</a>  
96 - </a-menu-item>  
97 - <a-menu-item>  
98 - <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">  
99 - <a>删除</a>  
100 - </a-popconfirm>  
101 - </a-menu-item>  
102 - </a-menu>  
103 - </a-dropdown> -->  
104 </span> 91 </span>
105 92
106 </a-table> 93 </a-table>
@@ -138,19 +125,293 @@ @@ -138,19 +125,293 @@
138 @ok="handleCancelDefective" 125 @ok="handleCancelDefective"
139 @cancel="handleCancelDefective" 126 @cancel="handleCancelDefective"
140 cancelText="关闭"> 127 cancelText="关闭">
141 - <TblTradeInventoryDefectiveProductList></TblTradeInventoryDefectiveProductList> 128 + <TblTradeInventoryDefectiveProductList ></TblTradeInventoryDefectiveProductList>
142 </j-modal> 129 </j-modal>
143 130
144 <j-modal 131 <j-modal
145 title="库存明细" 132 title="库存明细"
146 - :width="width" 133 + :width="kcmxWidth"
147 :visible="visibleInfo" 134 :visible="visibleInfo"
148 @ok="handleCancelInfo" 135 @ok="handleCancelInfo"
149 @cancel="handleCancelInfo" 136 @cancel="handleCancelInfo"
150 cancelText="关闭"> 137 cancelText="关闭">
151 - <TblTradeInventoryInfoList :materialCode="materialCode"></TblTradeInventoryInfoList> 138 + <TblTradeInventoryInfoList :materialCode="meterialCode"></TblTradeInventoryInfoList>
152 </j-modal> 139 </j-modal>
153 140
  141 +
  142 +<!-- <j-modal-->
  143 +<!-- -->
  144 +<!-- title="入库"-->
  145 +<!-- :width="width"-->
  146 +<!-- :visible="visibleInfoIn"-->
  147 +<!-- @ok="handleCancelInfo"-->
  148 +<!-- @cancel="handleCancelInfoIn"-->
  149 +<!-- cancelText="关闭">-->
  150 +<!-- <TblTradInventoryIn ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></TblTradInventoryIn>-->
  151 +<!-- </j-modal>-->
  152 +
  153 + <j-modal
  154 + :title="title"
  155 + :width="width"
  156 + :visible="visibleInfoIn"
  157 + switchFullscreen
  158 + @ok="handleOkInfoIn"
  159 + :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
  160 + @cancel="handleCancelInfoIn"
  161 + cancelText="关闭">
  162 +
  163 + <a-spin :spinning="confirmLoading">
  164 + <j-form-container :disabled="formDisabled">
  165 + <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
  166 + <a-row>
  167 + <a-col :span="12">
  168 + <a-form-model-item label="物料编码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="meterialCode">
  169 + <a-input
  170 + v-model="model.meterialCode"
  171 + placeholder="请输入物料编码"
  172 + disabled="disabled"
  173 + ></a-input>
  174 + </a-form-model-item>
  175 + </a-col>
  176 + <a-col :span="12">
  177 + <a-form-model-item label="合同/订单号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hth">
  178 + <a-input-search
  179 + v-model="model.hth"
  180 + placeholder="请输入合同/订单号"
  181 + @search="searchHth"
  182 +
  183 + />
  184 + </a-form-model-item>
  185 + </a-col>
  186 + <!-- <a-col :span="1">-->
  187 + <!-- <a >查询</a>-->
  188 + <!-- </a-col>-->
  189 + <a-col :span="12">
  190 + <a-form-model-item label="物料长描述" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="meterialReview">
  191 + <a-input
  192 + v-model="model.meterialReview"
  193 + placeholder="请输入物料长描述"
  194 + disabled="disabled"
  195 + ></a-input>
  196 + </a-form-model-item>
  197 + </a-col>
  198 + <a-col :span="12">
  199 + <a-form-model-item label="物流单号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="wldh">
  200 + <a-input
  201 + v-model="model.wldh"
  202 + placeholder="请输入物流单号"
  203 + disabled="disabled"
  204 + ></a-input>
  205 + </a-form-model-item>
  206 + </a-col>
  207 + <a-col :span="12">
  208 + <a-form-model-item label="单位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="unit">
  209 + <a-input
  210 + v-model="model.unit"
  211 + placeholder="请输入单位"
  212 + disabled="disabled"
  213 + ></a-input>
  214 + </a-form-model-item>
  215 + </a-col>
  216 +
  217 + <a-col :span="12">
  218 + <a-form-model-item label="供货商名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="cs">
  219 + <a-input
  220 + v-model="model.cs"
  221 + placeholder="请输入供货商名称"
  222 + disabled="disabled"
  223 + ></a-input>
  224 + </a-form-model-item>
  225 + </a-col>
  226 +
  227 + <a-col :span="12">
  228 + <a-form-model-item label="品牌" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="brand">
  229 + <a-input
  230 + v-model="model.brand"
  231 + placeholder="请输入品牌"
  232 + disabled="disabled"
  233 + ></a-input>
  234 + </a-form-model-item>
  235 + </a-col>
  236 + <a-col :span="12">
  237 + <a-form-model-item label="仓库" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="warehouse">
  238 + <a-input
  239 + v-model="model.warehouse"
  240 + placeholder="请输入仓库"
  241 +
  242 + ></a-input>
  243 + </a-form-model-item>
  244 + </a-col>
  245 + <a-col :span="12">
  246 + <a-form-model-item label="入库数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="rksl">
  247 + <a-input
  248 + v-model="model.rksl"
  249 + placeholder="请输入入库数量"
  250 +
  251 + ></a-input>
  252 + </a-form-model-item>
  253 + </a-col>
  254 + <a-col :span="12">
  255 + <a-form-model-item label="采购员" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operator">
  256 + <a-input
  257 + v-model="model.operator"
  258 + placeholder="请输入采购员"
  259 +
  260 + ></a-input>
  261 + </a-form-model-item>
  262 + </a-col>
  263 +<!-- <a-col :span="12">-->
  264 +<!-- <a-form-model-item label="不良品数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="blpsl">-->
  265 +<!-- <a-input type="number"-->
  266 +<!-- v-model="model.blpsl"-->
  267 +<!-- placeholder="请输入不良品数量"-->
  268 +
  269 +<!-- ></a-input>-->
  270 +<!-- </a-form-model-item>-->
  271 +<!-- </a-col>-->
  272 +
  273 +<!-- <a-col :span="12">-->
  274 +<!-- <a-form-model-item label="异常原因" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="iszt">-->
  275 +<!-- <a-select-->
  276 +<!-- ref="select"-->
  277 +<!-- v-model:value="model.ycyy"-->
  278 +<!-- >-->
  279 +<!-- <a-select-option value="1">来料不良</a-select-option>-->
  280 +<!-- <a-select-option value="2">货损</a-select-option>-->
  281 +<!-- <a-select-option value="3">来料少件</a-select-option>-->
  282 +<!-- <a-select-option value="4">发错货</a-select-option>-->
  283 +<!-- </a-select>-->
  284 +<!-- </a-form-model-item>-->
  285 +<!-- </a-col>-->
  286 +
  287 + </a-row>
  288 +
  289 + </a-form-model>
  290 + </j-form-container>
  291 + </a-spin>
  292 +
  293 + </j-modal>
  294 +
  295 +
  296 +
  297 +
  298 +
  299 +
  300 +<!-- 出库表单-->
  301 + <j-modal
  302 + :title="titleOut"
  303 + :width="width"
  304 + :visible="visibleInfoOut"
  305 + switchFullscreen
  306 + @ok="handleOkInfoOut"
  307 + :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
  308 + @cancel="handleCancelInfoOut"
  309 + cancelText="关闭">
  310 +
  311 + <a-spin :spinning="confirmLoading">
  312 + <j-form-container :disabled="formDisabled">
  313 + <a-form-model ref="form" :model="model2" :rules="validatorOutRules" slot="detail">
  314 + <a-row>
  315 + <a-col :span="12">
  316 + <a-form-model-item label="物料编码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="meterialCode">
  317 + <a-input
  318 + v-model="model2.meterialCode"
  319 + placeholder="请输入物料编码"
  320 + disabled="disabled"
  321 + ></a-input>
  322 + </a-form-model-item>
  323 + </a-col>
  324 + <a-col :span="12">
  325 + <a-form-model-item label="供应商合同号/订单号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="expressDeliveryNumber">
  326 + <a-input
  327 + v-model="model2.expressDeliveryNumber"
  328 + placeholder="请输入供应商合同号/订单号"
  329 +
  330 +
  331 + />
  332 + </a-form-model-item>
  333 + </a-col>
  334 + <a-col :span="12">
  335 + <a-form-model-item label="物料长描述" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="meterialReview">
  336 + <a-input
  337 + v-model="model2.meterialReview"
  338 + placeholder="请输入物料长描述"
  339 + disabled="disabled"
  340 + ></a-input>
  341 + </a-form-model-item>
  342 + </a-col>
  343 + <a-col :span="12">
  344 + <a-form-model-item label="中标合同编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="deliveryContractNumber">
  345 + <a-input
  346 + v-model="model2.deliveryContractNumber"
  347 + placeholder="请输入中标合同编号"
  348 +
  349 + ></a-input>
  350 + </a-form-model-item>
  351 + </a-col>
  352 + <a-col :span="12">
  353 + <a-form-model-item label="单位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="unit">
  354 + <a-input
  355 + v-model="model2.unit"
  356 + placeholder="请输入单位"
  357 + disabled="disabled"
  358 + ></a-input>
  359 + </a-form-model-item>
  360 + </a-col>
  361 + <a-col :span="12">
  362 + <a-form-model-item label="需求单位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="demandUnit">
  363 + <a-input
  364 + v-model="model2.demandUnit"
  365 + placeholder="请输入需求单位"
  366 +
  367 + ></a-input>
  368 + </a-form-model-item>
  369 + </a-col>
  370 +
  371 + <a-col :span="12">
  372 + <a-form-model-item label="品牌" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="brand">
  373 + <a-input
  374 + v-model="model2.brand"
  375 + placeholder="请输入品牌"
  376 + disabled="disabled"
  377 + ></a-input>
  378 + </a-form-model-item>
  379 + </a-col>
  380 + <a-col :span="12">
  381 + <a-form-model-item label="仓库" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="warehouse">
  382 + <a-input
  383 + v-model="model2.warehouse"
  384 + placeholder="请输入仓库"
  385 +
  386 + ></a-input>
  387 + </a-form-model-item>
  388 + </a-col>
  389 + <a-col :span="12">
  390 + <a-form-model-item label="出库数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="outboundQuantity">
  391 + <a-input
  392 + v-model="model2.outboundQuantity"
  393 + placeholder="请输入出库数量"
  394 +
  395 + ></a-input>
  396 + </a-form-model-item>
  397 + </a-col>
  398 + <a-col :span="12">
  399 + <a-form-model-item label="销售员" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="salesman">
  400 + <a-input
  401 + v-model="model2.salesman"
  402 + placeholder="请输入销售员"
  403 +
  404 + ></a-input>
  405 + </a-form-model-item>
  406 + </a-col>
  407 +
  408 + </a-row>
  409 +
  410 + </a-form-model>
  411 + </j-form-container>
  412 + </a-spin>
  413 +
  414 + </j-modal>
154 </a-card> 415 </a-card>
155 </template> 416 </template>
156 417
@@ -164,18 +425,26 @@ @@ -164,18 +425,26 @@
164 import TblTradeInventoryOutList from './TblTradeInventoryOutList.vue' 425 import TblTradeInventoryOutList from './TblTradeInventoryOutList.vue'
165 import TblTradeInventoryDefectiveProductList from './TblTradeInventoryDefectiveProductList.vue' 426 import TblTradeInventoryDefectiveProductList from './TblTradeInventoryDefectiveProductList.vue'
166 import TblTradeInventoryInfoList from './TblTradeInventoryInfoList.vue' 427 import TblTradeInventoryInfoList from './TblTradeInventoryInfoList.vue'
  428 + import TblTradInventoryIn from './TblTradInventoryIn.vue'
  429 + import TblTradBaseForm from '@views/trad/modules/base/TblTradBaseForm.vue'
  430 + import { getAction, postAction } from '@api/manage'
  431 +
167 export default { 432 export default {
168 name: 'TblTradeInventoryList', 433 name: 'TblTradeInventoryList',
169 mixins:[JeecgListMixin, mixinDevice], 434 mixins:[JeecgListMixin, mixinDevice],
170 components: { 435 components: {
  436 + TblTradBaseForm,
171 TblTradeInventoryModal, 437 TblTradeInventoryModal,
172 TblTradeInventoryInList, 438 TblTradeInventoryInList,
173 TblTradeInventoryOutList, 439 TblTradeInventoryOutList,
174 TblTradeInventoryDefectiveProductList, 440 TblTradeInventoryDefectiveProductList,
175 TblTradeInventoryInfoList, 441 TblTradeInventoryInfoList,
  442 + TblTradInventoryIn
176 }, 443 },
  444 +
177 data () { 445 data () {
178 return { 446 return {
  447 + confirmLoading: false,
179 description: '贸易库存表管理页面', 448 description: '贸易库存表管理页面',
180 // 表头 449 // 表头
181 columns: [ 450 columns: [
@@ -192,17 +461,17 @@ @@ -192,17 +461,17 @@
192 { 461 {
193 title:'物料编码', 462 title:'物料编码',
194 align:"center", 463 align:"center",
195 - dataIndex: 'materialCode' 464 + dataIndex: 'meterialCode'
196 }, 465 },
197 { 466 {
198 title:'物料长描述', 467 title:'物料长描述',
199 align:"center", 468 align:"center",
200 - dataIndex: 'materialDescription' 469 + dataIndex: 'meterialReview'
201 }, 470 },
202 { 471 {
203 title:'计量单位', 472 title:'计量单位',
204 align:"center", 473 align:"center",
205 - dataIndex: 'measurementUnit' 474 + dataIndex: 'unit'
206 }, 475 },
207 { 476 {
208 title:'品牌', 477 title:'品牌',
@@ -224,21 +493,21 @@ @@ -224,21 +493,21 @@
224 align:"center", 493 align:"center",
225 dataIndex: 'totalQuantity' 494 dataIndex: 'totalQuantity'
226 }, 495 },
227 - {  
228 - title:'单价(不含税,元)',  
229 - align:"center",  
230 - dataIndex: 'unitPrice'  
231 - },  
232 - {  
233 - title:'税率(%)',  
234 - align:"center",  
235 - dataIndex: 'taxRate'  
236 - },  
237 - {  
238 - title:'总价(不含税,元)',  
239 - align:"center",  
240 - dataIndex: 'totalPrice'  
241 - }, 496 + // {
  497 + // title:'单价(不含税,元)',
  498 + // align:"center",
  499 + // dataIndex: 'unitPrice'
  500 + // },
  501 + // {
  502 + // title:'税率(%)',
  503 + // align:"center",
  504 + // dataIndex: 'taxRate'
  505 + // },
  506 + // {
  507 + // title:'总价(不含税,元)',
  508 + // align:"center",
  509 + // dataIndex: 'totalPrice'
  510 + // },
242 { 511 {
243 title:'首次入库时间', 512 title:'首次入库时间',
244 align:"center", 513 align:"center",
@@ -270,6 +539,9 @@ @@ -270,6 +539,9 @@
270 } 539 }
271 ], 540 ],
272 url: { 541 url: {
  542 + out: '/trade/tblTradeInventory/out',
  543 + searchHth: '/trade/tblTradeBidSub/queryHtInfoByHthAndWlbm',
  544 + store: '/trade/tblTradeInventory/add',
273 list: "/trade/tblTradeInventory/list", 545 list: "/trade/tblTradeInventory/list",
274 delete: "/trade/tblTradeInventory/delete", 546 delete: "/trade/tblTradeInventory/delete",
275 deleteBatch: "/trade/tblTradeInventory/deleteBatch", 547 deleteBatch: "/trade/tblTradeInventory/deleteBatch",
@@ -279,24 +551,99 @@ @@ -279,24 +551,99 @@
279 }, 551 },
280 dictOptions:{}, 552 dictOptions:{},
281 superFieldList:[], 553 superFieldList:[],
  554 + model: {
  555 + iszt: '1',
  556 + // operator: this.$store.state.user.info.realname,
  557 + blpsl: 0,
  558 + },
  559 + model2: {
282 560
283 - materialCode:'', 561 + },
  562 + meterialCode:'',
  563 + meterialReview:'',
  564 + unit:'',
  565 + brand:'',
284 width:896, 566 width:896,
  567 + kcmxWidth: 1000,
285 visible:false, 568 visible:false,
286 visibleOut:false, 569 visibleOut:false,
287 visibleDefective:false, 570 visibleDefective:false,
288 visibleInfo:false, 571 visibleInfo:false,
  572 + visibleInfoIn:false,
  573 + visibleInfoOut:false,
  574 + disableSubmit: false,
  575 + title: '入库',
  576 + titleOut: '出库',
  577 + labelCol: {
  578 + xs: { span: 24 },
  579 + sm: { span: 5 },
  580 + },
  581 + wrapperCol: {
  582 + xs: { span: 24 },
  583 + sm: { span: 16 },
  584 + },
  585 + validatorRules: {
  586 + meterialCode: [{ required: true, message: '请输入物料编码!' },],
  587 + hth: [{ required: true, message: '请输入合同/订单号!' },],
  588 + meterialReview: [{ required: true, message: '请输入物料长描述!' },],
  589 + wldh: [{ required: true, message: '请输入物流单号!' },],
  590 + unit: [{ required: true, message: '请输入单位!' },],
  591 + // iszt: [{ required: true, message: '请选择是否在途!' },],
  592 + cs: [{ required: true, message: '请输入供货商名称!' },],
  593 + brand: [{ required: true, message: '请输入品牌!' },],
  594 + warehouse: [{ required: true, message: '请输入仓库!' },],
  595 + rksl: [{ required: true, message: '请输入入库数量!' },],
  596 + operator: [{ required: true, message: '请输入采购员!' },],
  597 + },
  598 + validatorOutRules: {
  599 + meterialCode: [{ required: true, message: '请输入物料编码!' },],
  600 + expressDeliveryNumber: [{ required: true, message: '请输入供应商合同号/订单号!' },],
  601 + meterialReview: [{ required: true, message: '请输入物料长描述!' },],
  602 + deliveryContractNumber: [{ required: true, message: '请输入中标合同编号!' },],
  603 + unit: [{ required: true, message: '请输入单位!' },],
  604 + demandUnit: [{ required: true, message: '请输入需求单位!' },],
  605 + brand: [{ required: true, message: '请输入品牌!' },],
  606 + warehouse: [{ required: true, message: '请输入仓库!' },],
  607 + outboundQuantity: [{ required: true, message: '请输入出库数量!' },],
  608 + salesman: [{ required: true, message: '请输入销售员!' },],
  609 + },
289 } 610 }
290 }, 611 },
291 created() { 612 created() {
292 this.getSuperFieldList(); 613 this.getSuperFieldList();
293 }, 614 },
294 computed: { 615 computed: {
  616 + formDisabled() {
  617 + return this.disabled
  618 + },
295 importExcelUrl: function(){ 619 importExcelUrl: function(){
296 return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; 620 return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
297 }, 621 },
298 }, 622 },
299 methods: { 623 methods: {
  624 + searchHth(){
  625 + getAction(this.url.searchHth,{
  626 + hth: this.model.hth,
  627 + wlbm: this.model.meterialCode
  628 + }).then(res=>{
  629 + if (res.success){
  630 + if (res.result.sl == null || res.result.cs == null || res.result.wldh == null){
  631 + // this.model = {
  632 + // iszt: '1',
  633 + // operator: this.$store.state.user.info.realname,
  634 + // blpsl: 0,
  635 + // }
  636 + this.$message.error("未查询到订单信息!")
  637 + }else {
  638 + this.$set(this.model, "wldh", res.result.wldh);
  639 + this.$set(this.model, "cs", res.result.cs);
  640 + this.$set(this.model, "rksl", res.result.sl);
  641 + this.$set(this.model, "sl", res.result.sl);
  642 + this.$message.success("查询订单信息成功!")
  643 + }
  644 + }
  645 + })
  646 + },
300 handleInventoryIn(){ 647 handleInventoryIn(){
301 this.visible = true; 648 this.visible = true;
302 }, 649 },
@@ -307,10 +654,29 @@ @@ -307,10 +654,29 @@
307 this.visibleDefective = true; 654 this.visibleDefective = true;
308 }, 655 },
309 handleInventoryInfo(recode){ 656 handleInventoryInfo(recode){
310 - this.materialCode = recode.materialCode; 657 + this.meterialCode = recode.meterialCode;
311 this.visibleInfo = true; 658 this.visibleInfo = true;
312 }, 659 },
  660 + handleInventoryInfoIn(recode){
  661 + this.model = {}
  662 + console.log(recode)
  663 + this.model.meterialCode = recode.meterialCode;
  664 + this.model.meterialReview = recode.meterialReview;
  665 + this.model.unit = recode.unit;
  666 + this.model.brand = recode.brand;
  667 + this.visibleInfoIn = true;
  668 + },
  669 + handleInventoryInfoOut(recode){
  670 + this.model2= {}
  671 + console.log("..............",recode)
  672 + this.model2.meterialCode = recode.meterialCode;
  673 + this.model2.meterialReview = recode.meterialReview;
  674 + this.model2.unit = recode.unit;
  675 + this.model2.brand = recode.brand;
  676 + this.visibleInfoOut = true;
  677 + },
313 handleCancel(){ 678 handleCancel(){
  679 + this.searchQuery();
314 this.visible = false; 680 this.visible = false;
315 }, 681 },
316 handleCancelOut(){ 682 handleCancelOut(){
@@ -322,20 +688,95 @@ @@ -322,20 +688,95 @@
322 handleCancelInfo(){ 688 handleCancelInfo(){
323 this.visibleInfo = false; 689 this.visibleInfo = false;
324 }, 690 },
  691 + // 出库页面确认
  692 + handleOkInfoOut(){
  693 + this.model2.materialCode = this.model2.meterialCode
  694 + this.model2.materialDescription = this.model2.meterialReview
  695 + this.model2.measurementUnit = this.model2.unit
  696 + postAction(this.url.out,this.model2).then(res=>{
  697 + if (res.success){
  698 + this.$message.success("提交成功")
  699 + }else{
  700 + this.$message.error(res.message)
  701 + }
  702 + })
  703 + console.log("11111111111111111111111")
  704 + this.searchQuery();
  705 + console.log("222222222222222222")
  706 + this.visibleInfoOut = false
  707 + },
  708 + // 关闭出库页面
  709 + handleCancelInfoOut(){
  710 + this.searchQuery();
  711 + this.visibleInfoOut = false
  712 + }
  713 +
  714 +
  715 + ,
  716 + handleOkInfoIn(){
  717 + this.$refs.form.validate((valid) => {
  718 + if (valid){
  719 + postAction(this.url.store,{
  720 + materialCode: this.model.meterialCode, //物料编码
  721 + materialDescription: this.model.meterialReview, //长描述
  722 + measurementUnit: this.model.unit, //单位
  723 + brand: this.model.brand,//品牌
  724 + hth: this.model.hth, //合同号
  725 + wldh: this.model.wldh, //物流单号
  726 + warehouse: this.model.warehouse, //仓库
  727 + operator: this.model.operator, //采购员
  728 + rksl: this.model.rksl, //入库数量
  729 + cs: this.model.cs, //厂商
  730 + }).then(res=>{
  731 + if (res.success){
  732 + this.$message.success("提交成功")
  733 + }else {
  734 + this.$message.error(res.message)
  735 + }
  736 + })
  737 + console.log("提交表单内容")
  738 + this.visibleInfoIn = false
  739 + }
  740 + })
  741 + console.log("33333")
  742 + this.loadData(1);
  743 + this.searchQuery();
  744 + console.log("4444")
  745 + },
  746 + handleCancelInfoIn(){
  747 + this.visibleInfoIn = false
  748 + this.model = {}
  749 + this.model = {
  750 + iszt: '1',
  751 + operator: this.$store.state.user.info.realname,
  752 + blpsl: 0,
  753 + }
  754 + this.searchQuery();
  755 + },
325 initDictConfig(){ 756 initDictConfig(){
326 }, 757 },
  758 + submitCallback(){
  759 + this.$emit('ok');
  760 + this.visible = false;
  761 + },
  762 + add () {
  763 + this.visible=true
  764 + this.$nextTick(()=>{
  765 + this.$refs.realForm.add();
  766 + })
  767 + },
327 getSuperFieldList(){ 768 getSuperFieldList(){
328 let fieldList=[]; 769 let fieldList=[];
329 - fieldList.push({type:'string',value:'materialCode',text:'物料编码',dictCode:''})  
330 - fieldList.push({type:'string',value:'materialDescription',text:'物料描述',dictCode:''})  
331 - fieldList.push({type:'string',value:'measurementUnit',text:'计量单位',dictCode:''}) 770 + fieldList.push({type:'string',value:'meterialCode',text:'物料编码',dictCode:''})
  771 + fieldList.push({type:'string',value:'meterialReview',text:'物料长描述',dictCode:''})
  772 + fieldList.push({type:'string',value:'unit',text:'单位',dictCode:''})
332 fieldList.push({type:'string',value:'brand',text:'品牌',dictCode:''}) 773 fieldList.push({type:'string',value:'brand',text:'品牌',dictCode:''})
333 fieldList.push({type:'int',value:'actualInventory',text:'实际库存量',dictCode:''}) 774 fieldList.push({type:'int',value:'actualInventory',text:'实际库存量',dictCode:''})
334 fieldList.push({type:'int',value:'quantityInTransit',text:'在途数量',dictCode:''}) 775 fieldList.push({type:'int',value:'quantityInTransit',text:'在途数量',dictCode:''})
335 fieldList.push({type:'int',value:'totalQuantity',text:'总数量',dictCode:''}) 776 fieldList.push({type:'int',value:'totalQuantity',text:'总数量',dictCode:''})
336 - fieldList.push({type:'BigDecimal',value:'unitPrice',text:'单价(不含税,元)',dictCode:''})  
337 - fieldList.push({type:'string',value:'taxRate',text:'税率(%)',dictCode:''})  
338 - fieldList.push({type:'BigDecimal',value:'totalPrice',text:'总价(不含税,元)',dictCode:''}) 777 + // fieldList.push({type:'BigDecimal',value:'unitPrice',text:'单价(不含税,元)',dictCode:''})
  778 + // fieldList.push({type:'string',value:'taxRate',text:'税率(%)',dictCode:''})
  779 + // fieldList.push({type:'BigDecimal',value:'totalPrice',text:'总价(不含税,元)',dictCode:''})
339 fieldList.push({type:'date',value:'firstStorageTime',text:'首次入库时间'}) 780 fieldList.push({type:'date',value:'firstStorageTime',text:'首次入库时间'})
340 fieldList.push({type:'date',value:'lastOutboundTime',text:'最后一次出库时间'}) 781 fieldList.push({type:'date',value:'lastOutboundTime',text:'最后一次出库时间'})
341 fieldList.push({type:'string',value:'daysInStock',text:'在库天数',dictCode:''}) 782 fieldList.push({type:'string',value:'daysInStock',text:'在库天数',dictCode:''})
@@ -13,10 +13,10 @@ @@ -13,10 +13,10 @@
13 <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> 13 <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
14 <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> 14 <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
15 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> 15 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
16 - <a @click="handleToggleSearch" style="margin-left: 8px">  
17 - {{ toggleSearchStatus ? '收起' : '展开' }}  
18 - <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>  
19 - </a> 16 +<!-- <a @click="handleToggleSearch" style="margin-left: 8px">-->
  17 +<!-- {{ toggleSearchStatus ? '收起' : '展开' }}-->
  18 +<!-- <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>-->
  19 +<!-- </a>-->
20 </span> 20 </span>
21 </a-col> 21 </a-col>
22 </a-row> 22 </a-row>
@@ -132,7 +132,7 @@ @@ -132,7 +132,7 @@
132 // } 132 // }
133 // }, 133 // },
134 { 134 {
135 - title:'单号', 135 + title:'出库单号',
136 align:"center", 136 align:"center",
137 dataIndex: 'waybillNum' 137 dataIndex: 'waybillNum'
138 }, 138 },
@@ -147,7 +147,7 @@ @@ -147,7 +147,7 @@
147 dataIndex: 'materialDescription' 147 dataIndex: 'materialDescription'
148 }, 148 },
149 { 149 {
150 - title:'计量单位', 150 + title:'单位',
151 align:"center", 151 align:"center",
152 dataIndex: 'measurementUnit' 152 dataIndex: 'measurementUnit'
153 }, 153 },
@@ -167,17 +167,22 @@ @@ -167,17 +167,22 @@
167 dataIndex: 'inventoryQuantity' 167 dataIndex: 'inventoryQuantity'
168 }, 168 },
169 { 169 {
  170 + title:'出库时间',
  171 + align:"center",
  172 + dataIndex: 'createTime'
  173 + },
  174 + {
170 title:'操作人', 175 title:'操作人',
171 align:"center", 176 align:"center",
172 dataIndex: 'createBy' 177 dataIndex: 'createBy'
173 }, 178 },
174 { 179 {
175 - title:'合同单号/快递单号', 180 + title:'供应商合同号/订单号',
176 align:"center", 181 align:"center",
177 dataIndex: 'expressDeliveryNumber' 182 dataIndex: 'expressDeliveryNumber'
178 }, 183 },
179 { 184 {
180 - title:'交货合同编号', 185 + title:'中标合同编号',
181 align:"center", 186 align:"center",
182 dataIndex: 'deliveryContractNumber' 187 dataIndex: 'deliveryContractNumber'
183 }, 188 },
@@ -187,38 +192,15 @@ @@ -187,38 +192,15 @@
187 dataIndex: 'demandUnit' 192 dataIndex: 'demandUnit'
188 }, 193 },
189 { 194 {
190 - title:'时间日期',  
191 - align:"center",  
192 - dataIndex: 'createTime'  
193 - },  
194 - {  
195 - title:'销售',  
196 - align:"center",  
197 - dataIndex: 'operator'  
198 - },  
199 - {  
200 title:'仓库', 195 title:'仓库',
201 align:"center", 196 align:"center",
202 dataIndex: 'warehouse' 197 dataIndex: 'warehouse'
203 }, 198 },
204 { 199 {
205 - title:'审核人', 200 + title:'销售员',
206 align:"center", 201 align:"center",
207 - dataIndex: 'reviewer'  
208 - },  
209 - // {  
210 - // title:'出库/入库',  
211 - // align:"center",  
212 - // dataIndex: 'type'  
213 - // },  
214 - // {  
215 - // title: '操作',  
216 - // dataIndex: 'action',  
217 - // align:"center",  
218 - // fixed:"right",  
219 - // width:147,  
220 - // scopedSlots: { customRender: 'action' }  
221 - // } 202 + dataIndex: 'salesman'
  203 + }
222 ], 204 ],
223 url: { 205 url: {
224 list: "/trade/tblTradeInventoryIn/list", 206 list: "/trade/tblTradeInventoryIn/list",
@@ -244,6 +226,12 @@ @@ -244,6 +226,12 @@
244 }, 226 },
245 }, 227 },
246 methods: { 228 methods: {
  229 + searchReset(){
  230 + this.queryParam = {
  231 + type : '出库'
  232 + };
  233 + this.searchQuery(this.queryParam)
  234 + },
247 initDictConfig(){ 235 initDictConfig(){
248 }, 236 },
249 getSuperFieldList(){ 237 getSuperFieldList(){
@@ -3,81 +3,81 @@ @@ -3,81 +3,81 @@
3 <j-form-container :disabled="formDisabled"> 3 <j-form-container :disabled="formDisabled">
4 <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> 4 <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
5 <a-row> 5 <a-row>
6 - <a-col :span="12">  
7 - <a-form-model-item label="单号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="waybillNum">  
8 - <a-input v-model="model.waybillNum" placeholder="请输入单号" ></a-input>  
9 - </a-form-model-item>  
10 - </a-col> 6 +<!-- <a-col :span="12">-->
  7 +<!-- <a-form-model-item label="单号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="waybillNum">-->
  8 +<!-- <a-input v-model="model.waybillNum" placeholder="请输入单号" ></a-input>-->
  9 +<!-- </a-form-model-item>-->
  10 +<!-- </a-col>-->
11 <a-col :span="12"> 11 <a-col :span="12">
12 <a-form-model-item label="物料编码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialCode"> 12 <a-form-model-item label="物料编码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialCode">
13 - <a-input v-model="model.materialCode" placeholder="请输入物料编码" ></a-input>  
14 - </a-form-model-item>  
15 - </a-col>  
16 - <a-col :span="12">  
17 - <a-form-model-item label="物料描述" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialDescription">  
18 - <a-input v-model="model.materialDescription" placeholder="请输入物料描述" ></a-input>  
19 - </a-form-model-item>  
20 - </a-col>  
21 - <a-col :span="12">  
22 - <a-form-model-item label="计量单位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="measurementUnit">  
23 - <a-input v-model="model.measurementUnit" placeholder="请输入计量单位" ></a-input> 13 + <a-input-search
  14 + v-model="model.materialCode" placeholder="请输入物料编码"
  15 + @search="searchMaterialCode"
  16 + ></a-input-search>
24 </a-form-model-item> 17 </a-form-model-item>
25 </a-col> 18 </a-col>
26 <a-col :span="12"> 19 <a-col :span="12">
27 - <a-form-model-item label="品牌" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="brand">  
28 - <a-input v-model="model.brand" placeholder="请输入品牌" ></a-input> 20 + <a-form-model-item label="供应商合同号/订单号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="expressDeliveryNumber">
  21 + <a-input v-model="model.expressDeliveryNumber" placeholder="请输入供应商合同号/订单号" ></a-input>
29 </a-form-model-item> 22 </a-form-model-item>
30 </a-col> 23 </a-col>
31 <a-col :span="12"> 24 <a-col :span="12">
32 - <a-form-model-item label="实际库存量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="actualInventory">  
33 - <a-input v-model="model.actualInventory" placeholder="请输入实际库存量" ></a-input> 25 + <a-form-model-item label="物料长描述" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialDescription">
  26 + <a-input v-model="model.materialDescription" placeholder="请输入物料长描述" disabled="disabled"></a-input>
34 </a-form-model-item> 27 </a-form-model-item>
35 </a-col> 28 </a-col>
36 <a-col :span="12"> 29 <a-col :span="12">
37 - <a-form-model-item label="出库数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="outboundQuantity">  
38 - <a-input v-model="model.outboundQuantity" placeholder="请输入出库数量" ></a-input> 30 + <a-form-model-item label="中标合同编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="deliveryContractNumber">
  31 + <a-input v-model="model.deliveryContractNumber" placeholder="请输入中标合同编号" ></a-input>
39 </a-form-model-item> 32 </a-form-model-item>
40 </a-col> 33 </a-col>
41 <a-col :span="12"> 34 <a-col :span="12">
42 - <a-form-model-item label="操作人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operator">  
43 - <a-input v-model="model.operator" placeholder="请输入操作人" ></a-input> 35 + <a-form-model-item label="单位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="measurementUnit">
  36 + <a-input v-model="model.measurementUnit" placeholder="请输入单位" disabled="disabled"></a-input>
44 </a-form-model-item> 37 </a-form-model-item>
45 </a-col> 38 </a-col>
46 <a-col :span="12"> 39 <a-col :span="12">
47 - <a-form-model-item label="合同单号/快递单号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="expressDeliveryNumber">  
48 - <a-input v-model="model.expressDeliveryNumber" placeholder="请输入合同单号/快递单号" ></a-input>  
49 - </a-form-model-item>  
50 - </a-col>  
51 - <a-col :span="12">  
52 - <a-form-model-item label="交货合同编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="deliveryContractNumber">  
53 - <a-input v-model="model.deliveryContractNumber" placeholder="请输入交货合同编号" ></a-input> 40 + <a-form-model-item label="需求单位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="demandUnit">
  41 + <a-input v-model="model.demandUnit" placeholder="请输入需求单位" ></a-input>
54 </a-form-model-item> 42 </a-form-model-item>
55 </a-col> 43 </a-col>
56 <a-col :span="12"> 44 <a-col :span="12">
57 - <a-form-model-item label="需求单位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="demandUnit">  
58 - <a-input v-model="model.demandUnit" placeholder="请输入需求单位" ></a-input> 45 + <a-form-model-item label="品牌" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="brand">
  46 + <a-input v-model="model.brand" placeholder="请输入品牌" disabled="disabled" ></a-input>
59 </a-form-model-item> 47 </a-form-model-item>
60 </a-col> 48 </a-col>
  49 +
61 <a-col :span="12"> 50 <a-col :span="12">
62 <a-form-model-item label="仓库" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="warehouse"> 51 <a-form-model-item label="仓库" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="warehouse">
63 <a-input v-model="model.warehouse" placeholder="请输入仓库" ></a-input> 52 <a-input v-model="model.warehouse" placeholder="请输入仓库" ></a-input>
64 </a-form-model-item> 53 </a-form-model-item>
65 </a-col> 54 </a-col>
66 <a-col :span="12"> 55 <a-col :span="12">
67 - <a-form-model-item label="销售人员" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="salesman">  
68 - <a-input v-model="model.salesman" placeholder="请输入销售人员" ></a-input> 56 + <a-form-model-item label="不良品数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="blpsl">
  57 + <a-input v-model="model.blpsl" placeholder="请输入不良品数量" ></a-input>
69 </a-form-model-item> 58 </a-form-model-item>
70 </a-col> 59 </a-col>
71 <a-col :span="12"> 60 <a-col :span="12">
72 - <a-form-model-item label="审核人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="reviewer">  
73 - <a-input v-model="model.reviewer" placeholder="请输入审核人" ></a-input> 61 + <a-form-model-item label="销售员" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="salesman">
  62 + <a-input v-model="model.salesman" placeholder="请输入销售员" ></a-input>
74 </a-form-model-item> 63 </a-form-model-item>
75 </a-col> 64 </a-col>
76 <a-col :span="12"> 65 <a-col :span="12">
77 - <a-form-model-item label="合同单号/快递单号(退换)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="exchangeExpressDeliveryNumber">  
78 - <a-input v-model="model.exchangeExpressDeliveryNumber" placeholder="请输入合同单号/快递单号(退换)" ></a-input> 66 + <a-form-model-item label="异常原因" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ycyy">
  67 + <a-select
  68 + ref="select"
  69 + v-model:value="model.ycyy"
  70 + >
  71 + <a-select-option value="1">来料不良</a-select-option>
  72 + <a-select-option value="2">货损</a-select-option>
  73 + <a-select-option value="3">来料少件</a-select-option>
  74 + <a-select-option value="4">发错货</a-select-option>
  75 + </a-select>
79 </a-form-model-item> 76 </a-form-model-item>
80 </a-col> 77 </a-col>
  78 +
  79 +
  80 +
81 </a-row> 81 </a-row>
82 </a-form-model> 82 </a-form-model>
83 </j-form-container> 83 </j-form-container>
@@ -104,6 +104,7 @@ @@ -104,6 +104,7 @@
104 data () { 104 data () {
105 return { 105 return {
106 model:{ 106 model:{
  107 + ycyy: '1'
107 }, 108 },
108 labelCol: { 109 labelCol: {
109 xs: { span: 24 }, 110 xs: { span: 24 },
@@ -115,8 +116,20 @@ @@ -115,8 +116,20 @@
115 }, 116 },
116 confirmLoading: false, 117 confirmLoading: false,
117 validatorRules: { 118 validatorRules: {
  119 + materialCode: [{ required: true, message: '物料编码不能为空', trigger: 'blur' }],
  120 + expressDeliveryNumber: [{ required: true, message: '供应商合同号/订单号不能为空', trigger: 'blur' }],
  121 + materialDescription: [{ required: true, message: '物料长描述不能为空', trigger: 'blur' }],
  122 + deliveryContractNumber: [{ required: true, message: '中标合同编号不能为空', trigger: 'blur' }],
  123 + measurementUnit: [{ required: true, message: '单位不能为空', trigger: 'blur' }],
  124 + demandUnit: [{ required: true, message: '需求单位不能为空', trigger: 'blur' }],
  125 + brand: [{ required: true, message: '品牌不能为空', trigger: 'blur' }],
  126 + warehouse: [{ required: true, message: '仓库不能为空', trigger: 'blur' }],
  127 + blpsl: [{ required: true, message: '不良品数量不能为空', trigger: 'blur' }],
  128 + salesman: [{ required: true, message: '销售员不能为空', trigger: 'blur' }],
  129 + ycyy: [{ required: true, message: '异常原因不能为空', trigger: 'blur' }],
118 }, 130 },
119 url: { 131 url: {
  132 + queryByMaterialCode: "/trade/tblTradeMeterial/queryByMaterialCode",
120 add: "/trade/tblTradeInventoryDefectiveProduct/add", 133 add: "/trade/tblTradeInventoryDefectiveProduct/add",
121 edit: "/trade/tblTradeInventoryDefectiveProduct/edit", 134 edit: "/trade/tblTradeInventoryDefectiveProduct/edit",
122 queryById: "/trade/tblTradeInventoryDefectiveProduct/queryById" 135 queryById: "/trade/tblTradeInventoryDefectiveProduct/queryById"
@@ -133,6 +146,19 @@ @@ -133,6 +146,19 @@
133 this.modelDefault = JSON.parse(JSON.stringify(this.model)); 146 this.modelDefault = JSON.parse(JSON.stringify(this.model));
134 }, 147 },
135 methods: { 148 methods: {
  149 + searchMaterialCode(){
  150 + getAction(this.url.queryByMaterialCode,{
  151 + meterialCode: this.model.materialCode
  152 + }).then((res)=>{
  153 + if(res.success){
  154 + this.$set(this.model, "materialDescription", res.result.meterialReview);
  155 + this.$set(this.model, "measurementUnit", res.result.unit);
  156 + this.$set(this.model, "brand", res.result.brand);
  157 + }else{
  158 + this.$message.warning(res.message);
  159 + }
  160 + })
  161 + },
136 add () { 162 add () {
137 this.edit(this.modelDefault); 163 this.edit(this.modelDefault);
138 }, 164 },