给商品模块增加批量修改的功能
This commit is contained in:
@@ -56,6 +56,7 @@ const getSerialMaterialBySelect = (params)=>getAction("/material/getMaterialEnab
|
|||||||
const getMaterialByBarCode = (params)=>getAction("/material/getMaterialByBarCode",params);
|
const getMaterialByBarCode = (params)=>getAction("/material/getMaterialByBarCode",params);
|
||||||
const getMaxBarCode = (params)=>getAction("/material/getMaxBarCode",params);
|
const getMaxBarCode = (params)=>getAction("/material/getMaxBarCode",params);
|
||||||
const checkMaterialBarCode = (params)=>getAction("/materialsExtend/checkIsBarCodeExist",params);
|
const checkMaterialBarCode = (params)=>getAction("/materialsExtend/checkIsBarCodeExist",params);
|
||||||
|
const batchUpdateMaterial = (params)=>postAction("/material/batchUpdate",params);
|
||||||
//序列号
|
//序列号
|
||||||
const addSerialNumber = (params)=>postAction("/serialNumber/add",params);
|
const addSerialNumber = (params)=>postAction("/serialNumber/add",params);
|
||||||
const editSerialNumber = (params)=>putAction("/serialNumber/update",params);
|
const editSerialNumber = (params)=>putAction("/serialNumber/update",params);
|
||||||
@@ -149,6 +150,7 @@ export {
|
|||||||
getMaterialByBarCode,
|
getMaterialByBarCode,
|
||||||
getMaxBarCode,
|
getMaxBarCode,
|
||||||
checkMaterialBarCode,
|
checkMaterialBarCode,
|
||||||
|
batchUpdateMaterial,
|
||||||
addSerialNumber,
|
addSerialNumber,
|
||||||
editSerialNumber,
|
editSerialNumber,
|
||||||
checkSerialNumber,
|
checkSerialNumber,
|
||||||
|
|||||||
@@ -97,7 +97,8 @@
|
|||||||
<a-menu-item key="1" v-if="btnEnableList.indexOf(1)>-1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
|
<a-menu-item key="1" v-if="btnEnableList.indexOf(1)>-1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
|
||||||
<a-menu-item key="2" v-if="btnEnableList.indexOf(1)>-1" @click="batchSetStatus(true)"><a-icon type="check-square"/>启用</a-menu-item>
|
<a-menu-item key="2" v-if="btnEnableList.indexOf(1)>-1" @click="batchSetStatus(true)"><a-icon type="check-square"/>启用</a-menu-item>
|
||||||
<a-menu-item key="3" v-if="btnEnableList.indexOf(1)>-1" @click="batchSetStatus(false)"><a-icon type="close-square"/>禁用</a-menu-item>
|
<a-menu-item key="3" v-if="btnEnableList.indexOf(1)>-1" @click="batchSetStatus(false)"><a-icon type="close-square"/>禁用</a-menu-item>
|
||||||
<a-menu-item key="4" v-if="btnEnableList.indexOf(1)>-1" @click="batchSetMaterialCurrentStock()"><a-icon type="stock"/>修正库存</a-menu-item>
|
<a-menu-item key="4" v-if="btnEnableList.indexOf(1)>-1" @click="batchEdit()"><a-icon type="edit"/>批量编辑</a-menu-item>
|
||||||
|
<a-menu-item key="5" v-if="btnEnableList.indexOf(1)>-1" @click="batchSetMaterialCurrentStock()"><a-icon type="stock"/>修正库存</a-menu-item>
|
||||||
</a-menu>
|
</a-menu>
|
||||||
<a-button>
|
<a-button>
|
||||||
批量操作 <a-icon type="down" />
|
批量操作 <a-icon type="down" />
|
||||||
@@ -160,12 +161,14 @@
|
|||||||
<!-- table区域-end -->
|
<!-- table区域-end -->
|
||||||
<!-- 表单区域 -->
|
<!-- 表单区域 -->
|
||||||
<material-modal ref="modalForm" @ok="modalFormOk"></material-modal>
|
<material-modal ref="modalForm" @ok="modalFormOk"></material-modal>
|
||||||
|
<batch-set-info-modal ref="batchSetInfoModalForm" @ok="modalFormOk"></batch-set-info-modal>
|
||||||
</a-card>
|
</a-card>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import MaterialModal from './modules/MaterialModal'
|
import MaterialModal from './modules/MaterialModal'
|
||||||
|
import BatchSetInfoModal from './modules/BatchSetInfoModal'
|
||||||
import { queryMaterialCategoryTreeList } from '@/api/api'
|
import { queryMaterialCategoryTreeList } from '@/api/api'
|
||||||
import { postAction } from '@/api/manage'
|
import { postAction } from '@/api/manage'
|
||||||
import { getMpListShort } from '@/utils/util'
|
import { getMpListShort } from '@/utils/util'
|
||||||
@@ -179,6 +182,7 @@
|
|||||||
mixins:[JeecgListMixin],
|
mixins:[JeecgListMixin],
|
||||||
components: {
|
components: {
|
||||||
MaterialModal,
|
MaterialModal,
|
||||||
|
BatchSetInfoModal,
|
||||||
JEllipsis,
|
JEllipsis,
|
||||||
JDate
|
JDate
|
||||||
},
|
},
|
||||||
@@ -321,7 +325,7 @@
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
batchSetMaterialCurrentStock: function () {
|
batchSetMaterialCurrentStock () {
|
||||||
if (this.selectedRowKeys.length <= 0) {
|
if (this.selectedRowKeys.length <= 0) {
|
||||||
this.$message.warning('请选择一条记录!');
|
this.$message.warning('请选择一条记录!');
|
||||||
} else {
|
} else {
|
||||||
@@ -350,6 +354,18 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
batchEdit() {
|
||||||
|
if (this.selectedRowKeys.length <= 0) {
|
||||||
|
this.$message.warning('请选择一条记录!');
|
||||||
|
} else {
|
||||||
|
let ids = "";
|
||||||
|
for (let a = 0; a < this.selectedRowKeys.length; a++) {
|
||||||
|
ids += this.selectedRowKeys[a] + ",";
|
||||||
|
}
|
||||||
|
this.$refs.batchSetInfoModalForm.edit(ids);
|
||||||
|
this.$refs.batchSetInfoModalForm.title = "批量编辑";
|
||||||
|
}
|
||||||
|
},
|
||||||
handleEdit: function (record) {
|
handleEdit: function (record) {
|
||||||
this.$refs.modalForm.edit(record);
|
this.$refs.modalForm.edit(record);
|
||||||
this.$refs.modalForm.title = "编辑";
|
this.$refs.modalForm.title = "编辑";
|
||||||
|
|||||||
157
jshERP-web/src/views/material/modules/BatchSetInfoModal.vue
Normal file
157
jshERP-web/src/views/material/modules/BatchSetInfoModal.vue
Normal file
@@ -0,0 +1,157 @@
|
|||||||
|
<template>
|
||||||
|
<a-modal
|
||||||
|
:title="title"
|
||||||
|
:width="1000"
|
||||||
|
:visible="visible"
|
||||||
|
:confirm-loading="confirmLoading"
|
||||||
|
@ok="handleOk"
|
||||||
|
@cancel="handleCancel"
|
||||||
|
wrapClassName="ant-modal-cust-warp"
|
||||||
|
style="top:25%;height: 45%;overflow-y: hidden">
|
||||||
|
<a-spin :spinning="confirmLoading">
|
||||||
|
<a-form :form="form">
|
||||||
|
<a-row class="form-row" :gutter="24">
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="颜色">
|
||||||
|
<a-input placeholder="请输入颜色" v-decorator.trim="[ 'color' ]" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="基础重量">
|
||||||
|
<a-input-number style="width: 100%" placeholder="请输入基础重量(kg)" v-decorator.trim="[ 'weight' ]" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="保质期">
|
||||||
|
<a-input-number style="width: 100%" placeholder="请输入保质期(天)" v-decorator.trim="[ 'expiryNum' ]" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="类别">
|
||||||
|
<a-tree-select style="width:100%" :dropdownStyle="{maxHeight:'200px',overflow:'auto'}" allow-clear
|
||||||
|
:treeData="categoryTree" v-decorator="[ 'categoryId' ]" placeholder="请选择类别">
|
||||||
|
</a-tree-select>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="序列号">
|
||||||
|
<a-select placeholder="有无序列号" v-decorator="[ 'enableSerialNumber' ]">
|
||||||
|
<a-select-option value="1">有</a-select-option>
|
||||||
|
<a-select-option value="0">无</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="批号">
|
||||||
|
<a-select placeholder="有无批号" v-decorator="[ 'enableBatchNumber' ]">
|
||||||
|
<a-select-option value="1">有</a-select-option>
|
||||||
|
<a-select-option value="0">无</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="备注">
|
||||||
|
<a-textarea :rows="1" placeholder="请输入备注" v-decorator="[ 'remark' ]" style="margin-top:8px;"/>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-form>
|
||||||
|
</a-spin>
|
||||||
|
</a-modal>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {queryMaterialCategoryTreeList, batchUpdateMaterial} from '@/api/api'
|
||||||
|
export default {
|
||||||
|
name: 'BatchSetInfoModal',
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
title:"批量编辑",
|
||||||
|
visible: false,
|
||||||
|
categoryTree: [],
|
||||||
|
materialIds: '',
|
||||||
|
model: {},
|
||||||
|
labelCol: {
|
||||||
|
xs: { span: 24 },
|
||||||
|
sm: { span: 5 },
|
||||||
|
},
|
||||||
|
wrapperCol: {
|
||||||
|
xs: { span: 24 },
|
||||||
|
sm: { span: 16 },
|
||||||
|
},
|
||||||
|
confirmLoading: false,
|
||||||
|
form: this.$form.createForm(this),
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created () {
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
loadTreeData(){
|
||||||
|
let that = this
|
||||||
|
let params = {}
|
||||||
|
params.id=''
|
||||||
|
queryMaterialCategoryTreeList(params).then((res)=>{
|
||||||
|
if(res){
|
||||||
|
that.categoryTree = [];
|
||||||
|
for (let i = 0; i < res.length; i++) {
|
||||||
|
let temp = res[i];
|
||||||
|
that.categoryTree.push(temp)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
edit (ids) {
|
||||||
|
this.materialIds = ids
|
||||||
|
this.form.resetFields()
|
||||||
|
this.model = Object.assign({}, '')
|
||||||
|
this.loadTreeData()
|
||||||
|
this.visible = true
|
||||||
|
},
|
||||||
|
close () {
|
||||||
|
this.$emit('close');
|
||||||
|
this.visible = false;
|
||||||
|
},
|
||||||
|
handleOk () {
|
||||||
|
const that = this
|
||||||
|
// 触发表单验证
|
||||||
|
this.form.validateFields((err, values) => {
|
||||||
|
if (!err) {
|
||||||
|
that.confirmLoading = true
|
||||||
|
let formData = Object.assign(this.model, values)
|
||||||
|
if(JSON.stringify(formData) === '{}') {
|
||||||
|
that.$message.warning('抱歉,请输入要批量编辑的内容!')
|
||||||
|
that.confirmLoading = false
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if(formData.enableSerialNumber === '1' && formData.enableBatchNumber === '1' ) {
|
||||||
|
that.$message.warning('抱歉,序列号和批号只能选择一项!')
|
||||||
|
that.confirmLoading = false
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let paramObj = {
|
||||||
|
ids: this.materialIds,
|
||||||
|
material: JSON.stringify(formData)
|
||||||
|
}
|
||||||
|
batchUpdateMaterial(paramObj).then((res)=>{
|
||||||
|
if(res.code === 200){
|
||||||
|
that.$emit('ok')
|
||||||
|
}else{
|
||||||
|
that.$message.warning(res.data.message)
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
that.confirmLoading = false
|
||||||
|
that.close()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleCancel () {
|
||||||
|
this.close()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -68,25 +68,26 @@
|
|||||||
</a-row>
|
</a-row>
|
||||||
<a-row class="form-row" :gutter="24">
|
<a-row class="form-row" :gutter="24">
|
||||||
<a-col :md="6" :sm="24">
|
<a-col :md="6" :sm="24">
|
||||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="颜色">
|
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="颜色" data-step="5" data-title="颜色"
|
||||||
|
data-intro="请填写商品的颜色,如果是多属性商品可以不填(下面有多属性开关)">
|
||||||
<a-input placeholder="请输入颜色" v-decorator.trim="[ 'color' ]" />
|
<a-input placeholder="请输入颜色" v-decorator.trim="[ 'color' ]" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :md="6" :sm="24">
|
<a-col :md="6" :sm="24">
|
||||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="基础重量" data-step="5" data-title="基础重量"
|
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="基础重量" data-step="6" data-title="基础重量"
|
||||||
data-intro="请填写基本单位对应的重量,用于计算按重量分摊费用时单据中各行商品分摊的费用成本">
|
data-intro="请填写基本单位对应的重量,用于计算按重量分摊费用时单据中各行商品分摊的费用成本">
|
||||||
<a-input-number style="width: 100%" placeholder="请输入基础重量(kg)" v-decorator.trim="[ 'weight' ]" />
|
<a-input-number style="width: 100%" placeholder="请输入基础重量(kg)" v-decorator.trim="[ 'weight' ]" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :md="6" :sm="24">
|
<a-col :md="6" :sm="24">
|
||||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="保质期" data-step="6" data-title="保质期"
|
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="保质期" data-step="7" data-title="保质期"
|
||||||
data-intro="保质期指的是商品的保质期(天),主要针对带生产日期的,此类商品一般有批号">
|
data-intro="保质期指的是商品的保质期(天),主要针对带生产日期的,此类商品一般有批号">
|
||||||
<a-input-number style="width: 100%" placeholder="请输入保质期(天)" v-decorator.trim="[ 'expiryNum' ]" />
|
<a-input-number style="width: 100%" placeholder="请输入保质期(天)" v-decorator.trim="[ 'expiryNum' ]" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :md="6" :sm="24">
|
<a-col :md="6" :sm="24">
|
||||||
<a-form-item :labelCol="{xs: { span: 24 },sm: { span: 4 }}" :wrapperCol="{xs: { span: 24 },sm: { span: 20 }}" label="类别"
|
<a-form-item :labelCol="{xs: { span: 24 },sm: { span: 4 }}" :wrapperCol="{xs: { span: 24 },sm: { span: 20 }}" label="类别"
|
||||||
data-step="7" data-title="类别" data-intro="类别需要在【商品类别】页面进行录入,录入之后在此处进行调用">
|
data-step="8" data-title="类别" data-intro="类别需要在【商品类别】页面进行录入,录入之后在此处进行调用">
|
||||||
<a-tree-select style="width:100%" :dropdownStyle="{maxHeight:'200px',overflow:'auto'}" allow-clear
|
<a-tree-select style="width:100%" :dropdownStyle="{maxHeight:'200px',overflow:'auto'}" allow-clear
|
||||||
:treeData="categoryTree" v-decorator="[ 'categoryId' ]" placeholder="请选择类别">
|
:treeData="categoryTree" v-decorator="[ 'categoryId' ]" placeholder="请选择类别">
|
||||||
</a-tree-select>
|
</a-tree-select>
|
||||||
@@ -95,7 +96,7 @@
|
|||||||
</a-row>
|
</a-row>
|
||||||
<a-row class="form-row" :gutter="24">
|
<a-row class="form-row" :gutter="24">
|
||||||
<a-col :md="6" :sm="24">
|
<a-col :md="6" :sm="24">
|
||||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="序列号" data-step="8" data-title="序列号"
|
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="序列号" data-step="9" data-title="序列号"
|
||||||
data-intro="此处是商品的序列号开关,如果选择了有,则在采购入库单据需要录入该商品的序列号,在销售出库单据需要选择该商品的序列号进行出库">
|
data-intro="此处是商品的序列号开关,如果选择了有,则在采购入库单据需要录入该商品的序列号,在销售出库单据需要选择该商品的序列号进行出库">
|
||||||
<a-select placeholder="有无序列号" v-decorator="[ 'enableSerialNumber' ]">
|
<a-select placeholder="有无序列号" v-decorator="[ 'enableSerialNumber' ]">
|
||||||
<a-select-option value="1">有</a-select-option>
|
<a-select-option value="1">有</a-select-option>
|
||||||
@@ -104,7 +105,7 @@
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :md="6" :sm="24">
|
<a-col :md="6" :sm="24">
|
||||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="批号" data-step="9" data-title="批号"
|
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="批号" data-step="10" data-title="批号"
|
||||||
data-intro="此处是商品的批号开关,如果选择了有,则在采购入库单据需要录入该商品的批号和生产日期,在销售出库单据需要选择该商品的批号进行出库">
|
data-intro="此处是商品的批号开关,如果选择了有,则在采购入库单据需要录入该商品的批号和生产日期,在销售出库单据需要选择该商品的批号进行出库">
|
||||||
<a-select placeholder="有无批号" v-decorator="[ 'enableBatchNumber' ]">
|
<a-select placeholder="有无批号" v-decorator="[ 'enableBatchNumber' ]">
|
||||||
<a-select-option value="1">有</a-select-option>
|
<a-select-option value="1">有</a-select-option>
|
||||||
@@ -113,7 +114,7 @@
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :md="6" :sm="24">
|
<a-col :md="6" :sm="24">
|
||||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="多属性" data-step="10" data-title="多属性"
|
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="多属性" data-step="11" data-title="多属性"
|
||||||
data-intro="多属性是针对的sku商品(比如服装、鞋帽行业),此处开关如果启用就可以在下方进行多sku的配置,配置具体的颜色、尺码之类的组合">
|
data-intro="多属性是针对的sku商品(比如服装、鞋帽行业),此处开关如果启用就可以在下方进行多sku的配置,配置具体的颜色、尺码之类的组合">
|
||||||
<a-switch checked-children="启用" un-checked-children="关闭" v-model="skuSwitch" :disabled="switchDisabled" @change="onSkuChange"></a-switch>
|
<a-switch checked-children="启用" un-checked-children="关闭" v-model="skuSwitch" :disabled="switchDisabled" @change="onSkuChange"></a-switch>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|||||||
Reference in New Issue
Block a user