Browse Source

完善商品模块

master
guoxing 12 months ago
parent
commit
65813c61bb
  1. 3
      yxt-as-ui/src/api/goods/brand.js
  2. 3
      yxt-as-ui/src/api/goods/category.js
  3. 3
      yxt-as-ui/src/api/goods/factory.js
  4. 3
      yxt-as-ui/src/api/goods/unit.js
  5. 1
      yxt-as-ui/src/api/warehouse/warehouse.js
  6. 1
      yxt-as-ui/src/api/warehouse/warehouseArea.js
  7. 1
      yxt-as-ui/src/api/warehouse/warehouseAreaType.js
  8. 2
      yxt-as-ui/src/router/index.js
  9. 67
      yxt-as-ui/src/views/goods/brands/brandsAdd.vue
  10. 35
      yxt-as-ui/src/views/goods/brands/index.vue
  11. 83
      yxt-as-ui/src/views/goods/category/categoryAdd.vue
  12. 33
      yxt-as-ui/src/views/goods/category/index.vue
  13. 47
      yxt-as-ui/src/views/goods/factory/factoryAdd.vue
  14. 118
      yxt-as-ui/src/views/goods/factory/index.vue
  15. 25
      yxt-as-ui/src/views/goods/goods/goodsAdd.vue
  16. 138
      yxt-as-ui/src/views/goods/goods/goodsAdd2.vue
  17. 9
      yxt-as-ui/src/views/goods/goods/index.vue
  18. 44
      yxt-as-ui/src/views/goods/unit/index.vue
  19. 16
      yxt-as-ui/src/views/goods/unit/unitAdd.vue
  20. 6
      yxt-as-ui/src/views/warehouse/goodsShelves/goodsShelvesAdd.vue
  21. 5
      yxt-as-ui/src/views/warehouse/goodsShelves/index.vue
  22. 10
      yxt-as-ui/src/views/warehouse/warehouseArea/index.vue
  23. 7
      yxt-as-ui/src/views/warehouse/warehouseArea/warehouseAreaAdd.vue

3
yxt-as-ui/src/api/goods/brand.js

@ -18,7 +18,8 @@ export default {
getAllBrand: function(params) {
return request({
url: '/yxtbase/apiadmin/base/basegoodsbrand/listAll',
method: 'get'
method: 'get',
data: params,
})
},

3
yxt-as-ui/src/api/goods/category.js

@ -18,7 +18,8 @@ export default {
getAllType: function(params) {
return request({
url: '/yxtbase/apiadmin/base/basegoodstype/listAll',
method: 'get'
method: 'get',
data: params,
})
},

3
yxt-as-ui/src/api/goods/factory.js

@ -18,7 +18,8 @@ export default {
getAllFacturer: function(params) {
return request({
url: '/yxtbase/apiadmin/base/basemanufacturer/listAll',
method: 'get'
method: 'get',
data: params,
})
},

3
yxt-as-ui/src/api/goods/unit.js

@ -18,7 +18,8 @@ export default {
getAllUnit: function(params) {
return request({
url: '/yxtbase/apiadmin/base/basegoodsunit/listAll',
method: 'get'
method: 'get',
data: params,
})
},

1
yxt-as-ui/src/api/warehouse/warehouse.js

@ -19,6 +19,7 @@ export default {
return request({
url: '/wms/apiadmin/base/wmswarehouseinfo/listAll',
method: 'get',
data: params,
headers: {
'Content-Type': 'application/json'
}

1
yxt-as-ui/src/api/warehouse/warehouseArea.js

@ -19,6 +19,7 @@ export default {
return request({
url: '/wms/apiadmin/base/wmswarehousearea/listAll',
method: 'get',
data: params,
headers: {
'Content-Type': 'application/json'
}

1
yxt-as-ui/src/api/warehouse/warehouseAreaType.js

@ -20,6 +20,7 @@ export default {
return request({
url: '/wms/apiadmin/base/wmswarehouseareatype/listAll',
method: 'get',
data: params,
headers: {
'Content-Type': 'application/json'
}

2
yxt-as-ui/src/router/index.js

@ -153,7 +153,7 @@ export const constantRoutes = [{
path: '/category/index',
component: () => import('@/views/goods/category/index.vue'),
name: 'Category',
meta: { title: '类别管理', noCache: true }
meta: { title: '商品类别', noCache: true }
},
{
path: '/factory/index',

67
yxt-as-ui/src/views/goods/brands/brandsAdd.vue

@ -17,16 +17,17 @@
<el-card class="box-card">
<div class="item">
<span class="item_text">品牌名称</span>
<span class="item_text"><span class="must">*</span> 品牌名称</span>
<el-input v-model="formobj.brandName" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">品牌代码</span>
<span class="item_text"><span class="must">*</span> 品牌代码</span>
<el-input v-model="formobj.brandCode" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">首字母大写</span>
<el-input v-model="formobj.letter" placeholder="" class="item_input" clearable />
<span class="item_text"><span class="must">*</span> 首字母大写</span>
<el-input v-model="formobj.letter" placeholder="" class="item_input" clearable
oninput="value=value.replace(/[^A-Z]/g,'');" @input="letter" />
</div>
<div class="item">
<span class="item_text">品牌备注</span>
@ -58,7 +59,7 @@
bucket="map" :class="{ hide: hideUploadBtn }" :upload-data="{ type: '0001' }" @change="backData" />
-->
<upload-img ref="uploadImg" class="item_input" v-model="imgList" :limit="1" bucket="map"
:upload-data="{ type: '0001' }" :class="{ hide: hideUploadBtn }" @change="backData" />
:upload-data="{ type: '0001' }" :class="{ hide: hideUploadBtn }" @change="backData" />
</div>
@ -88,10 +89,10 @@
remarks: '',
letter: '',
image: "",
useOrgSid: window.sessionStorage.getItem('departmentSid'),
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
useOrgSid: window.sessionStorage.getItem('departmentSid'),
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
},
hideUploadBtn: false,
@ -102,8 +103,11 @@
// this.initData()
},
methods: {
backData(value){
letter(val) {
console.log('letter', val)
this.formobj.letter = val
},
backData(value) {
console.log('imgList', this.imgList)
if (this.imgList.length > 0) {
@ -118,6 +122,34 @@
saveOrUpdate() {
console.log('>>>>>>>>>saveOrUpdate', this.formobj)
if (this.formobj.brandName == '') {
this.$message({
showClose: true,
type: 'warning',
message: "品牌名称不能为空"
})
return
}
if (this.formobj.brandCode == '') {
this.$message({
showClose: true,
type: 'warning',
message: "品牌代码不能为空"
})
return
}
if (this.formobj.letter == '') {
this.$message({
showClose: true,
type: 'warning',
message: "首字母大写不能为空"
})
return
}
req.saveBrands(this.formobj)
.then(resp => {
if (resp.success) {
@ -144,10 +176,10 @@
remarks: '',
letter: '',
image: "",
useOrgSid: window.sessionStorage.getItem('departmentSid'),
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
useOrgSid: window.sessionStorage.getItem('departmentSid'),
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
}
this.$emit('doback')
},
@ -206,6 +238,11 @@
flex: 0.8;
font-size: 18px;
text-align: right;
.must {
color: #f00;
}
}
.item_input {

35
yxt-as-ui/src/views/goods/brands/index.vue

@ -31,12 +31,11 @@
@selection-change="selectionLineChangeHandle">
<el-table-column fixed width="50" type="selection" align="center" />
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column label="操作" align="center" width="100">
<!-- <el-table-column label="操作" align="center" width="100">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toRelevancy(scope.row)">编辑</el-button>
<!-- <el-button type="primary" size="mini" @click="toRelevancyInfo(scope.row)">删除</el-button> -->
</template>
</el-table-column>
</el-table-column> -->
<el-table-column label="是否可用" align="center" width="140">
<template slot-scope="scope">
<el-switch v-model="scope.row.isEnable" active-text="" inactive-text="" active-value="1"
@ -102,6 +101,13 @@
btnKey: 'toAdd',
btnLabel: '新增'
},
{
type: 'primary',
size: 'small',
icon: 'edit',
btnKey: 'toEdit',
btnLabel: '编辑'
},
{
type: 'danger',
size: 'small',
@ -161,9 +167,12 @@
case 'toAdd':
this.toAdd()
break
case 'doDel':
this.doDel()
break
case 'toEdit':
this.toEdit()
break
case 'doDel':
this.doDel()
break
case 'doClose':
this.doClose()
break
@ -217,6 +226,20 @@
this.viewState = 2
this.$refs['divadd'].showAdd()
},
toEdit() {
if (this.selectionList.length != 1) {
this.$message({
type: 'warning',
message: "请选择一条数据。",
showClose: true
})
return
}
this.viewState = 3
this.$refs['divadd'].showEdit(this.selectionList[0])
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)

83
yxt-as-ui/src/views/goods/category/categoryAdd.vue

@ -23,11 +23,11 @@
</el-select>
</div>
<div class="item">
<span class="item_text">类别名称</span>
<span class="item_text"><span class="must">*</span> 类别名称</span>
<el-input v-model="formobj.goodsTypeName" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">类别编码</span>
<span class="item_text"><span class="must">*</span> 类别编码</span>
<el-input v-model="formobj.goodsTypeCode" placeholder="" class="item_input" clearable
oninput="value=value.replace(/[^A-Za-z0-9]/g, '')" />
</div>
@ -42,15 +42,17 @@
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" />
</div>
<div class="item">
<span class="item_text">出库规则</span>
<el-select v-model="formobj.outStockRuleValue" placeholder="请选择出库规则" class="item_input" @change="selectOutStockRuleChange">
<el-option v-for="item in outStockRuleList" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey" />
<span class="item_text"><span class="must">*</span> 出库规则</span>
<el-select v-model="formobj.outStockRuleValue" placeholder="请选择出库规则" class="item_input"
@change="selectOutStockRuleChange">
<el-option v-for="item in outStockRuleList" :key="item.dictKey" :label="item.dictValue"
:value="item.dictKey" />
</el-select>
</div>
<div class="item">
<span class="item_text">类别排序</span>
<span class="item_text"><span class="must">*</span> 类别排序</span>
<el-input v-model="formobj.sortNo" placeholder="" class="item_input" clearable
oninput="value=value.replace(/[^A-Za-z0-9]/g, '')" />
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
</div>
<div class="item">
<span class="item_text">类别备注</span>
@ -80,16 +82,16 @@
goodsTypeCode: '',
percentageRate: '',
percentageAmount: '',
outstockRule: '',
outstockRuleValue: '',
outStockRule: '',
outStockRuleValue: '',
sids: '',
pname: '',
sortNo: '',
remarks: '',
useOrgSid: window.sessionStorage.getItem('departmentSid'),
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
useOrgSid: window.sessionStorage.getItem('departmentSid'),
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
},
goodsTypeList: [],
@ -102,7 +104,11 @@
methods: {
initData() {
console.log('>>>>>>>>>initData')
req.getAllType().then(resp => {
var parpams = {
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
}
req.getAllType(parpams).then(resp => {
this.goodsTypeList = resp.data
})
@ -119,6 +125,44 @@
},
saveOrUpdate() {
console.log('>>>>>>>>>saveOrUpdate', this.formobj)
if (this.formobj.goodsTypeName == '') {
this.$message({
showClose: true,
type: 'warning',
message: "类别名称不能为空"
})
return
}
if (this.formobj.goodsTypeCode == '') {
this.$message({
showClose: true,
type: 'warning',
message: "类别编码不能为空"
})
return
}
if (this.formobj.outStockRule == '' || this.formobj.outStockRuleValue == '') {
this.$message({
showClose: true,
type: 'warning',
message: "请选择出库规则"
})
return
}
if (this.formobj.sortNo == '') {
this.$message({
showClose: true,
type: 'warning',
message: "类别排序不能为空"
})
return
}
req.saveTypes(this.formobj)
.then(resp => {
if (resp.success) {
@ -142,7 +186,7 @@
goodsTypeCode: '',
percentageRate: '',
percentageAmount: '',
outstockRule: '',
outStockRule: '',
outStockRuleValue: '',
sids: '',
pname: '',
@ -175,8 +219,8 @@
this.formobj.pName = choose[0].goodsTypeName
},
selectOutStockRuleChange(val){
console.log('>>>>>>>>>selectOutStockRuleChange', val)
selectOutStockRuleChange(val) {
console.log('>>>>>>>>>selectOutStockRuleChange', val)
const choose = this.outStockRuleList.filter((item) => item.dictKey == val)
console.log('>>>>>>>>>selectOutStockRuleChange', choose)
this.formobj.outStockRule = choose[0].dictKey
@ -212,6 +256,11 @@
flex: 0.8;
font-size: 18px;
text-align: right;
.must {
color: #f00;
}
}
.item_input {

33
yxt-as-ui/src/views/goods/category/index.vue

@ -1,7 +1,7 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<button-bar ref="btnbar" view-title="类别列表" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<button-bar ref="btnbar" view-title="商品类别" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">
@ -47,12 +47,11 @@
@selection-change="selectionLineChangeHandle">
<el-table-column fixed width="50" type="selection" align="center" />
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column label="操作" align="center" width="100">
<!-- <el-table-column label="操作" align="center" width="100">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toRelevancy(scope.row)">编辑</el-button>
<!-- <el-button type="primary" size="mini" @click="toRelevancyInfo(scope.row)">删除</el-button> -->
</template>
</el-table-column>
</el-table-column> -->
<el-table-column label="是否可用" align="center" width="140">
<template slot-scope="scope">
<el-switch v-model="scope.row.isEnable" active-text="" inactive-text="" active-value="1"
@ -70,7 +69,7 @@
<el-table-column prop="pname" label="上级类别" align="center" />
<el-table-column prop="percentageRate" label="提成比例" align="center" />
<el-table-column prop="percentageAmount" label="提成金额" align="center" />
<el-table-column prop="outStockRule" label="出库规则" align="center" />
<el-table-column prop="outstockRulevalue" label="出库规则" align="center" />
</el-table>
</div>
<!-- End 项目列表 -->
@ -119,6 +118,13 @@
btnKey: 'toAdd',
btnLabel: '新增'
},
{
type: 'primary',
size: 'small',
icon: 'edit',
btnKey: 'toEdit',
btnLabel: '编辑'
},
{
type: 'danger',
size: 'small',
@ -213,6 +219,9 @@
case 'doDel':
this.doDel()
break
case 'toEdit':
this.toEdit()
break
case 'doClose':
this.doClose()
break
@ -269,6 +278,20 @@
this.viewState = 2
this.$refs['divadd'].showAdd()
},
toEdit() {
if (this.selectionList.length != 1) {
this.$message({
type: 'warning',
message: "请选择一条数据。",
showClose: true
})
return
}
this.viewState = 3
this.$refs['divadd'].showEdit(this.selectionList[0])
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)

47
yxt-as-ui/src/views/goods/factory/factoryAdd.vue

@ -17,15 +17,15 @@
<el-card class="box-card">
<div class="item">
<span class="item_text">厂家名称</span>
<span class="item_text"><span class="must">*</span> 厂家名称</span>
<el-input v-model="formobj.manufacturerName" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">厂家编码</span>
<span class="item_text"><span class="must">*</span> 厂家编码</span>
<el-input v-model="formobj.manufacturerCode" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">厂家排序</span>
<span class="item_text"><span class="must">*</span> 厂家排序</span>
<el-input v-model="formobj.sortNo" placeholder="" class="item_input" clearable
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
</div>
@ -53,10 +53,10 @@
manufacturerCode: '',
sortNo: '',
remarks: "",
useOrgSid: window.sessionStorage.getItem('departmentSid'),
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
useOrgSid: window.sessionStorage.getItem('departmentSid'),
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
},
}
},
@ -65,6 +65,34 @@
saveOrUpdate() {
console.log('>>>>>>>>>saveOrUpdate', this.formobj)
if (this.formobj.manufacturerName == '') {
this.$message({
showClose: true,
type: 'warning',
message: "厂家名称不能为空"
})
return
}
if (this.formobj.manufacturerCode == '') {
this.$message({
showClose: true,
type: 'warning',
message: "厂家编码不能为空"
})
return
}
if (this.formobj.sortNo == '') {
this.$message({
showClose: true,
type: 'warning',
message: "厂家排序不能为空"
})
return
}
req.saveFacturer(this.formobj)
.then(resp => {
if (resp.success) {
@ -138,6 +166,11 @@
flex: 0.8;
font-size: 18px;
text-align: right;
.must {
color: #f00;
}
}
.item_input {

118
yxt-as-ui/src/views/goods/factory/index.vue

@ -27,15 +27,15 @@
<!-- End 项目列表头部 -->
<!-- Start 项目列表 -->
<div class="">
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"
@selection-change="selectionLineChangeHandle">
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"
@selection-change="selectionLineChangeHandle">
<el-table-column fixed width="50" type="selection" align="center" />
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column label="操作" align="center" width="100">
<!-- <el-table-column label="操作" align="center" width="100">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toRelevancy(scope.row)">编辑</el-button>
<!-- <el-button type="primary" size="mini" @click="toRelevancyInfo(scope.row)">删除</el-button> -->
</template>
</el-table-column>
</el-table-column> -->
<el-table-column label="是否可用" align="center" width="140">
<template slot-scope="scope">
<el-switch v-model="scope.row.isEnable" active-text="" inactive-text="" active-value="1"
@ -90,6 +90,13 @@
btnKey: 'toAdd',
btnLabel: '新增'
},
{
type: 'primary',
size: 'small',
icon: 'edit',
btnKey: 'toEdit',
btnLabel: '编辑'
},
{
type: 'danger',
size: 'small',
@ -113,8 +120,8 @@
name: ''
}
},
sids: [],
selectionList: []
sids: [],
selectionList: []
}
},
mounted() {
@ -149,9 +156,12 @@
case 'toAdd':
this.toAdd()
break
case 'doDel':
this.doDel()
break
case 'toEdit':
this.toEdit()
break
case 'doDel':
this.doDel()
break
case 'doClose':
this.doClose()
break
@ -210,48 +220,62 @@
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
},
toEdit() {
if (this.selectionList.length != 1) {
this.$message({
type: 'warning',
message: "请选择一条数据。",
showClose: true
})
return
}
this.viewState = 3
this.$refs['divadd'].showEdit(this.selectionList[0])
},
toRelevancy(row) {
this.viewState = 3
this.$refs['divadd'].showEdit(row)
},
doDel() {
doDel() {
if (this.sids.length > 0) {
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.deleteBySids(this.sids).then((resp) => {
loading.close()
if (resp.success) {
this.$message({
type: 'success',
message: resp.msg,
showClose: true
})
this.loadList()
} else {
// resp.code
}
}).catch(e => {
loading.close()
})
}).catch(() => {})
} else {
this.$message({
showClose: true,
message: '请至少选择一条记录进行删除操作'
})
}
},
if (this.sids.length > 0) {
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.deleteBySids(this.sids).then((resp) => {
loading.close()
if (resp.success) {
this.$message({
type: 'success',
message: resp.msg,
showClose: true
})
this.loadList()
} else {
// resp.code
}
}).catch(e => {
loading.close()
})
}).catch(() => {})
} else {
this.$message({
showClose: true,
message: '请至少选择一条记录进行删除操作'
})
}
},
resetState() {
this.viewState = 1
},

25
yxt-as-ui/src/views/goods/goods/goodsAdd.vue

@ -781,7 +781,11 @@
goodsExplain: "",
goodsDescription: ""
},
baseGoodsSkus: []
baseGoodsSkus: [],
useOrgSid: window.sessionStorage.getItem('departmentSid'),
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
},
brandList: [],
cateList: [],
@ -800,16 +804,21 @@
},
methods: {
initData() {
req2.getAllBrand().then(resp => {
var parpams ={
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
}
req2.getAllBrand(parpams).then(resp => {
this.brandList = resp.data
})
req3.getAllType().then(resp => {
req3.getAllType(parpams).then(resp => {
this.cateList = resp.data
})
req4.getAllFacturer().then(resp => {
req4.getAllFacturer(parpams).then(resp => {
this.facturerList = resp.data
})
req5.getAllUnit().then(resp => {
req5.getAllUnit(parpams).then(resp => {
this.unitNameList = resp.data
})
},
@ -863,7 +872,11 @@
goodsExplain: "",
goodsDescription: ""
},
baseGoodsSkus: []
baseGoodsSkus: [],
useOrgSid: window.sessionStorage.getItem('departmentSid'),
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
}
this.$emit('doback')
},

138
yxt-as-ui/src/views/goods/goods/goodsAdd2.vue

@ -15,22 +15,22 @@
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<div class="title">
<div>基础信息</div>
</div>
<el-row class="first_row">
<el-col :span="6">
<div class="span-sty">商品名称</div>
<el-form-item>
<div class="span-sty"><span class="must">*</span> 商品名称</div>
<el-form-item prop="goodsName">
<el-input v-model="formobj.goodsName" placeholder="商品名称" class="addinputw addinputInfo" clearable />
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">商品编码</div>
<el-form-item>
<div class="span-sty"><span class="must">*</span> 商品编码</div>
<el-form-item prop="goodsCode">
<el-input v-model="formobj.goodsCode" placeholder="商品编码" class="addinputw addinputInfo" clearable />
</el-form-item>
</el-col>
@ -55,9 +55,9 @@
<el-row>
<el-col :span="6">
<div class="span-sty">商品单位</div>
<el-form-item>
<el-select v-model="formobj.goodsUnitName" placeholder="请选择商品单位" class="addinputw"
<div class="span-sty"><span class="must">*</span> 计量单位</div>
<el-form-item prop="goodsUnitName">
<el-select v-model="formobj.goodsUnitName" placeholder="请选择计量单位" class="addinputw"
@change="selectunitNameChange">
<el-option v-for="item in unitNameList" :key="item.sid" :label="item.unitName" :value="item.sid" />
</el-select>
@ -65,8 +65,8 @@
</el-col>
<el-col :span="6">
<div class="span-sty">商品类别</div>
<el-form-item>
<div class="span-sty"><span class="must">*</span> 商品类别</div>
<el-form-item prop="goodsTypeName">
<el-select v-model="formobj.goodsTypeName" placeholder="请选择商品类别" class="addinputw"
@change="selectCateChange">
<el-option v-for="item in cateList" :key="item.sid" :label="item.goodsTypeName" :value="item.sid" />
@ -95,8 +95,8 @@
<el-row>
<el-col :span="6">
<div class="span-sty">商品品牌</div>
<el-form-item>
<div class="span-sty"><span class="must">*</span> 商品品牌</div>
<el-form-item prop="brandName">
<el-select v-model="formobj.brandName" placeholder="请选择商品品牌" class="addinputw"
@change="selectBrandChange">
<el-option v-for="item in brandList" :key="item.sid" :label="item.brandName" :value="item.sid" />
@ -105,8 +105,8 @@
</el-col>
<el-col :span="12">
<div class="span-sty">商品厂家</div>
<el-form-item>
<div class="span-sty"><span class="must">*</span> 商品厂家</div>
<el-form-item prop="manufacturerName">
<el-select v-model="formobj.manufacturerName" placeholder="请选择商品厂家" class="addinputw"
@change="selectfacturerChange">
<el-option v-for="item in facturerList" :key="item.sid" :label="item.manufacturerName"
@ -130,8 +130,8 @@
<el-row>
<el-col :span="6">
<div class="span-sty">商品排序</div>
<el-form-item>
<div class="span-sty"><span class="must">*</span> 商品排序</div>
<el-form-item prop="sortNo">
<el-input v-model="formobj.sortNo" placeholder="商品排序" class="addinputw addinputInfo" clearable
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
</el-form-item>
@ -149,16 +149,16 @@
<el-row>
<el-col :span="16">
<div class="span-sty">库存上限</div>
<el-form-item>
<div class="span-sty"><span class="must">*</span> 库存上限</div>
<el-form-item prop="inventoryAlertUpperLimit">
<el-input v-model="formobj.inventoryAlertUpperLimit" placeholder="库存上限" class="addinputw addinputInfo"
clearable oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
</el-form-item>
</el-col>
<el-col :span="18">
<div class="span-sty">库存下限</div>
<el-form-item>
<div class="span-sty"><span class="must">*</span> 库存下限</div>
<el-form-item prop="inventoryAlertLowerLimit">
<el-input v-model="formobj.inventoryAlertLowerLimit" placeholder="库存下限" class="addinputw addinputInfo"
clearable oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
</el-form-item>
@ -276,6 +276,53 @@
cateList: [],
facturerList: [],
unitNameList: [],
rules: {
goodsName: [{
required: true,
message: '商品名称不能为空',
trigger: 'blur'
}],
goodsCode: [{
required: true,
message: '商品编码不能为空',
trigger: 'blur'
}],
goodsUnitName: [{
required: true,
message: '请选择计量单位',
trigger: 'change'
}],
goodsTypeName: [{
required: true,
message: '请选择商品类别',
trigger: 'change'
}],
brandName: [{
required: true,
message: '请选择商品品牌',
trigger: 'change'
}],
manufacturerName: [{
required: true,
message: '请选择商品厂家',
trigger: 'change'
}],
sortNo: [{
required: true,
message: '商品排序不能为空',
trigger: 'blur'
}],
inventoryAlertUpperLimit: [{
required: true,
message: '商品上限不能为空',
trigger: 'blur'
}],
inventoryAlertLowerLimitt: [{
required: true,
message: '商品下限不能为空',
trigger: 'blur'
}],
}
}
},
created() {
@ -283,16 +330,19 @@
},
methods: {
initData() {
req2.getAllBrand().then(resp => {
var parpams = {
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
}
req2.getAllBrand(parpams).then(resp => {
this.brandList = resp.data
})
req3.getAllType().then(resp => {
req3.getAllType(parpams).then(resp => {
this.cateList = resp.data
})
req4.getAllFacturer().then(resp => {
req4.getAllFacturer(parpams).then(resp => {
this.facturerList = resp.data
})
req5.getAllUnit().then(resp => {
req5.getAllUnit(parpams).then(resp => {
this.unitNameList = resp.data
})
},
@ -306,20 +356,26 @@
saveOrUpdate() {
console.log('>>>>>>>>>saveOrUpdate', this.formobj)
req.saveGoods(this.formobj)
.then(resp => {
if (resp.success) {
this.$message({
showClose: true,
type: 'success',
message: resp.msg
this.$refs['form_obj'].validate((valid) => {
if (valid) {
req.saveGoods(this.formobj)
.then(resp => {
if (resp.success) {
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn('true')
} else {
// resp.code
}
})
this.handleReturn('true')
} else {
// resp.code
}
})
.catch(() => {})
.catch(() => {})
}
})
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
@ -405,6 +461,14 @@
}
</script>
<style scoped>
/deep/ .el-form-item__error {
margin-left: 120px !important;
}
.must {
color: #f00;
}
.span-sty {
width: 130px !important;
}

9
yxt-as-ui/src/views/goods/goods/index.vue

@ -228,20 +228,23 @@
},
methods: {
initData() {
var parpams = {
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
}
//
req2.getAllBrand().then(resp => {
req2.getAllBrand(parpams).then(resp => {
console.log('>>>>>>>>>getAllBrand', resp)
this.brandList = resp.data
}).catch(() => {})
//
req3.getAllType().then(resp => {
req3.getAllType(parpams).then(resp => {
console.log('>>>>>>>>>getAllType', resp)
this.goodsTypeList = resp.data
}).catch(() => {})
//
req4.getAllFacturer().then(resp => {
req4.getAllFacturer(parpams).then(resp => {
console.log('>>>>>>>>>getAllFacturer', resp)
this.facturerList = resp.data
}).catch(() => {})

44
yxt-as-ui/src/views/goods/unit/index.vue

@ -27,15 +27,15 @@
<!-- End 项目列表头部 -->
<!-- Start 项目列表 -->
<div class="">
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"
@selection-change="selectionLineChangeHandle">
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"
@selection-change="selectionLineChangeHandle">
<el-table-column fixed width="50" type="selection" align="center" />
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column label="操作" align="center" width="100">
<!-- <el-table-column label="操作" align="center" width="100">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toRelevancy(scope.row)">编辑</el-button>
<!-- <el-button type="primary" size="mini" @click="toRelevancyInfo(scope.row)">删除</el-button> -->
</template>
</el-table-column>
</el-table-column> -->
<el-table-column label="是否可用" align="center" width="140">
<template slot-scope="scope">
<el-switch v-model="scope.row.isEnable" active-text="" inactive-text="" active-value="1"
@ -90,6 +90,13 @@
btnKey: 'toAdd',
btnLabel: '新增'
},
{
type: 'primary',
size: 'small',
icon: 'edit',
btnKey: 'toEdit',
btnLabel: '编辑'
},
{
type: 'danger',
size: 'small',
@ -113,8 +120,8 @@
name: ''
}
},
sids: [],
selectionList: []
sids: [],
selectionList: []
}
},
mounted() {
@ -149,9 +156,12 @@
case 'toAdd':
this.toAdd()
break
case 'doDel':
this.doDel()
break
case 'toEdit':
this.toEdit()
break
case 'doDel':
this.doDel()
break
case 'doClose':
this.doClose()
break
@ -210,6 +220,20 @@
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
},
toEdit() {
if (this.selectionList.length != 1) {
this.$message({
type: 'warning',
message: "请选择一条数据。",
showClose: true
})
return
}
this.viewState = 3
this.$refs['divadd'].showEdit(this.selectionList[0])
},
toRelevancy(row) {
this.viewState = 3
this.$refs['divadd'].showEdit(row)

16
yxt-as-ui/src/views/goods/unit/unitAdd.vue

@ -17,7 +17,7 @@
<el-card class="box-card">
<div class="item">
<span class="item_text">计量单位名称</span>
<span class="item_text"><span class="must">*</span> 计量单位名称</span>
<el-input v-model="formobj.unitName" placeholder="" class="item_input" clearable />
</div>
<div class="item">
@ -83,6 +83,17 @@
saveOrUpdate() {
console.log('>>>>>>>>>saveOrUpdate', this.formobj)
if (this.formobj.unitName == '') {
this.$message({
showClose: true,
type: 'warning',
message: "计量单位名称不能为空"
})
return
}
req.saveUnits(this.formobj)
.then(resp => {
if (resp.success) {
@ -155,6 +166,9 @@
flex: 0.8;
font-size: 18px;
text-align: right;
.must {
color: #f00;
}
}
.item_input {

6
yxt-as-ui/src/views/warehouse/goodsShelves/goodsShelvesAdd.vue

@ -85,7 +85,11 @@
initData() {
req2.getAllWarehouse().then(resp => {
var parpams = {
orgPath:window.sessionStorage.getItem('defaultOrgPath'),
}
req2.getAllWarehouse(parpams).then(resp => {
this.warehouseList = resp.data
})
},

5
yxt-as-ui/src/views/warehouse/goodsShelves/index.vue

@ -171,7 +171,10 @@
this.sids = aa
},
getwarehouse() {
req2.getAllWarehouse().then(resp => {
var parpams = {
orgPath:window.sessionStorage.getItem('defaultOrgPath'),
}
req2.getAllWarehouse(parpams).then(resp => {
console.log('>>>>>>>>>getAllWarehouse', resp)
this.warehouseList = resp.data
}).catch(() => {})

10
yxt-as-ui/src/views/warehouse/warehouseArea/index.vue

@ -177,13 +177,19 @@
},
getwarehouse() {
req2.getAllWarehouse().then(resp => {
var parpams = {
orgPath:window.sessionStorage.getItem('defaultOrgPath'),
}
req2.getAllWarehouse(parpams).then(resp => {
console.log('>>>>>>>>>getAllWarehouse', resp)
this.warehouseList = resp.data
}).catch(() => {})
},
getWarehouseAreaType() {
req3.getAllWarehouseareatype().then(resp => {
var parpams = {
orgPath:window.sessionStorage.getItem('defaultOrgPath'),
}
req3.getAllWarehouseareatype(parpams).then(resp => {
console.log('>>>>>>>>>getAllWarehouseareatype', resp)
this.warehouseAreaTypeLsit = resp.data
}).catch(() => {})

7
yxt-as-ui/src/views/warehouse/warehouseArea/warehouseAreaAdd.vue

@ -96,11 +96,14 @@
},
methods: {
initData() {
req2.getAllWarehouse().then(resp => {
var parpams = {
orgPath:window.sessionStorage.getItem('defaultOrgPath'),
}
req2.getAllWarehouse(parpams).then(resp => {
this.warehouseList = resp.data
})
req3.getAllWarehouseareatype().then(resp => {
req3.getAllWarehouseareatype(parpams).then(resp => {
this.warehouseTypeList = resp.data
})

Loading…
Cancel
Save