Browse Source

Merge remote-tracking branch 'origin/master'

zhanglei
fanzongzhe 1 year ago
parent
commit
2d6b92a3a6
  1. 17
      yxt-as-ui/src/api/goods/brand.js
  2. 13
      yxt-as-ui/src/api/goods/category.js
  3. 12
      yxt-as-ui/src/api/goods/factory.js
  4. 12
      yxt-as-ui/src/api/goods/goods.js
  5. 11
      yxt-as-ui/src/api/goods/unit.js
  6. 10
      yxt-as-ui/src/api/storage/deliveryNotice.js
  7. 2
      yxt-as-ui/src/api/storage/receivingGoods.js
  8. 12
      yxt-as-ui/src/api/warehouse/goodsShelves.js
  9. 27
      yxt-as-ui/src/api/warehouse/warehouse.js
  10. 32
      yxt-as-ui/src/api/warehouse/warehouseArea.js
  11. 14
      yxt-as-ui/src/api/warehouse/warehouseAreaType.js
  12. 1
      yxt-as-ui/src/components/uploadFile/uploadImg.vue
  13. 2
      yxt-as-ui/src/router/index.js
  14. 6
      yxt-as-ui/src/views/goods/brands/brandsAdd.vue
  15. 95
      yxt-as-ui/src/views/goods/brands/index.vue
  16. 42
      yxt-as-ui/src/views/goods/category/categoryAdd.vue
  17. 438
      yxt-as-ui/src/views/goods/category/index.vue
  18. 13
      yxt-as-ui/src/views/goods/factory/factoryAdd.vue
  19. 390
      yxt-as-ui/src/views/goods/factory/index.vue
  20. 526
      yxt-as-ui/src/views/goods/goods/goodsAdd2.vue
  21. 335
      yxt-as-ui/src/views/goods/goods/goodsInfo2.vue
  22. 179
      yxt-as-ui/src/views/goods/goods/index.vue
  23. 104
      yxt-as-ui/src/views/goods/unit/index.vue
  24. 13
      yxt-as-ui/src/views/goods/unit/unitAdd.vue
  25. 6
      yxt-as-ui/src/views/storage/deliveryNotice/index.vue
  26. 84
      yxt-as-ui/src/views/storage/deliveryNotice/receiptAdd.vue
  27. 54
      yxt-as-ui/src/views/storage/deliveryNotice/receiptInfo.vue
  28. 18
      yxt-as-ui/src/views/storage/receivingGoods/receivingGoodsAdd.vue
  29. 64
      yxt-as-ui/src/views/warehouse/goodsShelves/goodsShelvesAdd.vue
  30. 455
      yxt-as-ui/src/views/warehouse/goodsShelves/index.vue
  31. 423
      yxt-as-ui/src/views/warehouse/warehouse/index.vue
  32. 330
      yxt-as-ui/src/views/warehouse/warehouse/warehouseAdd.vue
  33. 265
      yxt-as-ui/src/views/warehouse/warehouse/warehouseInfo.vue
  34. 459
      yxt-as-ui/src/views/warehouse/warehouseArea/index.vue
  35. 10
      yxt-as-ui/src/views/warehouse/warehouseArea/warehouseAreaAdd.vue
  36. 391
      yxt-as-ui/src/views/warehouse/warehouseAreaType/index.vue
  37. 11
      yxt-as-ui/src/views/warehouse/warehouseAreaType/warehouseAreaTypeAdd.vue
  38. 1
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillDto.java
  39. 2
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillMapper.java
  40. 8
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillMapper.xml
  41. 25
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillService.java
  42. 22
      yxt-wms-biz/src/main/java/com/yxt/wms/utils/BillNo.java
  43. 15
      yxt-wms-biz/src/main/java/com/yxt/wms/utils/Rule.java

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

@ -14,7 +14,7 @@ export default {
}) })
}, },
// 类别查询 // 品牌查询
getAllBrand: function(params) { getAllBrand: function(params) {
return request({ return request({
url: '/yxtbase/apiadmin/base/basegoodsbrand/listAll', url: '/yxtbase/apiadmin/base/basegoodsbrand/listAll',
@ -52,4 +52,19 @@ export default {
}, },
// 品牌-- 删除
deleteBySids: function(data) {
return request({
url: '/yxtbase/apiadmin/base/basegoodsbrand/delBySids',
method: 'DELETE',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
},
} }

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

@ -58,4 +58,17 @@ export default {
}, },
// 类别-- 删除
deleteBySids: function(data) {
return request({
url: '/yxtbase/apiadmin/base/basegoodstype/delBySids',
method: 'DELETE',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
},
} }

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

@ -50,5 +50,17 @@ export default {
}); });
}, },
// 厂家-- 删除
deleteBySids: function(data) {
return request({
url: '/yxtbase/apiadmin/base/basemanufacturer/delBySids',
method: 'DELETE',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
},
} }

12
yxt-as-ui/src/api/goods/goods.js

@ -42,4 +42,16 @@ export default {
}, },
// 商品-- 删除
deleteBySids: function(data) {
return request({
url: '/yxtbase/apiadmin/base/basegoodsspu/delBySids',
method: 'DELETE',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
},
} }

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

@ -51,5 +51,16 @@ export default {
}); });
}, },
// 单位-- 删除
deleteBySids: function(data) {
return request({
url: '/yxtbase/apiadmin/base/basegoodsunit/delBySids',
method: 'DELETE',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
},
} }

10
yxt-as-ui/src/api/storage/deliveryNotice.js

@ -51,4 +51,14 @@ export default {
}); });
}, },
// 选择供应商
choiceSupplier: function(params) {
return request({
url: '/pms/v1/pmssupplierinfo/choiceSupplierInfo',
method: 'post',
data: params,
})
},
} }

2
yxt-as-ui/src/api/storage/receivingGoods.js

@ -67,7 +67,7 @@ export default {
// 选择供应商 // 选择供应商
choiceSupplier: function(params) { choiceSupplier: function(params) {
return request({ return request({
url: '/wms/apiadmin/base/basesupplierinfo/choiceSupplierInfo', url: '/pms/v1/pmssupplierinfo/choiceSupplierInfo',
method: 'post', method: 'post',
data: params, data: params,
}) })

12
yxt-as-ui/src/api/warehouse/goodsShelves.js

@ -44,4 +44,16 @@ export default {
}, },
// 库位-- 删除
deleteBySids: function(data) {
return request({
url: '/wms/apiadmin/base/wmswarehouserack/delBySids',
method: 'DELETE',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
},
} }

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

@ -8,7 +8,9 @@ export default {
url: '/wms/apiadmin/base/wmswarehouseinfo/listPage', url: '/wms/apiadmin/base/wmswarehouseinfo/listPage',
method: 'post', method: 'post',
data: params, data: params,
headers: { 'Content-Type': 'application/json' } headers: {
'Content-Type': 'application/json'
}
}) })
}, },
@ -25,10 +27,10 @@ export default {
// 修改是否可用状态 // 修改是否可用状态
updateIsEnable: function(sid,isEnable) { updateIsEnable: function(sid, isEnable) {
return request({ return request({
url: '/wms/apiadmin/base/wmswarehouseinfo/updateStatus/'+sid+"/"+isEnable url: '/wms/apiadmin/base/wmswarehouseinfo/updateStatus/' + sid + "/" + isEnable
}); });
}, },
@ -38,7 +40,9 @@ export default {
url: '/wms/apiadmin/base/wmswarehouseinfo/saveOrUpdate', url: '/wms/apiadmin/base/wmswarehouseinfo/saveOrUpdate',
method: 'post', method: 'post',
data: data, data: data,
headers: { 'Content-Type': 'application/json' } headers: {
'Content-Type': 'application/json'
}
}); });
}, },
@ -50,5 +54,16 @@ export default {
}); });
}, },
// 仓库-- 删除
deleteBySids: function(data) {
return request({
url: '/wms/apiadmin/base/wmswarehouseinfo/delBySids',
method: 'DELETE',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
},
} }

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

@ -26,11 +26,23 @@ export default {
}, },
// 根据仓库sid查询库区
getAllWarehouseareaBysid: function(params) {
return request({
url: '/wms/apiadmin/base/wmswarehousearea/selectAll?ckSid='+params,
method: 'get',
headers: {
'Content-Type': 'application/json'
}
})
},
// 修改是否可用状态 // 修改是否可用状态
updateIsEnable: function(sid,isEnable) { updateIsEnable: function(sid, isEnable) {
return request({ return request({
url: '/wms/apiadmin/base/wmswarehousearea/updateIsEnable/'+sid+"/"+isEnable url: '/wms/apiadmin/base/wmswarehousearea/updateIsEnable/' + sid + "/" + isEnable
}); });
}, },
@ -55,4 +67,16 @@ export default {
}, },
// 库区-- 删除
deleteBySids: function(data) {
return request({
url: '/wms/apiadmin/base/wmswarehouseinfo/delBySids',
method: 'DELETE',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
},
} }

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

@ -15,7 +15,7 @@ export default {
}) })
}, },
// 库查询 // 库去类型查询
getAllWarehouseareatype: function(params) { getAllWarehouseareatype: function(params) {
return request({ return request({
url: '/wms/apiadmin/base/wmswarehouseareatype/listAll', url: '/wms/apiadmin/base/wmswarehouseareatype/listAll',
@ -55,6 +55,18 @@ export default {
}); });
}, },
// 库区类型-- 删除
deleteBySids: function(data) {
return request({
url: '/wms/apiadmin/base/wmswarehouseareatype/delBySids',
method: 'DELETE',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
},
} }

1
yxt-as-ui/src/components/uploadFile/uploadImg.vue

@ -147,6 +147,7 @@ export default {
imgFiles.push(o.url) imgFiles.push(o.url)
}) })
this.$emit('fileChange', this.files) this.$emit('fileChange', this.files)
this.$emit('change', this.files)
}, },
handleRemove(file, fileList) { handleRemove(file, fileList) {
console.log('file:' + JSON.stringify(file)) console.log('file:' + JSON.stringify(file))

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

@ -171,7 +171,7 @@ export const constantRoutes = [{
path: '/unit/index', path: '/unit/index',
component: () => import('@/views/goods/unit/index.vue'), component: () => import('@/views/goods/unit/index.vue'),
name: 'Unit', name: 'Unit',
meta: { title: '单位管理', noCache: true } meta: { title: '计量单位', noCache: true }
} }
] ]
}, },

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

@ -88,6 +88,9 @@
remarks: '', remarks: '',
letter: '', letter: '',
image: "", image: "",
useOrgSid: window.sessionStorage.getItem('departmentSid'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
}, },
hideUploadBtn: false, hideUploadBtn: false,
@ -140,6 +143,9 @@
remarks: '', remarks: '',
letter: '', letter: '',
image: "", image: "",
useOrgSid: window.sessionStorage.getItem('departmentSid'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
} }
this.$emit('doback') this.$emit('doback')
}, },

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

@ -27,10 +27,11 @@
<!-- End 项目列表头部 --> <!-- End 项目列表头部 -->
<!-- Start 项目列表 --> <!-- Start 项目列表 -->
<div class=""> <div class="">
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"> <el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"
<!-- <el-table-column fixed width="50" type="selection" align="center" /> --> @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 fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column label="操作" align="center" width="180"> <el-table-column label="操作" align="center" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="mini" @click="toRelevancy(scope.row)">编辑</el-button> <el-button type="primary" size="mini" @click="toRelevancy(scope.row)">编辑</el-button>
<!-- <el-button type="primary" size="mini" @click="toRelevancyInfo(scope.row)">删除</el-button> --> <!-- <el-button type="primary" size="mini" @click="toRelevancyInfo(scope.row)">删除</el-button> -->
@ -101,6 +102,13 @@
btnKey: 'toAdd', btnKey: 'toAdd',
btnLabel: '新增' btnLabel: '新增'
}, },
{
type: 'danger',
size: 'small',
icon: 'plus',
btnKey: 'doDel',
btnLabel: '删除'
},
{ {
type: 'info', type: 'info',
size: 'small', size: 'small',
@ -117,7 +125,8 @@
name: '' name: ''
} }
}, },
sids: [] sids: [],
selectionList: []
} }
}, },
mounted() { mounted() {
@ -127,6 +136,17 @@
this.loadList() this.loadList()
}, },
methods: { methods: {
selectionLineChangeHandle(val) {
console.log("val", val);
this.selectionList = val
const aa = []
val.forEach(element => {
aa.push(element.sid)
})
this.sids = aa
},
// //
clicksearchShow() { clicksearchShow() {
this.isSearchShow = !this.isSearchShow this.isSearchShow = !this.isSearchShow
@ -141,6 +161,9 @@
case 'toAdd': case 'toAdd':
this.toAdd() this.toAdd()
break break
case 'doDel':
this.doDel()
break
case 'doClose': case 'doClose':
this.doClose() this.doClose()
break break
@ -200,35 +223,43 @@
this.viewState = 3 this.viewState = 3
this.$refs['divadd'].showEdit(row) this.$refs['divadd'].showEdit(row)
}, },
toRelevancyInfo(row) { doDel() {
const tip = '请确认是否删除所选品牌?'
this.$confirm(tip, '提示', { if (this.sids.length > 0) {
confirmButtonText: '确定', const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
cancelButtonText: '取消', this.$confirm(tip, '提示', {
type: 'warning' confirmButtonText: '确定',
}).then(() => { cancelButtonText: '取消',
const loading = this.$loading({ type: 'warning'
lock: true, }).then(() => {
text: 'Loading', const loading = this.$loading({
spinner: 'el-icon-loading', lock: true,
background: 'rgba(0, 0, 0, 0.7)' text: 'Loading',
}) spinner: 'el-icon-loading',
req.deleteGoods(row.sid).then((resp) => { background: 'rgba(0, 0, 0, 0.7)'
loading.close() })
if (resp.success) { req.deleteBySids(this.sids).then((resp) => {
this.$message({ loading.close()
type: 'success', if (resp.success) {
message: resp.msg, this.$message({
showClose: true type: 'success',
}) message: resp.msg,
this.loadList() showClose: true
} else { })
// resp.code this.loadList()
} } else {
}).catch(e => { // resp.code
loading.close() }
}).catch(e => {
loading.close()
})
}).catch(() => {})
} else {
this.$message({
showClose: true,
message: '请至少选择一条记录进行删除操作'
}) })
}).catch(() => {}) }
}, },
resetState() { resetState() {
this.viewState = 1 this.viewState = 1

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

@ -41,7 +41,12 @@
<el-input v-model="formobj.percentageAmount" placeholder="" class="item_input" clearable <el-input v-model="formobj.percentageAmount" placeholder="" class="item_input" clearable
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" /> oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" />
</div> </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" />
</el-select>
</div>
<div class="item"> <div class="item">
<span class="item_text">类别排序</span> <span class="item_text">类别排序</span>
<el-input v-model="formobj.sortNo" placeholder="" class="item_input" clearable <el-input v-model="formobj.sortNo" placeholder="" class="item_input" clearable
@ -61,6 +66,9 @@
<script> <script>
import req from '@/api/goods/category.js' import req from '@/api/goods/category.js'
import {
typeValues
} from '@/api/Common/dictcommons.js'
export default { export default {
components: {}, components: {},
data() { data() {
@ -72,13 +80,19 @@
goodsTypeCode: '', goodsTypeCode: '',
percentageRate: '', percentageRate: '',
percentageAmount: '', percentageAmount: '',
outStockRuleKey: '',
outStockRuleValue: '',
sids: '', sids: '',
pname: '', pname: '',
sortNo: '', sortNo: '',
remarks: '', remarks: '',
useOrgSid: window.sessionStorage.getItem('departmentSid'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
}, },
goodsTypeList: [], goodsTypeList: [],
outStockRuleList: [],
} }
}, },
created() { created() {
@ -86,10 +100,21 @@
}, },
methods: { methods: {
initData() { initData() {
console.log('>>>>>>>>>initData') console.log('>>>>>>>>>initData')
req.getAllType().then(resp => { req.getAllType().then(resp => {
this.goodsTypeList = resp.data this.goodsTypeList = resp.data
}) })
var params = {
type: "goodsOutRule",
psid: '0'
}
typeValues(params).then(resp => {
console.log('>>>>>>>>>typeValues', resp)
this.outStockRuleList = resp.data
}).catch(() => {})
}, },
saveOrUpdate() { saveOrUpdate() {
console.log('>>>>>>>>>saveOrUpdate', this.formobj) console.log('>>>>>>>>>saveOrUpdate', this.formobj)
@ -116,10 +141,15 @@
goodsTypeCode: '', goodsTypeCode: '',
percentageRate: '', percentageRate: '',
percentageAmount: '', percentageAmount: '',
outStockRuleKey: '',
outStockRuleValue: '',
sids: '', sids: '',
pname: '', pname: '',
sortNo: '', sortNo: '',
remarks: '', remarks: '',
useOrgSid: window.sessionStorage.getItem('departmentSid'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
} }
this.$emit('doback') this.$emit('doback')
}, },
@ -138,10 +168,16 @@
selectGoodsTypeChange(val) { selectGoodsTypeChange(val) {
const choose = this.goodsTypeList.filter((item) => item.sid == val) const choose = this.goodsTypeList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectGoodsTypeChange', choose) console.log('>>>>>>>>>selectGoodsTypeChange', choose)
this.formobj.sids = choose[0].sid this.formobj.sids = choose[0].sid
this.formobj.pName = choose[0].goodsTypeName this.formobj.pName = choose[0].goodsTypeName
}, },
selectOutStockRuleChange(val){
const choose = this.outStockRuleList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectOutStockRuleChange', choose)
this.formobj.outStockRuleKey = choose[0].dictKey
this.formobj.outStockRuleValue = choose[0].dictValue
},
} }
} }
</script> </script>

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

@ -12,21 +12,27 @@
<el-form-item label="类别名称"> <el-form-item label="类别名称">
<el-input v-model="queryParams.params.name" placeholder="" clearable /> <el-input v-model="queryParams.params.name" placeholder="" clearable />
</el-form-item> </el-form-item>
<el-form-item label="类别编码">
<el-input v-model="queryParams.params.code" placeholder="" clearable />
</el-form-item>
<el-form-item label="是否一物一码">
<el-select v-model="queryParams.params.goodID" placeholder="请选择" class="addinputw addinputInfo"
@change="selectIsGoodIDChange">
<el-option v-for="item in isGoodIDList" :key="item.sid" :label="item.name" :value="item.sid" />
</el-select>
</el-form-item>
<el-form-item label="出库规则">
<el-select v-model="queryParams.params.outStockRule" placeholder="请选择" class="addinputw addinputInfo"
@change="selectOutStockRuleChange">
<el-option v-for="item in outStockRuleList" :key="item.dictKey" :label="item.dictValue"
:value="item.dictKey" />
</el-select>
</el-form-item>
</el-form> </el-form>
<div class="btn" style="text-align: center;"> <div class="btn" style="text-align: center;">
<el-button <el-button type="primary" size="small" icon="el-icon-search" @click="dosearch">查询</el-button>
type="primary" <el-button type="primary" size="small" icon="el-icon-refresh" @click="resetQuery">重置</el-button>
size="small"
icon="el-icon-search"
@click="dosearch"
>查询</el-button>
<el-button
type="primary"
size="small"
icon="el-icon-refresh"
@click="resetQuery"
>重置</el-button>
</div> </div>
</div> </div>
</div> </div>
@ -37,22 +43,23 @@
<!-- End 项目列表头部 --> <!-- End 项目列表头部 -->
<!-- Start 项目列表 --> <!-- Start 项目列表 -->
<div class=""> <div class="">
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"> <el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"
<!-- <el-table-column fixed width="50" type="selection" align="center" /> --> @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 fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column label="操作" align="center" width="180"> <el-table-column label="操作" align="center" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="mini" @click="toRelevancy(scope.row)">编辑</el-button> <el-button type="primary" size="mini" @click="toRelevancy(scope.row)">编辑</el-button>
<!-- <el-button type="primary" size="mini" @click="toRelevancyInfo(scope.row)">删除</el-button> --> <!-- <el-button type="primary" size="mini" @click="toRelevancyInfo(scope.row)">删除</el-button> -->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="是否可用" align="center" width="140"> <el-table-column label="是否可用" align="center" width="140">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch v-model="scope.row.isEnable" active-text="" inactive-text="" active-value="1" <el-switch v-model="scope.row.isEnable" active-text="" inactive-text="" active-value="1"
inactive-value="2" @change="enableChange(scope.row.sid,scope.row.isEnable)" /> inactive-value="2" @change="enableChange(scope.row.sid,scope.row.isEnable)" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="是否一一码" align="center" width="140"> <el-table-column label="是否一一码" align="center" width="140">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch v-model="scope.row.isGoodsID" active-text="" inactive-text="" active-value="1" <el-switch v-model="scope.row.isGoodsID" active-text="" inactive-text="" active-value="1"
inactive-value="0" @change="enableChange2(scope.row.sid,scope.row.isGoodsID)" /> inactive-value="0" @change="enableChange2(scope.row.sid,scope.row.isGoodsID)" />
@ -63,20 +70,15 @@
<el-table-column prop="pname" label="上级类别" align="center" /> <el-table-column prop="pname" label="上级类别" align="center" />
<el-table-column prop="percentageRate" label="提成比例" align="center" /> <el-table-column prop="percentageRate" label="提成比例" align="center" />
<el-table-column prop="percentageAmount" label="提成金额" align="center" /> <el-table-column prop="percentageAmount" label="提成金额" align="center" />
<el-table-column prop="outStockRule" label="出库规则" align="center" />
</el-table> </el-table>
</div> </div>
<!-- End 项目列表 --> <!-- End 项目列表 -->
<div class="pages"> <div class="pages">
<div class="tit" /> <div class="tit" />
<!-- 翻页 --> <!-- 翻页 -->
<pagination <pagination v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current"
v-show="dataList.length > 0" :limit.sync="queryParams.size" class="pagination" @pagination="loadList" />
:total="queryParams.total"
:page.sync="queryParams.current"
:limit.sync="queryParams.size"
class="pagination"
@pagination="loadList"
/>
</div> </div>
</div> </div>
</div> </div>
@ -87,165 +89,233 @@
</template> </template>
<script> <script>
import req from '@/api/goods/category.js' import req from '@/api/goods/category.js'
import ButtonBar from '@/components/ButtonBar' import {
import Pagination from '@/components/pagination' typeValues
import pageye from '@/components/pagination/pageye' } from '@/api/Common/dictcommons.js'
import divAdd from './categoryAdd.vue' import ButtonBar from '@/components/ButtonBar'
export default { import Pagination from '@/components/pagination'
components: { import pageye from '@/components/pagination/pageye'
ButtonBar, import divAdd from './categoryAdd.vue'
Pagination, export default {
pageye, components: {
divAdd ButtonBar,
}, Pagination,
data() { pageye,
return { divAdd
btndisabled: false, },
viewState: 1, // 1 2 3 4 data() {
isSearchShow: false, return {
searchxianshitit: '显示查询条件', btndisabled: false,
tableLoading: false, viewState: 1, // 1 2 3 4
dataList: [], isSearchShow: false,
btnList: [{ searchxianshitit: '显示查询条件',
type: 'primary', tableLoading: false,
size: 'small', dataList: [],
icon: 'plus', btnList: [{
btnKey: 'toAdd', type: 'primary',
btnLabel: '新增' size: 'small',
}, icon: 'plus',
{ btnKey: 'toAdd',
type: 'info', btnLabel: '新增'
size: 'small', },
icon: 'cross', {
btnKey: 'doClose', type: 'danger',
btnLabel: '关闭' size: 'small',
} icon: 'plus',
], btnKey: 'doDel',
queryParams: { btnLabel: '删除'
current: 1, },
size: 10, {
total: 0, type: 'info',
params: { size: 'small',
name: '' icon: 'cross',
} btnKey: 'doClose',
}, btnLabel: '关闭'
sids: [] }
} ],
}, queryParams: {
mounted() { current: 1,
this.$refs['btnbar'].setButtonList(this.btnList) size: 10,
}, total: 0,
created() { params: {
this.loadList() name: '',
}, code: '',
methods: { goodID: '',
// outStockRule: '',
clicksearchShow() { }
this.isSearchShow = !this.isSearchShow },
if (this.isSearchShow) { isGoodIDList: [{
this.searchxianshitit = '隐藏查询条件' sid: "0",
} else { name: '否'
this.searchxianshitit = '显示查询条件' },
} {
}, sid: "1",
btnHandle(btnKey) { name: '是'
switch (btnKey) { }
case 'toAdd': ],
this.toAdd() outStockRuleList: [],
break sids: [],
case 'doClose': selectionList: []
this.doClose() }
break },
default: mounted() {
break this.$refs['btnbar'].setButtonList(this.btnList)
} },
}, created() {
loadList() { this.loadList()
this.tableLoading = true this.getDictValue()
req.listPage(this.queryParams).then((resp) => { },
this.tableLoading = false methods: {
if (resp.success) { getDictValue() {
const data = resp.data
this.queryParams.total = data.total var params = {
this.dataList = data.records type: "goodsOutRule",
} else { psid: '0'
// resp.code }
this.dataList = []
this.queryParams.total = 0 typeValues(params).then(resp => {
} console.log('>>>>>>>>>typeValues', resp)
}).catch(() => { this.outStockRuleList = resp.data
this.tableLoading = false }).catch(() => {})
}) },
}, selectIsGoodIDChange(val) {
},
selectOutStockRuleChange(val) {
},
selectionLineChangeHandle(val) {
console.log("val", val);
this.selectionList = val
const aa = []
val.forEach(element => {
aa.push(element.sid)
})
this.sids = aa
},
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
switch (btnKey) {
case 'toAdd':
this.toAdd()
break
case 'doDel':
this.doDel()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
loadList() {
this.tableLoading = true
req.listPage(this.queryParams).then((resp) => {
this.tableLoading = false
if (resp.success) {
const data = resp.data
this.queryParams.total = data.total
this.dataList = data.records
} else {
// resp.code
this.dataList = []
this.queryParams.total = 0
}
}).catch(() => {
this.tableLoading = false
})
},
//
indexMethod(index) {
var pagestart = (this.queryParams.current - 1) * this.queryParams.size
var pageindex = index + 1 + pagestart
return pageindex
},
dosearch() {
this.queryParams.current = 1
this.loadList()
},
resetQuery() {
this.queryParams = {
current: 1,
size: 10,
total: 0,
params: {
name: '',
code: '',
goodID: '',
outStockRule: '',
}
}
this.loadList()
},
toAdd() {
this.viewState = 2
this.$refs['divadd'].showAdd()
},
// doClose() {
indexMethod(index) { this.$store.dispatch('tagsView/delView', this.$route)
var pagestart = (this.queryParams.current - 1) * this.queryParams.size this.$router.go(-1)
var pageindex = index + 1 + pagestart },
return pageindex toRelevancy(row) {
}, this.viewState = 3
dosearch() { this.$refs['divadd'].showEdit(row)
this.queryParams.current = 1 },
this.loadList() doDel() {
},
resetQuery() {
this.queryParams = {
current: 1,
size: 10,
total: 0,
params: {
name: ''
}
}
this.loadList()
},
toAdd() {
this.viewState = 2
this.$refs['divadd'].showAdd()
},
doClose() { if (this.sids.length > 0) {
this.$store.dispatch('tagsView/delView', this.$route) const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$router.go(-1) this.$confirm(tip, '提示', {
}, confirmButtonText: '确定',
toRelevancy(row) { cancelButtonText: '取消',
this.viewState = 3 type: 'warning'
this.$refs['divadd'].showEdit(row) }).then(() => {
}, const loading = this.$loading({
toRelevancyInfo(row) { lock: true,
const tip = '请确认是否删除所选品牌?' text: 'Loading',
this.$confirm(tip, '提示', { spinner: 'el-icon-loading',
confirmButtonText: '确定', background: 'rgba(0, 0, 0, 0.7)'
cancelButtonText: '取消', })
type: 'warning' req.deleteBySids(this.sids).then((resp) => {
}).then(() => { loading.close()
const loading = this.$loading({ if (resp.success) {
lock: true, this.$message({
text: 'Loading', type: 'success',
spinner: 'el-icon-loading', message: resp.msg,
background: 'rgba(0, 0, 0, 0.7)' showClose: true
}) })
req.deleteGoods(row.sid).then((resp) => { this.loadList()
loading.close() } else {
if (resp.success) { // resp.code
this.$message({ }
type: 'success', }).catch(e => {
message: resp.msg, loading.close()
showClose: true })
}) }).catch(() => {})
this.loadList() } else {
} else { this.$message({
// resp.code showClose: true,
} message: '请至少选择一条记录进行删除操作'
}).catch(e => { })
loading.close() }
}) },
}).catch(() => {}) resetState() {
}, this.viewState = 1
resetState() { },
this.viewState = 1
},
enableChange(sid, state) { enableChange(sid, state) {
console.log('sid', sid) console.log('sid', sid)
console.log('state', state) console.log('state', state)
@ -278,8 +348,8 @@
console.log(e) console.log(e)
}) })
} }
} }
} }
</script> </script>
<style scoped> <style scoped>
</style> </style>

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

@ -26,7 +26,8 @@
</div> </div>
<div class="item"> <div class="item">
<span class="item_text">厂家排序</span> <span class="item_text">厂家排序</span>
<el-input v-model="formobj.sortNo" placeholder="" class="item_input" clearable /> <el-input v-model="formobj.sortNo" placeholder="" class="item_input" clearable
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
</div> </div>
<div class="item"> <div class="item">
<span class="item_text">厂家备注</span> <span class="item_text">厂家备注</span>
@ -51,7 +52,10 @@
manufacturerName: '', manufacturerName: '',
manufacturerCode: '', manufacturerCode: '',
sortNo: '', sortNo: '',
remarks: "" remarks: "",
useOrgSid: window.sessionStorage.getItem('departmentSid'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
}, },
} }
}, },
@ -82,7 +86,10 @@
manufacturerName: '', manufacturerName: '',
manufacturerCode: '', manufacturerCode: '',
sortNo: '', sortNo: '',
remarks: "" remarks: "",
useOrgSid: window.sessionStorage.getItem('departmentSid'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
} }
this.$emit('doback') this.$emit('doback')
}, },

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

@ -15,18 +15,8 @@
</el-form> </el-form>
<div class="btn" style="text-align: center;"> <div class="btn" style="text-align: center;">
<el-button <el-button type="primary" size="small" icon="el-icon-search" @click="dosearch">查询</el-button>
type="primary" <el-button type="primary" size="small" icon="el-icon-refresh" @click="resetQuery">重置</el-button>
size="small"
icon="el-icon-search"
@click="dosearch"
>查询</el-button>
<el-button
type="primary"
size="small"
icon="el-icon-refresh"
@click="resetQuery"
>重置</el-button>
</div> </div>
</div> </div>
</div> </div>
@ -37,21 +27,21 @@
<!-- End 项目列表头部 --> <!-- End 项目列表头部 -->
<!-- Start 项目列表 --> <!-- Start 项目列表 -->
<div class=""> <div class="">
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"> <el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"
<!-- <el-table-column fixed width="50" type="selection" align="center" /> --> @selection-change="selectionLineChangeHandle">
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" /> <el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column label="操作" align="center" width="180"> <el-table-column label="操作" align="center" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="mini" @click="toRelevancy(scope.row)">编辑</el-button> <el-button type="primary" size="mini" @click="toRelevancy(scope.row)">编辑</el-button>
<!-- <el-button type="primary" size="mini" @click="toRelevancyInfo(scope.row)">删除</el-button> --> <!-- <el-button type="primary" size="mini" @click="toRelevancyInfo(scope.row)">删除</el-button> -->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="是否可用" align="center" width="140"> <el-table-column label="是否可用" align="center" width="140">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch v-model="scope.row.isEnable" active-text="" inactive-text="" active-value="1" <el-switch v-model="scope.row.isEnable" active-text="" inactive-text="" active-value="1"
inactive-value="2" @change="enableChange(scope.row.sid,scope.row.isEnable)" /> inactive-value="2" @change="enableChange(scope.row.sid,scope.row.isEnable)" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="manufacturerName" label="厂家名称" align="center" /> <el-table-column prop="manufacturerName" label="厂家名称" align="center" />
<el-table-column prop="manufacturerCode" label="厂家编码" align="center" /> <el-table-column prop="manufacturerCode" label="厂家编码" align="center" />
<el-table-column prop="sortNo" label="排序" align="center" /> <el-table-column prop="sortNo" label="排序" align="center" />
@ -61,14 +51,8 @@
<div class="pages"> <div class="pages">
<div class="tit" /> <div class="tit" />
<!-- 翻页 --> <!-- 翻页 -->
<pagination <pagination v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current"
v-show="dataList.length > 0" :limit.sync="queryParams.size" class="pagination" @pagination="loadList" />
:total="queryParams.total"
:page.sync="queryParams.current"
:limit.sync="queryParams.size"
class="pagination"
@pagination="loadList"
/>
</div> </div>
</div> </div>
</div> </div>
@ -79,165 +63,195 @@
</template> </template>
<script> <script>
import req from '@/api/goods/factory.js' import req from '@/api/goods/factory.js'
import ButtonBar from '@/components/ButtonBar' import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination' import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye' import pageye from '@/components/pagination/pageye'
import divAdd from './factoryAdd.vue' import divAdd from './factoryAdd.vue'
export default { export default {
components: { components: {
ButtonBar, ButtonBar,
Pagination, Pagination,
pageye, pageye,
divAdd divAdd
}, },
data() { data() {
return { return {
btndisabled: false, btndisabled: false,
viewState: 1, // 1 2 3 4 viewState: 1, // 1 2 3 4
isSearchShow: false, isSearchShow: false,
searchxianshitit: '显示查询条件', searchxianshitit: '显示查询条件',
tableLoading: false, tableLoading: false,
dataList: [], dataList: [],
btnList: [{ btnList: [{
type: 'primary', type: 'primary',
size: 'small', size: 'small',
icon: 'plus', icon: 'plus',
btnKey: 'toAdd', btnKey: 'toAdd',
btnLabel: '新增' btnLabel: '新增'
}, },
{ {
type: 'info', type: 'danger',
size: 'small', size: 'small',
icon: 'cross', icon: 'plus',
btnKey: 'doClose', btnKey: 'doDel',
btnLabel: '关闭' btnLabel: '删除'
} },
], {
queryParams: { type: 'info',
current: 1, size: 'small',
size: 10, icon: 'cross',
total: 0, btnKey: 'doClose',
params: { btnLabel: '关闭'
name: '' }
} ],
}, queryParams: {
sids: [] current: 1,
} size: 10,
}, total: 0,
mounted() { params: {
this.$refs['btnbar'].setButtonList(this.btnList) name: ''
}, }
created() { },
this.loadList() sids: [],
}, selectionList: []
methods: { }
// },
clicksearchShow() { mounted() {
this.isSearchShow = !this.isSearchShow this.$refs['btnbar'].setButtonList(this.btnList)
if (this.isSearchShow) { },
this.searchxianshitit = '隐藏查询条件' created() {
} else { this.loadList()
this.searchxianshitit = '显示查询条件' },
} methods: {
}, selectionLineChangeHandle(val) {
btnHandle(btnKey) { console.log("val", val);
switch (btnKey) {
case 'toAdd': this.selectionList = val
this.toAdd()
break const aa = []
case 'doClose': val.forEach(element => {
this.doClose() aa.push(element.sid)
break })
default: this.sids = aa
break },
} //
}, clicksearchShow() {
loadList() { this.isSearchShow = !this.isSearchShow
this.tableLoading = true if (this.isSearchShow) {
req.listPage(this.queryParams).then((resp) => { this.searchxianshitit = '隐藏查询条件'
this.tableLoading = false } else {
if (resp.success) { this.searchxianshitit = '显示查询条件'
const data = resp.data }
this.queryParams.total = data.total },
this.dataList = data.records btnHandle(btnKey) {
} else { switch (btnKey) {
// resp.code case 'toAdd':
this.dataList = [] this.toAdd()
this.queryParams.total = 0 break
} case 'doDel':
}).catch(() => { this.doDel()
this.tableLoading = false break
}) case 'doClose':
}, this.doClose()
break
default:
break
}
},
loadList() {
this.tableLoading = true
req.listPage(this.queryParams).then((resp) => {
this.tableLoading = false
if (resp.success) {
const data = resp.data
this.queryParams.total = data.total
this.dataList = data.records
} else {
// resp.code
this.dataList = []
this.queryParams.total = 0
}
}).catch(() => {
this.tableLoading = false
})
},
//
indexMethod(index) {
var pagestart = (this.queryParams.current - 1) * this.queryParams.size
var pageindex = index + 1 + pagestart
return pageindex
},
dosearch() {
this.queryParams.current = 1
this.loadList()
},
resetQuery() {
this.queryParams = {
current: 1,
size: 10,
total: 0,
params: {
name: ''
}
}
this.loadList()
},
toAdd() {
this.viewState = 2
this.$refs['divadd'].showAdd()
},
// doClose() {
indexMethod(index) { this.$store.dispatch('tagsView/delView', this.$route)
var pagestart = (this.queryParams.current - 1) * this.queryParams.size this.$router.go(-1)
var pageindex = index + 1 + pagestart },
return pageindex toRelevancy(row) {
}, this.viewState = 3
dosearch() { this.$refs['divadd'].showEdit(row)
this.queryParams.current = 1 },
this.loadList() doDel() {
},
resetQuery() {
this.queryParams = {
current: 1,
size: 10,
total: 0,
params: {
name: ''
}
}
this.loadList()
},
toAdd() {
this.viewState = 2
this.$refs['divadd'].showAdd()
},
doClose() { if (this.sids.length > 0) {
this.$store.dispatch('tagsView/delView', this.$route) const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$router.go(-1) this.$confirm(tip, '提示', {
}, confirmButtonText: '确定',
toRelevancy(row) { cancelButtonText: '取消',
this.viewState = 3 type: 'warning'
this.$refs['divadd'].showEdit(row) }).then(() => {
}, const loading = this.$loading({
toRelevancyInfo(row) { lock: true,
const tip = '请确认是否删除所选品牌?' text: 'Loading',
this.$confirm(tip, '提示', { spinner: 'el-icon-loading',
confirmButtonText: '确定', background: 'rgba(0, 0, 0, 0.7)'
cancelButtonText: '取消', })
type: 'warning' req.deleteBySids(this.sids).then((resp) => {
}).then(() => { loading.close()
const loading = this.$loading({ if (resp.success) {
lock: true, this.$message({
text: 'Loading', type: 'success',
spinner: 'el-icon-loading', message: resp.msg,
background: 'rgba(0, 0, 0, 0.7)' showClose: true
}) })
req.deleteGoods(row.sid).then((resp) => { this.loadList()
loading.close() } else {
if (resp.success) { // resp.code
this.$message({ }
type: 'success', }).catch(e => {
message: resp.msg, loading.close()
showClose: true })
}) }).catch(() => {})
this.loadList() } else {
} else { this.$message({
// resp.code showClose: true,
} message: '请至少选择一条记录进行删除操作'
}).catch(e => { })
loading.close() }
}) },
}).catch(() => {}) resetState() {
}, this.viewState = 1
resetState() { },
this.viewState = 1
},
enableChange(sid, state) { enableChange(sid, state) {
console.log('sid', sid) console.log('sid', sid)
console.log('state', state) console.log('state', state)
@ -254,8 +268,8 @@
console.log(e) console.log(e)
}) })
}, },
} }
} }
</script> </script>
<style scoped> <style scoped>
</style> </style>

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

@ -0,0 +1,526 @@
<template>
<div>
<div class="tab-header webtop">
<!-- 标题 -->
<div>商品信息</div>
<!-- start 添加修改按钮 -->
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate">保存</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
<!-- end 添加修改按钮 -->
<!-- end 详情按钮 -->
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" 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>
<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>
<el-input v-model="formobj.goodsCode" placeholder="商品编码" class="addinputw addinputInfo" clearable />
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">商品条形码</div>
<el-form-item>
<el-input v-model="formobj.barCode" placeholder="由系统自动生成" :readonly="true" class="addinputw addinputInfo"
clearable />
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">商品拼音缩写</div>
<el-form-item>
<el-input v-model="formobj.goodsPY" placeholder="由系统自动生成" :readonly="true" class="addinputw addinputInfo"
clearable />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">商品单位</div>
<el-form-item>
<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>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">商品类别</div>
<el-form-item>
<el-select v-model="formobj.typeName" placeholder="请选择商品类别" class="addinputw" @change="selectCateChange">
<el-option v-for="item in cateList" :key="item.sid" :label="item.goodsTypeName" :value="item.sid" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">规格</div>
<el-form-item>
<el-input v-model="formobj.shelfLife" placeholder="规格" class="addinputw addinputInfo" clearable />
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">保质期()</div>
<el-form-item>
<el-input v-model="formobj.shelfLife" placeholder="保质期(天)" class="addinputw addinputInfo" clearable
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">商品品牌</div>
<el-form-item>
<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" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">商品厂家</div>
<el-form-item>
<el-select v-model="formobj.manufacturerName" placeholder="请选择商品厂家" class="addinputw"
@change="selectfacturerChange">
<el-option v-for="item in facturerList" :key="item.sid" :label="item.manufacturerName"
:value="item.sid" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">原厂标志</div>
<el-form-item>
<el-radio-group v-model="formobj.isListed" size="small" class="addinputw">
<el-radio :label="'1'"></el-radio>
<el-radio :label="'2'"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">商品排序</div>
<el-form-item>
<el-input v-model="formobj.sortNo" 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>
<el-input v-model="formobj.remarks" placeholder="商品备注" class="addinputw addinputInfo" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<div class="span-sty">库存上限</div>
<el-form-item>
<el-input v-model="formobj.externalCode" 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>
<el-input v-model="formobj.nationalStandardCode" placeholder="库存下限" class="addinputw addinputInfo"
clearable oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">锁定销售定价</div>
<el-form-item>
<el-radio-group v-model="itemInfo.isLockingSalesPrice" size="small" class="addinputw">
<el-radio :label="'1'"></el-radio>
<el-radio :label="'2'"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">销售底价</div>
<el-form-item>
<el-input v-model="formobj.nationalStandardCode" placeholder="国标码" class="addinputw addinputInfo"
clearable
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" />
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">三包价格</div>
<el-form-item>
<el-input v-model="formobj.externalCode" placeholder="外部编码" class="addinputw addinputInfo" clearable
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" />
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">首保价格</div>
<el-form-item>
<el-input v-model="formobj.nationalStandardCode" placeholder="国标码" class="addinputw addinputInfo"
clearable
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">规格图片</div>
<el-form-item>
<upload-img ref="uploadImg" class="addinputw addinputInfo" v-model="imgList" :limit="50" bucket="map"
:upload-data="{ type: '0001' }" @change="backData" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</template>
<script>
import req from '@/api/goods/goods.js'
import req2 from '@/api/goods/brand.js'
import req3 from '@/api/goods/category.js'
import req4 from '@/api/goods/factory.js'
import req5 from '@/api/goods/unit.js'
import uploadImg from '@/components/uploadFile/uploadImg'
export default {
components: {
uploadImg
},
data() {
return {
listLoading: false,
activeNames: ['1'],
imgList: [],
submitdisabled: false,
formobj: {
sid: '',
goodsName: "",
goodsCode: "",
brandSid: "",
brand: "",
goodsTypeSid: "",
typeName: "",
manufacturersid: "",
manufacturer: "",
externalCode: '',
factoryCode: '',
taxRate: '',
shelfLife: '',
baseGoodsSpuDetail: {
goodsExplain: "",
goodsDescription: ""
},
baseGoodsSkus: []
},
brandList: [],
cateList: [],
facturerList: [],
unitNameList: [],
hideUploadBtn: false,
dialogVisible: false,
dialogVisible2: false,
dialogVisible3: false,
itemInfo: {},
orderInfo: {}
}
},
created() {
this.initData()
},
methods: {
initData() {
req2.getAllBrand().then(resp => {
this.brandList = resp.data
})
req3.getAllType().then(resp => {
this.cateList = resp.data
})
req4.getAllFacturer().then(resp => {
this.facturerList = resp.data
})
req5.getAllUnit().then(resp => {
this.unitNameList = resp.data
})
},
backData(value) {
console.log('backData》》》》', value)
console.log('imgList', this.imgList)
this.itemInfo.urls = this.imgList
this.hideUploadBtn = this.imgList.length != 0
console.log('this.hideUploadBtn', this.hideUploadBtn)
},
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.handleReturn('true')
} else {
// resp.code
}
})
.catch(() => {})
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.imgList = []
this.hideUploadBtn = true
this.formobj = {
sid: '',
brand: "",
brandSid: "",
typeName: "",
goodsTypeSid: "",
manufacturer: "",
manufacturerSid: "",
goodsName: '',
goodsCode: '',
barcode: '',
producer: '',
unit: '',
specification: '',
remarks: '',
baseGoodsSpuDetail: {
goodsExplain: "",
goodsDescription: ""
},
baseGoodsSkus: []
}
this.$emit('doback')
},
showAdd() {
var sid = require('uuid').v1()
console.log('>>>>>>>>>showAdd', sid)
this.formobj.sid = sid
},
indexMethod(index) {
return index + 1
},
showEdit(row) {
req.initGoods(row.sid)
.then(resp => {
if (resp.success) {
this.formobj = resp.data
}
})
.catch(e => {
this.formobj = row
})
},
selectBrandChange(val) {
const choose = this.brandList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectBrandChange', choose)
this.formobj.brandSid = choose[0].sid
this.formobj.brandName = choose[0].brandName
},
selectCateChange(val) {
const choose = this.cateList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectCateChange', choose)
this.formobj.goodsTypeSid = choose[0].sid
this.formobj.typeName = choose[0].goodsTypeName
},
selectfacturerChange(val) {
const choose = this.facturerList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectfacturerChange', choose)
this.formobj.manufacturerSid = choose[0].sid
this.formobj.manufacturerName = choose[0].manufacturerName
},
selectunitNameChange(val) {
const choose = this.unitNameList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectunitNameChange', choose)
this.formobj.goodsUnitSid = choose[0].sid
this.formobj.goodsUnitName = choose[0].unitName
},
editGoodsSku(goodsSku) {
console.log('>>>>>>>>>editGoodsSku', goodsSku)
this.orderInfo = goodsSku
this.dialogVisible3 = true
},
showGoodsSkuDttail(goodsSkuDto) {
console.log('>>>>>>>>>showGoodsSkuDttail', goodsSkuDto)
this.dialogVisible = true
this.itemInfo = goodsSkuDto
},
editGoodsSkuDttail(goodsSkuDto) {
console.log('>>>>>>>>>editGoodsSkuDttail', goodsSkuDto)
this.dialogVisible2 = true
this.itemInfo = goodsSkuDto
this.imgList = goodsSkuDto.urls
},
handleClose() {
this.dialogVisible = false
},
handleClose2() {
this.dialogVisible2 = false
},
handleClose3() {
this.dialogVisible3 = false
},
saveGoodsSku() {
console.log('>>>>>>>>>saveGoodsSkuDttail', this.orderInfo)
if (this.orderInfo.sid == '') {
this.orderInfo.sid = require('uuid').v1()
this.orderInfo.goodsSpuSid = this.formobj.sid
this.orderInfo.isEnable = '1'
var detail = {
sid: require('uuid').v1(),
isEnable: '1',
goodsSkuSid: this.orderInfo.sid,
finalPurchasePrice: "",
safetyStockDays: "",
isOriginalFactory: "",
isInventoryAlert: "",
inventoryAlertUpperLimit: "",
inventoryAlertLowerLimit: "",
costPrice: "",
tagPrice: "",
salesPrice: "",
standardPurchasePrice: "",
agencyPrice: "",
discount: "",
minimumSalesPrice: "",
isLockingSalesPrice: "",
isIntegralExchange: "",
integralAmount: "",
urls: [],
}
this.orderInfo.baseGoodsSkuExtend = detail
this.formobj.baseGoodsSkus.push(this.orderInfo)
} else {
var index = this.formobj.baseGoodsSkus.findIndex((item) => item.sid == this.orderInfo.sid)
if (index > -1) {
this.formobj.baseGoodsSkus[index].goodsSkuCode = this.orderInfo.goodsSkuCode
this.formobj.baseGoodsSkus[index].title = this.orderInfo.title
this.formobj.baseGoodsSkus[index].externalCode = this.orderInfo.externalCode
}
}
this.dialogVisible3 = false
},
saveGoodsSkuDttail() {
this.itemInfo.urls = this.imgList
console.log('>>>>>>>>>saveGoodsSkuDttail', this.itemInfo)
var index = this.formobj.baseGoodsSkus.findIndex((item) => item.baseGoodsSkuExtend.sid == this.itemInfo.sid)
console.log('>>>>>>>>>saveGoodsSkuDttail', index)
this.formobj.baseGoodsSkus[index].baseGoodsSkuExtend = this.itemInfo
console.log('>>>>>>>>>saveGoodsSkuDttail', this.formobj.baseGoodsSkus[index].baseGoodsSkuExtend)
this.dialogVisible2 = false
},
addGoodsSku() {
this.dialogVisible3 = true
this.orderInfo = {
sid: ''
}
}
}
}
</script>
<style scoped>
.span-sty {
width: 130px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 120px !important;
width: calc(100% - 115px);
}
.first_row {
border-top: 1px solid #E0E3EB;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
</style>

335
yxt-as-ui/src/views/goods/goods/goodsInfo2.vue

@ -0,0 +1,335 @@
template>
<div>
<div class="tab-header webtop">
<!-- 标题 -->
<div>商品信息</div>
<!-- start 添加修改按钮 -->
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate">保存</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
<!-- end 添加修改按钮 -->
<!-- end 详情按钮 -->
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" 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>
<span class="addinputInfo">{{formobj.goodsName}}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">商品编码</div>
<el-form-item>
<span class="addinputInfo">{{formobj.goodsCode}}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">商品条形码</div>
<el-form-item>
<span class="addinputInfo">{{formobj.barCode}}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">商品拼音缩写</div>
<el-form-item>
<span class="addinputInfo">{{formobj.goodsPY}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">商品单位</div>
<el-form-item>
<span class="addinputInfo">{{formobj.goodsUnitName}}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">商品类别</div>
<el-form-item>
<span class="addinputInfo">{{formobj.typeName}}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">规格</div>
<el-form-item>
<span class="addinputInfo">{{formobj.shelfLife}}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">保质期()</div>
<el-form-item>
<span class="addinputInfo">{{formobj.shelfLife}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">商品品牌</div>
<el-form-item>
<span class="addinputInfo">{{formobj.brandName}}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">商品厂家</div>
<el-form-item>
<span class="addinputInfo">{{formobj.manufacturerName}}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">原厂标志</div>
<el-form-item>
<el-radio-group v-model="formobj.isListed" :disabled="true" size="small" class="addinputw">
<el-radio :label="'1'"></el-radio>
<el-radio :label="'2'"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">商品排序</div>
<el-form-item>
<span class="addinputInfo">{{formobj.sortNo}}</span>
</el-form-item>
</el-col>
<el-col :span="18">
<div class="span-sty">商品备注</div>
<el-form-item>
<span class="addinputInfo">{{formobj.remarks}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<div class="span-sty">库存上限</div>
<el-form-item>
<span class="addinputInfo">{{formobj.externalCode}}</span>
</el-form-item>
</el-col>
<el-col :span="18">
<div class="span-sty">库存下限</div>
<el-form-item>
<span class="addinputInfo">{{formobj.nationalStandardCode}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="span-sty">锁定销售定价</div>
<el-form-item>
<el-radio-group v-model="itemInfo.isLockingSalesPrice" :disabled="true" size="small" class="addinputw">
<el-radio :label="'1'"></el-radio>
<el-radio :label="'2'"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">销售底价</div>
<el-form-item>
<span class="addinputInfo">{{formobj.nationalStandardCode}}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">三包价格</div>
<el-form-item>
<span class="addinputInfo">{{formobj.externalCode}}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="span-sty">首保价格</div>
<el-form-item>
<span class="addinputInfo">{{formobj.nationalStandardCode}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">规格图片</div>
<el-form-item>
<template slot-scope="scope">
<span v-for="(item,index) in itemInfo.urls" :key="index" class="addinputInfo">
<el-popover placement="left" trigger="click" width="300">
<img :src="item.url" width="100%" />
<img slot="reference" :src="item.url" :alt="item.url"
style="max-height: 70px;max-width: 70px; padding: 5px" />
</el-popover>
</span>
</template>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</template>
<script>
import req from '@/api/goods/goods.js'
export default {
data() {
return {
listLoading: false,
activeNames: ['1'],
imgList: [],
submitdisabled: false,
formobj: {
sid: '',
goodsName: "",
goodsCode: "",
brandSid: "",
brand: "",
goodsTypeSid: "",
typeName: "",
manufacturersid: "",
manufacturer: "",
externalCode: '',
factoryCode: '',
taxRate: '',
shelfLife: '',
baseGoodsSpuDetail: {
goodsExplain: "",
goodsDescription: ""
},
baseGoodsSkuDtos: []
},
hideUploadBtn: false,
dialogVisible: false,
dialogVisible2: false,
itemInfo: {},
orderInfo: {}
}
},
created() {},
methods: {
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.imgList = []
this.hideUploadBtn = true
this.formobj = {
sid: '',
brand: "",
brandSid: "",
typeName: "",
goodsTypeSid: "",
manufacturer: "",
manufacturerSid: "",
goodsName: '',
goodsCode: '',
barcode: '',
producer: '',
unit: '',
specification: '',
remarks: '',
baseGoodsSpuDetail: {
goodsExplain: "",
goodsDescription: ""
},
baseGoodsSku: []
}
this.$emit('doback')
},
showAdd() {},
indexMethod(index) {
return index + 1
},
showEdit(row) {
req.initGoods(row.sid)
.then(resp => {
if (resp.success) {
this.formobj = resp.data
}
})
.catch(e => {
this.formobj = row
})
},
showGoodsSkuDttail(goodsSkuDto) {
console.log('>>>>>>>>>showGoodsSkuDttail', goodsSkuDto)
this.dialogVisible = true
this.itemInfo = goodsSkuDto
},
handleClose() {
this.dialogVisible = false
},
handleClose2() {
this.dialogVisible2 = false
},
}
}
</script>
<style scoped>
.span-sty {
width: 130px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 120px !important;
width: calc(100% - 115px);
}
.first_row {
border-top: 1px solid #E0E3EB;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
</style>

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

@ -9,9 +9,37 @@
</el-button> </el-button>
<div v-show="isSearchShow" class="search"> <div v-show="isSearchShow" class="search">
<el-form :inline="true" class="tab-header"> <el-form :inline="true" class="tab-header">
<el-form-item label="分公司">
<el-input v-model="queryParams.params.name" placeholder="" clearable />
</el-form-item>
<el-form-item label="部门">
<el-input v-model="queryParams.params.name" placeholder="" clearable />
</el-form-item>
<el-form-item label="商品名称"> <el-form-item label="商品名称">
<el-input v-model="queryParams.params.name" placeholder="" clearable /> <el-input v-model="queryParams.params.name" placeholder="" clearable />
</el-form-item> </el-form-item>
<el-form-item label="商品编码">
<el-input v-model="queryParams.params.name" placeholder="" clearable />
</el-form-item>
<el-form-item label="拼音缩写">
<el-input v-model="queryParams.params.name" placeholder="" clearable />
</el-form-item>
<el-form-item label="商品类别">
<el-select v-model="queryParams.params.goodsTypeSid" placeholder="请选择" class="addinputw addinputInfo">
<el-option v-for="item in goodsTypeList" :key="item.sid" :label="item.name" :value="item.sid" />
</el-select>
</el-form-item>
<el-form-item label="品牌">
<el-select v-model="queryParams.params.brandSid" placeholder="请选择" class="addinputw addinputInfo">
<el-option v-for="item in brandList" :key="item.sid" :label="item.name" :value="item.sid" />
</el-select>
</el-form-item>
<el-form-item label="厂家">
<el-select v-model="queryParams.params.facturerSid" placeholder="请选择" class="addinputw addinputInfo">
<el-option v-for="item in facturerList" :key="item.sid" :label="item.name" :value="item.sid" />
</el-select>
</el-form-item>
</el-form> </el-form>
<div class="btn" style="text-align: center;"> <div class="btn" style="text-align: center;">
@ -29,29 +57,43 @@
<div class=""> <div class="">
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%" <el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"
@selection-change="selectionLineChangeHandle"> @selection-change="selectionLineChangeHandle">
<el-table-column width="50" type="selection" align="center" /> <el-table-column fixed width="50" type="selection" align="center" />
<el-table-column width="60" label="序号" type="index" :index="indexMethod" align="center" /> <el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column label="操作" align="center" width="80"> <el-table-column fixed label="操作" align="center" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="mini" @click="toRelevancy(scope.row)">详情</el-button> <el-button type="primary" size="mini" @click="toRelevancy(scope.row)">详情</el-button>
<!-- <el-button type="primary" size="mini" @click="toRelevancyInfo(scope.row)">删除</el-button> --> <!-- <el-button type="primary" size="mini" @click="toRelevancyInfo(scope.row)">删除</el-button> -->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="是否可用" align="center" width="140"> <!-- <el-table-column label="是否可用" align="center" width="140">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch v-model="scope.row.isEnable" active-text="" inactive-text="" active-value="1" <el-switch v-model="scope.row.isEnable" active-text="" inactive-text="" active-value="1"
inactive-value="2" @change="enableChange(scope.row.sid,scope.row.isEnable)" /> inactive-value="2" @change="enableChange(scope.row.sid,scope.row.isEnable)" />
</template> </template>
</el-table-column> -->
<el-table-column fixed prop="goodsName" label="商品名称" width="120" align="center" />
<el-table-column prop="goodsCode" label="商品编码" width="120" align="center" />
<el-table-column prop="goodsCode" label="拼音缩写" width="100" align="center" />
<el-table-column prop="barCode" label="商品条码" width="100" align="center" />
<el-table-column prop="barCode" label="计量单位" width="100" align="center" />
<el-table-column prop="typeName" label="商品类别" width="100" align="center" />
<el-table-column prop="typeName" label="规格" width="100" align="center" />
<el-table-column prop="typeName" label="保质期(天)" width="100" align="center" />
<el-table-column prop="goodsUnitName" label="品牌" width="100" align="center" />
<el-table-column prop="manufacturerName" label="厂家" width="120" align="center" />
<el-table-column prop="nationalStandardCode" label="原厂标志" width="100" align="center" />
<el-table-column prop="taxRate" label="库存上限" width="100" align="center" />
<el-table-column prop="taxRate" label="库存下限" width="100" align="center" />
<el-table-column prop="taxRate" label="锁定销售价" width="100" align="center" />
<el-table-column prop="taxRate" label="销售底价" width="100" align="center" />
<el-table-column prop="taxRate" label="三包价格" width="100" align="center" />
<el-table-column prop="taxRate" label="首保价格" width="100" align="center" />
<el-table-column label="商品图片" align="center" width="100">
<template slot-scope="scope">
<div style="color: #1890FF; text-decoration: underline ;" @click="showImage(scope.row.filePaths)">查看
</div>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="goodsName" label="商品名称" align="center" />
<el-table-column prop="goodsCode" label="商品编码" align="center" />
<el-table-column prop="barCode" label="商品条码" align="center" />
<el-table-column prop="brandName" label="商品品牌" align="center" />
<el-table-column prop="typeName" label="商品类别" align="center" />
<el-table-column prop="goodsUnitName" label="商品单位" align="center" />
<el-table-column prop="manufacturerName" label="商品厂家" align="center" />
<el-table-column prop="nationalStandardCode" label="国标码" align="center" />
<el-table-column prop="taxRate" label="税率" align="center" />
</el-table> </el-table>
</div> </div>
<!-- End 项目列表 --> <!-- End 项目列表 -->
@ -67,18 +109,21 @@
<!-- 新增修改部分组件 --> <!-- 新增修改部分组件 -->
<divAdd v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="loadList" /> <divAdd v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="loadList" />
<!-- 详情部分组件 --> <!-- 详情部分组件 -->
<divInfo v-show="viewState == 4" ref="divinfo" @doback="resetState" @reloadlist="loadList"/> <divInfo v-show="viewState == 4" ref="divinfo" @doback="resetState" @reloadlist="loadList" />
</div> </div>
</template> </template>
<script> <script>
import req from '@/api/goods/goods.js' import req from '@/api/goods/goods.js'
import req2 from '@/api/goods/brands.js'
import req3 from '@/api/goods/category.js'
import req4 from '@/api/goods/factory.js'
import ButtonBar from '@/components/ButtonBar' import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination' import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye' import pageye from '@/components/pagination/pageye'
import divAdd from './goodsAdd.vue' import divAdd from './goodsAdd2.vue'
import divInfo from './goodsInfo.vue' import divInfo from './goodsInfo2.vue'
export default { export default {
components: { components: {
ButtonBar, ButtonBar,
@ -110,6 +155,13 @@
btnKey: 'toEdit', btnKey: 'toEdit',
btnLabel: '编辑' btnLabel: '编辑'
}, },
{
type: 'danger',
size: 'small',
icon: 'plus',
btnKey: 'doDel',
btnLabel: '删除'
},
{ {
type: 'info', type: 'info',
size: 'small', size: 'small',
@ -127,7 +179,10 @@
} }
}, },
sids: [], sids: [],
selectionList: [] selectionList: [],
brandList: [],
goodsTypeList: [],
facturerList: []
} }
}, },
mounted() { mounted() {
@ -135,8 +190,29 @@
}, },
created() { created() {
this.loadList() this.loadList()
this.initData()
}, },
methods: { methods: {
initData() {
//
req2.getAllBrand().then(resp => {
console.log('>>>>>>>>>getAllBrand', resp)
this.brandList = resp.data
}).catch(() => {})
//
req3.getAllType().then(resp => {
console.log('>>>>>>>>>getAllType', resp)
this.goodsTypeList = resp.data
}).catch(() => {})
//
req4.getAllFacturer().then(resp => {
console.log('>>>>>>>>>getAllFacturer', resp)
this.facturerList = resp.data
}).catch(() => {})
},
// //
clicksearchShow() { clicksearchShow() {
this.isSearchShow = !this.isSearchShow this.isSearchShow = !this.isSearchShow
@ -154,6 +230,9 @@
case 'toEdit': case 'toEdit':
this.toEdit() this.toEdit()
break break
case 'doDel':
this.doDel()
break
case 'doClose': case 'doClose':
this.doClose() this.doClose()
break break
@ -212,7 +291,7 @@
}, },
toEdit() { toEdit() {
if(this.selectionList.length!=1){ if (this.selectionList.length != 1) {
this.$message({ this.$message({
type: 'warning', type: 'warning',
message: "请选择一条数据。", message: "请选择一条数据。",
@ -233,35 +312,43 @@
this.viewState = 4 this.viewState = 4
this.$refs['divinfo'].showEdit(row) this.$refs['divinfo'].showEdit(row)
}, },
toRelevancyInfo(row) { doDel() {
const tip = '请确认是否删除所选品牌?'
this.$confirm(tip, '提示', { if (this.sids.length > 0) {
confirmButtonText: '确定', const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
cancelButtonText: '取消', this.$confirm(tip, '提示', {
type: 'warning' confirmButtonText: '确定',
}).then(() => { cancelButtonText: '取消',
const loading = this.$loading({ type: 'warning'
lock: true, }).then(() => {
text: 'Loading', const loading = this.$loading({
spinner: 'el-icon-loading', lock: true,
background: 'rgba(0, 0, 0, 0.7)' text: 'Loading',
}) spinner: 'el-icon-loading',
req.deleteGoods(row.sid).then((resp) => { background: 'rgba(0, 0, 0, 0.7)'
loading.close() })
if (resp.success) { req.deleteBySids(this.sids).then((resp) => {
this.$message({ loading.close()
type: 'success', if (resp.success) {
message: resp.msg, this.$message({
showClose: true type: 'success',
}) message: resp.msg,
this.loadList() showClose: true
} else { })
// resp.code this.loadList()
} } else {
}).catch(e => { // resp.code
loading.close() }
}).catch(e => {
loading.close()
})
}).catch(() => {})
} else {
this.$message({
showClose: true,
message: '请至少选择一条记录进行删除操作'
}) })
}).catch(() => {}) }
}, },
resetState() { resetState() {
this.viewState = 1 this.viewState = 1

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

@ -1,7 +1,7 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<div v-show="viewState == 1"> <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="main-content">
<div class="searchcon"> <div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow"> <el-button size="small" class="searchbtn" @click="clicksearchShow">
@ -9,7 +9,7 @@
</el-button> </el-button>
<div v-show="isSearchShow" class="search"> <div v-show="isSearchShow" class="search">
<el-form :inline="true" class="tab-header"> <el-form :inline="true" class="tab-header">
<el-form-item label="单位名称"> <el-form-item label="计量单位名称">
<el-input v-model="queryParams.params.name" placeholder="" clearable /> <el-input v-model="queryParams.params.name" placeholder="" clearable />
</el-form-item> </el-form-item>
@ -22,15 +22,15 @@
</div> </div>
<!-- Start 项目列表头部 --> <!-- Start 项目列表头部 -->
<div class="listtop"> <div class="listtop">
<div class="tit">单位列表</div> <div class="tit">计量单位列表</div>
</div> </div>
<!-- End 项目列表头部 --> <!-- End 项目列表头部 -->
<!-- Start 项目列表 --> <!-- Start 项目列表 -->
<div class=""> <div class="">
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"> <el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"
<!-- <el-table-column fixed width="50" type="selection" align="center" /> --> @selection-change="selectionLineChangeHandle">
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" /> <el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column label="操作" align="center" width="180"> <el-table-column label="操作" align="center" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="mini" @click="toRelevancy(scope.row)">编辑</el-button> <el-button type="primary" size="mini" @click="toRelevancy(scope.row)">编辑</el-button>
<!-- <el-button type="primary" size="mini" @click="toRelevancyInfo(scope.row)">删除</el-button> --> <!-- <el-button type="primary" size="mini" @click="toRelevancyInfo(scope.row)">删除</el-button> -->
@ -42,8 +42,8 @@
inactive-value="2" @change="enableChange(scope.row.sid,scope.row.isEnable)" /> inactive-value="2" @change="enableChange(scope.row.sid,scope.row.isEnable)" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="unitName" label="单位名称" align="center" /> <el-table-column prop="unitName" label="计量单位名称" align="center" />
<el-table-column prop="remarks" label="单位备注" align="center" /> <el-table-column prop="remarks" label="计量单位备注" align="center" />
</el-table> </el-table>
</div> </div>
@ -90,6 +90,13 @@
btnKey: 'toAdd', btnKey: 'toAdd',
btnLabel: '新增' btnLabel: '新增'
}, },
{
type: 'danger',
size: 'small',
icon: 'plus',
btnKey: 'doDel',
btnLabel: '删除'
},
{ {
type: 'info', type: 'info',
size: 'small', size: 'small',
@ -106,7 +113,8 @@
name: '' name: ''
} }
}, },
sids: [] sids: [],
selectionList: []
} }
}, },
mounted() { mounted() {
@ -116,6 +124,17 @@
this.loadList() this.loadList()
}, },
methods: { methods: {
selectionLineChangeHandle(val) {
console.log("val", val);
this.selectionList = val
const aa = []
val.forEach(element => {
aa.push(element.sid)
})
this.sids = aa
},
// //
clicksearchShow() { clicksearchShow() {
this.isSearchShow = !this.isSearchShow this.isSearchShow = !this.isSearchShow
@ -130,6 +149,9 @@
case 'toAdd': case 'toAdd':
this.toAdd() this.toAdd()
break break
case 'doDel':
this.doDel()
break
case 'doClose': case 'doClose':
this.doClose() this.doClose()
break break
@ -189,35 +211,43 @@
this.viewState = 3 this.viewState = 3
this.$refs['divadd'].showEdit(row) this.$refs['divadd'].showEdit(row)
}, },
toRelevancyInfo(row) { doDel() {
const tip = '请确认是否删除所选品牌?'
this.$confirm(tip, '提示', { if (this.sids.length > 0) {
confirmButtonText: '确定', const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
cancelButtonText: '取消', this.$confirm(tip, '提示', {
type: 'warning' confirmButtonText: '确定',
}).then(() => { cancelButtonText: '取消',
const loading = this.$loading({ type: 'warning'
lock: true, }).then(() => {
text: 'Loading', const loading = this.$loading({
spinner: 'el-icon-loading', lock: true,
background: 'rgba(0, 0, 0, 0.7)' text: 'Loading',
}) spinner: 'el-icon-loading',
req.deleteGoods(row.sid).then((resp) => { background: 'rgba(0, 0, 0, 0.7)'
loading.close() })
if (resp.success) { req.deleteBySids(this.sids).then((resp) => {
this.$message({ loading.close()
type: 'success', if (resp.success) {
message: resp.msg, this.$message({
showClose: true type: 'success',
}) message: resp.msg,
this.loadList() showClose: true
} else { })
// resp.code this.loadList()
} } else {
}).catch(e => { // resp.code
loading.close() }
}).catch(e => {
loading.close()
})
}).catch(() => {})
} else {
this.$message({
showClose: true,
message: '请至少选择一条记录进行删除操作'
}) })
}).catch(() => {}) }
}, },
resetState() { resetState() {
this.viewState = 1 this.viewState = 1

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

@ -3,7 +3,7 @@
<div class="tab-header webtop"> <div class="tab-header webtop">
<!-- 标题 --> <!-- 标题 -->
<div>单位信息</div> <div>计量单位信息</div>
<!-- start 添加修改按钮 --> <!-- start 添加修改按钮 -->
<div> <div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate">保存</el-button> <el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate">保存</el-button>
@ -17,11 +17,11 @@
<el-card class="box-card"> <el-card class="box-card">
<div class="item"> <div class="item">
<span class="item_text">单位名称</span> <span class="item_text">计量单位名称</span>
<el-input v-model="formobj.unitName" placeholder="" class="item_input" clearable /> <el-input v-model="formobj.unitName" placeholder="" class="item_input" clearable />
</div> </div>
<div class="item"> <div class="item">
<span class="item_text">单位备注</span> <span class="item_text">计量单位备注</span>
<el-input v-model="formobj.remarks" placeholder="" class="item_input" clearable /> <el-input v-model="formobj.remarks" placeholder="" class="item_input" clearable />
</div> </div>
<!-- <div class="item"> <!-- <div class="item">
@ -69,7 +69,9 @@
sid: '', sid: '',
unitName: '', unitName: '',
remarks: '', remarks: '',
useOrgSid: window.sessionStorage.getItem('departmentSid'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
}, },
} }
}, },
@ -101,6 +103,9 @@
sid: '', sid: '',
unitName: '', unitName: '',
remarks: '', remarks: '',
useOrgSid: window.sessionStorage.getItem('departmentSid'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
} }
this.$emit('doback') this.$emit('doback')
}, },

6
yxt-as-ui/src/views/storage/deliveryNotice/index.vue

@ -20,7 +20,7 @@
placeholder="选择日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;"> placeholder="选择日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="外部号"> <el-form-item label="外部号">
<el-input v-model="queryParams.params.sourceBillNo" placeholder="" clearable /> <el-input v-model="queryParams.params.sourceBillNo" placeholder="" clearable />
</el-form-item> </el-form-item>
<el-form-item label="业务类型"> <el-form-item label="业务类型">
@ -32,7 +32,7 @@
<el-form-item label="供应商"> <el-form-item label="供应商">
<el-input v-model="queryParams.params.supplierName" placeholder="" clearable /> <el-input v-model="queryParams.params.supplierName" placeholder="" clearable />
</el-form-item> </el-form-item>
<el-form-item label="预到货日期"> <el-form-item label="预到货日期">
<el-date-picker v-model="queryParams.params.deliveryDateStart"type="date" <el-date-picker v-model="queryParams.params.deliveryDateStart"type="date"
placeholder="选择日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;"> placeholder="选择日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;">
</el-date-picker> </el-date-picker>
@ -83,7 +83,7 @@
<el-table-column prop="busTypeValue" label="业务类型" align="center" width="150"/> <el-table-column prop="busTypeValue" label="业务类型" align="center" width="150"/>
<el-table-column prop="supplierName" label="供应商" align="center" width="150"/> <el-table-column prop="supplierName" label="供应商" align="center" width="150"/>
<el-table-column prop="contact" label="联系人" align="center" width="150"/> <el-table-column prop="contact" label="联系人" align="center" width="150"/>
<el-table-column prop="mobile" label="联系人手机" align="center" width="150"/> <el-table-column prop="mobile" label="联系人电话" align="center" width="150"/>
<el-table-column prop="deliveryDate" label="预计到货日期" align="center" width="150"/> <el-table-column prop="deliveryDate" label="预计到货日期" align="center" width="150"/>
<el-table-column prop="billState" label="单据状态" align="center" width="150" /> <el-table-column prop="billState" label="单据状态" align="center" width="150" />
<el-table-column prop="reviewStatus" label="审核状态" align="center" width="150"/> <el-table-column prop="reviewStatus" label="审核状态" align="center" width="150"/>

84
yxt-as-ui/src/views/storage/deliveryNotice/receiptAdd.vue

@ -21,46 +21,48 @@
<div>基础信息</div> <div>基础信息</div>
</div> </div>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="8">
<div class="span-sty">单据编号</div> <div class="span-sty">单据编号</div>
<el-form-item><span class="addinputInfo">{{ formobj.billNo }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.billNo }}</span></el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<div class="span-sty">制单人姓名</div> <div class="span-sty">制单人</div>
<el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item>
</el-col> </el-col>
</el-row> <el-col :span="8">
<el-row>
<el-col :span="12">
<div class="span-sty">外部单号</div>
<el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">单据日期</div> <div class="span-sty">单据日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="8">
<div class="span-sty">来源单号</div>
<el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">业务类型</div> <div class="span-sty">业务类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.busTypeValue }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.busTypeValue }}</span></el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<div class="span-sty">供应商</div> <div class="span-sty">供应商</div>
<el-select v-model="scope.row.supplierName" placeholder="请选择" clearable @change="selectSupplierName">
<el-option v-for="(item,i) in supplierNameList" :key="i" :label="item.warehouseName" :value="item.sid">
</el-option>
</el-select>
<el-form-item><span class="addinputInfo">{{ formobj.supplierName }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.supplierName }}</span></el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="8">
<div class="span-sty">到货日期</div> <div class="span-sty">到货日期</div>
<el-form-item> <el-date-picker v-model="formobj.deliveryDate" type="date" class="addinputInfo" <el-form-item> <el-date-picker v-model="formobj.deliveryDate" type="date" class="addinputInfo"
value-format="yyyy-MM-dd" placeholder="选择日期"> value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker></el-form-item> </el-date-picker></el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="16">
<div class="span-sty">单据状态</div> <div class="span-sty">单据状态</div>
<el-form-item><span class="addinputInfo">{{ formobj.billState }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.billState }}</span></el-form-item>
</el-col> </el-col>
@ -76,7 +78,7 @@
<div class="title titleOne"> <div class="title titleOne">
<div>商品列表</div> <div>商品列表</div>
<el-button type="primary" size="mini" class="btntopblueline" @click="batchAddAll()">批次收货</el-button> <!-- <el-button type="primary" size="mini" class="btntopblueline" @click="batchAddAll()">批次收货</el-button> -->
</div> </div>
<el-table v-loading="listLoading" :data="formobj.list" border style="width: 100%;"> <el-table v-loading="listLoading" :data="formobj.list" border style="width: 100%;">
<el-table-column fixed width="50" type="selection" align="center" /> <el-table-column fixed width="50" type="selection" align="center" />
@ -84,14 +86,14 @@
<el-table-column fixed label="操作" wid align="center" width="180"> <el-table-column fixed label="操作" wid align="center" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="mini" @click="doGoods(scope.row)">删除</el-button> <el-button type="primary" size="mini" @click="doGoods(scope.row)">删除</el-button>
<el-button type="primary" size="mini" @click="doAddBatch(scope.row)">批次+</el-button> <!-- <el-button type="primary" size="mini" @click="doAddBatch(scope.row)">批次+</el-button> -->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="商品名称" prop="goodsSkuTitle" align="center" width="200" /> <el-table-column label="商品名称" prop="goodsSkuTitle" align="center" width="200" />
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" width="150" /> <el-table-column label="商品编码" prop="goodsSkuCode" align="center" width="150" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" width="150" /> <el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" width="150" />
<el-table-column label="单位" prop="unit" align="center" width="120" /> <el-table-column label="单位" prop="unit" align="center" width="120" />
<el-table-column label="仓库" align="center" width="180"> <!-- <el-table-column label="仓库" align="center" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<el-select v-model="scope.row.warehouseName" placeholder="请选择" clearable <el-select v-model="scope.row.warehouseName" placeholder="请选择" clearable
@change="selectWarehouseName(scope.row,$event)"> @change="selectWarehouseName(scope.row,$event)">
@ -109,7 +111,7 @@
</el-option> </el-option>
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column> -->
<el-table-column label="预约数量" prop="orderCount" align="center" width="120" /> <el-table-column label="预约数量" prop="orderCount" align="center" width="120" />
<el-table-column label="实收数量" align="center" width="120"> <el-table-column label="实收数量" align="center" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
@ -151,14 +153,14 @@
<el-input ref="focusAssumptionInput" v-model="scope.row.packageRemark" clearable placeholder="" /> <el-input ref="focusAssumptionInput" v-model="scope.row.packageRemark" clearable placeholder="" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="入库价" prop="cost" align="center" width="100" /> <el-table-column label="入库价" prop="cost" align="center" width="100" />
<el-table-column label="税" prop="taxAmount" align="center" width="100" /> <el-table-column label="税" prop="taxAmount" align="center" width="100" />
<el-table-column label="含税单价" prop="taxPrice" align="center" width="100" /> <!-- <el-table-column label="含税单价" prop="taxPrice" align="center" width="100" /> -->
<el-table-column label="入库金额" prop="amount" align="center" width="100" /> <el-table-column label="入库金额" prop="amount" align="center" width="100" />
</el-table> </el-table>
<div class="title"> <!-- <div class="title">
<div>商品-批次</div> <div>商品-批次</div>
</div> </div>
<el-table v-loading="listLoading" :data="formobj.pcList" border style="width: 100%;"> <el-table v-loading="listLoading" :data="formobj.pcList" border style="width: 100%;">
@ -178,8 +180,8 @@
<el-table-column label="批次号" prop="batchNumber" align="center" width="300" /> <el-table-column label="批次号" prop="batchNumber" align="center" width="300" />
<el-table-column label="生产日期" align="center" width="180"> <el-table-column label="生产日期" align="center" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<el-date-picker v-model="scope.row.manufactureDate" type="date" <el-date-picker v-model="scope.row.manufactureDate" type="date" value-format="yyyy-MM-dd"
value-format="yyyy-MM-dd" placeholder="选择日期" @change="manufactureDateChange(scope.row,$event)" /> placeholder="选择日期" @change="manufactureDateChange(scope.row,$event)" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="有效期" prop="expirationDate" align="center" width="180" /> <el-table-column label="有效期" prop="expirationDate" align="center" width="180" />
@ -189,7 +191,7 @@
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" /> oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table> -->
</el-form> </el-form>
@ -228,12 +230,34 @@
}, },
hideUploadBtn: false, hideUploadBtn: false,
warehouseList: [], warehouseList: [],
warehouseRackList: [] warehouseRackList: [],
supplierNameList: []
} }
}, },
created() {}, created() {},
methods: { methods: {
supplierNameSelect(val) {
console.log("supplierNameSelect", val);
const choose = this.supplierNameList.filter((item) => item.sid == val)
console.log('>>>>>>>>>supplierNameSelect', choose)
this.formobj.supplierName = choose[0].supplierName
this.formobj.supplierSid = choose[0].sid
},
getsupplierLust() {
var params = {
createOrgSid: window.sessionStorage.getItem('orgSid'),
}
req.choiceSupplier(params).then((res) => {
if (res.success) {
this.supplierNameList = res.data
console.log("aaaaaa", this.supplierNameList);
}
})
},
getWarehouseList() { getWarehouseList() {
req2.getWarehouses().then((res) => { req2.getWarehouses().then((res) => {
if (res.success) { if (res.success) {
@ -624,8 +648,9 @@
}, },
showEdit(row) { showEdit(row) {
this.getWarehouseList() this.getWarehouseList()
this.getsupplierLust()
var params = { var params = {
sid: row.sid sourceSid: row.sid
} }
req.getInitDetails(params) req.getInitDetails(params)
@ -654,6 +679,7 @@
margin-left: 120px !important; margin-left: 120px !important;
width: calc(100% - 115px); width: calc(100% - 115px);
} }
.titleOne { .titleOne {
padding: 7px; padding: 7px;
display: flex; display: flex;

54
yxt-as-ui/src/views/storage/deliveryNotice/receiptInfo.vue

@ -20,37 +20,31 @@
</div> </div>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="8">
<div class="span-sty">单据编号</div> <div class="span-sty">单据编号</div>
<el-form-item><span class="addinputInfo">{{ formobj.billNo }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.billNo }}</span></el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<div class="span-sty">制单人姓名</div> <div class="span-sty">制单人</div>
<el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item>
</el-col> </el-col>
<el-col :span="8">
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">外部单号</div>
<el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">单据日期</div> <div class="span-sty">单据日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="8">
<div class="span-sty">外部单号</div>
<el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">业务类型</div> <div class="span-sty">业务类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.busTypeValue }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.busTypeValue }}</span></el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<div class="span-sty">供应商</div> <div class="span-sty">供应商</div>
<el-form-item><span class="addinputInfo">{{ formobj.supplierName }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.supplierName }}</span></el-form-item>
</el-col> </el-col>
@ -59,24 +53,23 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="8">
<div class="span-sty">到货日期</div> <div class="span-sty">预期到货日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.deliveryDate }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.deliveryDate }}</span></el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<div class="span-sty">单据状态</div> <div class="span-sty">单据状态</div>
<el-form-item><span class="addinputInfo">{{ formobj.billState }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.billState }}</span></el-form-item>
</el-col> </el-col>
<el-col :span="8">
<div class="span-sty">审核状态</div>
<el-form-item><span class="addinputInfo">{{ formobj.reviewStatus }}</span></el-form-item>
</el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="24">
<div class="span-sty">审核状态</div>
<el-form-item><span class="addinputInfo">{{ formobj.reviewStatus }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">拒绝原因</div> <div class="span-sty">拒绝原因</div>
<el-form-item><span class="addinputInfo">{{ formobj.refuseReason }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.refuseReason }}</span></el-form-item>
</el-col> </el-col>
@ -92,14 +85,14 @@
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" width="150" /> <el-table-column label="商品编码" prop="goodsSkuCode" align="center" width="150" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" width="150" /> <el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" width="150" />
<el-table-column label="单位" prop="unit" align="center" width="120" /> <el-table-column label="单位" prop="unit" align="center" width="120" />
<el-table-column label="仓库" prop="warehouseName" align="center" width="120" /> <!-- <el-table-column label="仓库" prop="warehouseName" align="center" width="120" />
<el-table-column label="库位" prop="warehouseRack" align="center" width="120" /> <el-table-column label="库位" prop="warehouseRack" align="center" width="120" /> -->
<el-table-column label="预约数量" prop="orderCount" align="center" width="120" /> <el-table-column label="预约数量" prop="orderCount" align="center" width="120" />
<el-table-column label="待收货数量" prop="waitInCount" align="center" width="120" /> <el-table-column label="待收货数量" prop="waitInCount" align="center" width="120" />
<el-table-column label="已收货数量" prop="actualInCount" align="center" width="100" /> <el-table-column label="已收货数量" prop="actualInCount" align="center" width="100" />
<el-table-column label="入库价" prop="cost" align="center" width="100" /> <el-table-column label="入库价" prop="cost" align="center" width="100" />
<el-table-column label="税" prop="taxAmount" align="center" width="100" /> <el-table-column label="税" prop="taxAmount" align="center" width="100" />
<el-table-column label="含税单价" prop="taxPrice" align="center" width="100" /> <!-- <el-table-column label="含税单价" prop="taxPrice" align="center" width="100" /> -->
<el-table-column label="采购金额" prop="amount" align="center" width="100" /> <el-table-column label="采购金额" prop="amount" align="center" width="100" />
</el-table> </el-table>
@ -167,6 +160,7 @@
margin-left: 120px !important; margin-left: 120px !important;
width: calc(100% - 115px); width: calc(100% - 115px);
} }
.titleOne { .titleOne {
padding: 7px; padding: 7px;
display: flex; display: flex;

18
yxt-as-ui/src/views/storage/receivingGoods/receivingGoodsAdd.vue

@ -93,7 +93,7 @@
<div class="title titleOne"> <div class="title titleOne">
<div>商品列表</div> <div>商品列表</div>
<el-button type="primary" size="mini" class="btntopblueline" @click="batchAddAll()">批次收货</el-button> <!-- <el-button type="primary" size="mini" class="btntopblueline" @click="batchAddAll()">批次收货</el-button> -->
</div> </div>
<el-table v-loading="listLoading" :data="formobj.list" border style="width: 100%;" ref="dataTable"> <el-table v-loading="listLoading" :data="formobj.list" border style="width: 100%;" ref="dataTable">
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" /> <el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
@ -105,7 +105,7 @@
</template> </template>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="mini" @click="doGoods(scope.row)">删除</el-button> <el-button type="primary" size="mini" @click="doGoods(scope.row)">删除</el-button>
<el-button type="primary" size="mini" @click="doAddBatch(scope.row)">批次+</el-button> <!-- <el-button type="primary" size="mini" @click="doAddBatch(scope.row)">批次+</el-button> -->
<!-- <i v-if="!isUpdata" class="el-icon-delete" @click="commodityDelete(scope.$index)"></i> --> <!-- <i v-if="!isUpdata" class="el-icon-delete" @click="commodityDelete(scope.$index)"></i> -->
</template> </template>
</el-table-column> </el-table-column>
@ -136,7 +136,7 @@
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" width="150" /> <el-table-column label="商品编码" prop="goodsSkuCode" align="center" width="150" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" width="150" /> <el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" width="150" />
<el-table-column label="单位" prop="unit" align="center" width="120" /> <el-table-column label="单位" prop="unit" align="center" width="120" />
<el-table-column label="仓库" align="center" width="180"> <!-- <el-table-column label="仓库" align="center" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<el-select v-model="scope.row.warehouseName" placeholder="请选择" clearable <el-select v-model="scope.row.warehouseName" placeholder="请选择" clearable
@change="selectWarehouseName(scope.row,$event)"> @change="selectWarehouseName(scope.row,$event)">
@ -154,7 +154,7 @@
</el-option> </el-option>
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column> -->
<el-table-column label="预约数量" prop="orderCount" align="center" width="120" v-if="isUpdata" /> <el-table-column label="预约数量" prop="orderCount" align="center" width="120" v-if="isUpdata" />
<el-table-column label="实收数量" align="center" width="120"> <el-table-column label="实收数量" align="center" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
@ -216,7 +216,7 @@
</el-table> </el-table>
<div class="title" <!-- <div class="title"
style="display: flex;align-items: center;justify-content: space-between;height:40px;margin-top: 10px;"> style="display: flex;align-items: center;justify-content: space-between;height:40px;margin-top: 10px;">
<div>商品-批次</div> <div>商品-批次</div>
</div> </div>
@ -249,7 +249,7 @@
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" /> oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table> -->
</el-form> </el-form>
@ -809,9 +809,9 @@
}, },
getsupplierLust() { getsupplierLust() {
var params = { var params = {
createOrgSid: "" createOrgSid: window.sessionStorage.getItem('orgSid'),
} }
req.choiceSupplier(params).then((res) => { req.choiceSupplier(params).then((res) => {
if (res.success) { if (res.success) {
this.supplierList = res.data this.supplierList = res.data

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

@ -69,6 +69,9 @@
locationName: '', locationName: '',
locationSid: '', locationSid: '',
remarks: '', remarks: '',
useOrgSid: window.sessionStorage.getItem('departmentSid'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
}, },
warehouseList: [], warehouseList: [],
@ -79,16 +82,38 @@
this.initData() this.initData()
}, },
methods: { methods: {
initData() { initData() {
req2.getAllWarehouse().then(resp => { req2.getAllWarehouse().then(resp => {
this.warehouseList = resp.data this.warehouseList = resp.data
}) })
},
req3.getAllWarehousearea().then(resp => { getWarehouseArea(sid) {
this.formobj.locationSid = ''
this.formobj.locationName = ''
req3.getAllWarehouseareaBysid(sid).then(resp => {
console.log('>>>>>>>>>getAllWarehousearea', resp)
this.warehouseAreaList = resp.data this.warehouseAreaList = resp.data
}) }).catch(() => {})
},
selectWarehouseChange(val) {
const choose = this.warehouseList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectWarehouseChange', choose)
this.formobj.warehouseSid = choose[0].sid
this.formobj.warehouseName = choose[0].warehouseName
this.getWarehouseArea(choose[0].sid)
},
selectWarehouseAreaChange(val) {
const choose = this.warehouseAreaList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectWarehouseAreaChange', choose)
this.formobj.locationSid = choose[0].sid
this.formobj.locationName = choose[0].areaName
}, },
saveOrUpdate() { saveOrUpdate() {
@ -111,19 +136,21 @@
handleReturn(isreload) { handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist') if (isreload === 'true') this.$emit('reloadlist')
this.formobj = { this.formobj = {
sid: '', sid: '',
rackName: '', rackName: '',
rackCode: '', rackCode: '',
warehouseName: '', warehouseName: '',
warehouseSid: '', warehouseSid: '',
locationName: '', locationName: '',
locationSid: '', locationSid: '',
remarks: '', remarks: '',
useOrgSid: window.sessionStorage.getItem('departmentSid'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
} }
this.$emit('doback') this.$emit('doback')
}, },
showAdd() { showAdd() {},
},
showEdit(row) { showEdit(row) {
req.initGoodsShelves(row.sid) req.initGoodsShelves(row.sid)
.then(resp => { .then(resp => {
@ -135,18 +162,7 @@
this.formobj = row this.formobj = row
}) })
}, },
selectWarehouseChange(val) {
const choose = this.warehouseList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectWarehouseChange', choose)
this.formobj.warehouseSid = choose[0].sid
this.formobj.warehouseName = choose[0].warehouseName
},
selectWarehouseAreaChange(val) {
const choose = this.warehouseAreaList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectWarehouseAreaChange', choose)
this.formobj.locationSid = choose[0].sid
this.formobj.locationName = choose[0].areaName
},
} }
} }
</script> </script>

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

@ -12,21 +12,28 @@
<el-form-item label="库位名称"> <el-form-item label="库位名称">
<el-input v-model="queryParams.params.name" placeholder="" clearable /> <el-input v-model="queryParams.params.name" placeholder="" clearable />
</el-form-item> </el-form-item>
<el-form-item label="库位编码">
<el-input v-model="queryParams.params.code" placeholder="" clearable />
</el-form-item>
<el-form-item label="所属仓库">
<el-select v-model="queryParams.params.warehouseName" placeholder="所属仓库" class="addinputw addinputInfo"
@change="selectWarehouseChange">
<el-option v-for="item in warehouseList" :key="item.sid" :label="item.warehouseName"
:value="item.sid" />
</el-select>
</el-form-item>
<el-form-item label="所属库区">
<el-select v-model="queryParams.params.warehouseAreaName" placeholder="所属库区"
class="addinputw addinputInfo" @change="selectWrehouseAreaChange">
<el-option v-for="item in warehouseAreaList" :key="item.sid" :label="item.areaName"
:value="item.sid" />
</el-select>
</el-form-item>
</el-form> </el-form>
<div class="btn" style="text-align: center;"> <div class="btn" style="text-align: center;">
<el-button <el-button type="primary" size="small" icon="el-icon-search" @click="dosearch">查询</el-button>
type="primary" <el-button type="primary" size="small" icon="el-icon-refresh" @click="resetQuery">重置</el-button>
size="small"
icon="el-icon-search"
@click="dosearch"
>查询</el-button>
<el-button
type="primary"
size="small"
icon="el-icon-refresh"
@click="resetQuery"
>重置</el-button>
</div> </div>
</div> </div>
</div> </div>
@ -37,21 +44,22 @@
<!-- End 项目列表头部 --> <!-- End 项目列表头部 -->
<!-- Start 项目列表 --> <!-- Start 项目列表 -->
<div class=""> <div class="">
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"> <el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"
<!-- <el-table-column fixed width="50" type="selection" align="center" /> --> @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 fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column label="操作" align="center" width="180"> <el-table-column label="操作" align="center" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="mini" @click="toRelevancy(scope.row)">编辑</el-button> <el-button type="primary" size="mini" @click="toRelevancy(scope.row)">编辑</el-button>
<!-- <el-button type="primary" size="mini" @click="toRelevancyInfo(scope.row)">删除</el-button> --> <!-- <el-button type="primary" size="mini" @click="toRelevancyInfo(scope.row)">删除</el-button> -->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="是否可用" align="center" width="140"> <el-table-column label="是否可用" align="center" width="140">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch v-model="scope.row.isEnable" active-text="" inactive-text="" active-value="1" <el-switch v-model="scope.row.isEnable" active-text="" inactive-text="" active-value="1"
inactive-value="2" @change="enableChange(scope.row.sid,scope.row.isEnable)" /> inactive-value="2" @change="enableChange(scope.row.sid,scope.row.isEnable)" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="rackName" label="库位名称" align="center" /> <el-table-column prop="rackName" label="库位名称" align="center" />
<el-table-column prop="rackCode" label="库位编码" align="center" /> <el-table-column prop="rackCode" label="库位编码" align="center" />
<el-table-column prop="warehouseName" label="所属仓库" align="center" /> <el-table-column prop="warehouseName" label="所属仓库" align="center" />
@ -62,14 +70,8 @@
<div class="pages"> <div class="pages">
<div class="tit" /> <div class="tit" />
<!-- 翻页 --> <!-- 翻页 -->
<pagination <pagination v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current"
v-show="dataList.length > 0" :limit.sync="queryParams.size" class="pagination" @pagination="loadList" />
:total="queryParams.total"
:page.sync="queryParams.current"
:limit.sync="queryParams.size"
class="pagination"
@pagination="loadList"
/>
</div> </div>
</div> </div>
</div> </div>
@ -80,165 +82,242 @@
</template> </template>
<script> <script>
import req from '@/api/warehouse/goodsShelves.js' import req from '@/api/warehouse/goodsShelves.js'
import ButtonBar from '@/components/ButtonBar' import req2 from '@/api/warehouse/warehouse.js'
import Pagination from '@/components/pagination' import req3 from '@/api/warehouse/warehouseArea.js'
import pageye from '@/components/pagination/pageye' import ButtonBar from '@/components/ButtonBar'
import divAdd from './goodsShelvesAdd.vue' import Pagination from '@/components/pagination'
export default { import pageye from '@/components/pagination/pageye'
components: { import divAdd from './goodsShelvesAdd.vue'
ButtonBar, export default {
Pagination, components: {
pageye, ButtonBar,
divAdd Pagination,
}, pageye,
data() { divAdd
return { },
btndisabled: false, data() {
viewState: 1, // 1 2 3 4 return {
isSearchShow: false, btndisabled: false,
searchxianshitit: '显示查询条件', viewState: 1, // 1 2 3 4
tableLoading: false, isSearchShow: false,
dataList: [], searchxianshitit: '显示查询条件',
btnList: [{ tableLoading: false,
type: 'primary', dataList: [],
size: 'small', btnList: [{
icon: 'plus', type: 'primary',
btnKey: 'toAdd', size: 'small',
btnLabel: '新增' icon: 'plus',
}, btnKey: 'toAdd',
{ btnLabel: '新增'
type: 'info', },
size: 'small', {
icon: 'cross', type: 'danger',
btnKey: 'doClose', size: 'small',
btnLabel: '关闭' icon: 'plus',
} btnKey: 'doDel',
], btnLabel: '删除'
queryParams: { },
current: 1, {
size: 10, type: 'info',
total: 0, size: 'small',
params: { icon: 'cross',
name: '' btnKey: 'doClose',
} btnLabel: '关闭'
}, }
sids: [] ],
} queryParams: {
}, current: 1,
mounted() { size: 10,
this.$refs['btnbar'].setButtonList(this.btnList) total: 0,
}, params: {
created() { name: '',
this.loadList() caode: '',
}, areaTypeSid: '',
methods: { warehouseAreaName: '',
// warehouseSid: '',
clicksearchShow() { warehouseName: '',
this.isSearchShow = !this.isSearchShow }
if (this.isSearchShow) { },
this.searchxianshitit = '隐藏查询条件' warehouseList: [],
} else { warehouseAreaList: [],
this.searchxianshitit = '显示查询条件' sids: [],
} selectionList: []
}, }
btnHandle(btnKey) { },
switch (btnKey) { mounted() {
case 'toAdd': this.$refs['btnbar'].setButtonList(this.btnList)
this.toAdd() },
break created() {
case 'doClose': this.loadList()
this.doClose() this.getwarehouse()
break },
default: methods: {
break selectionLineChangeHandle(val) {
} console.log("val", val);
},
loadList() {
this.tableLoading = true
req.listPage(this.queryParams).then((resp) => {
this.tableLoading = false
if (resp.success) {
const data = resp.data
this.queryParams.total = data.total
this.dataList = data.records
} else {
// resp.code
this.dataList = []
this.queryParams.total = 0
}
}).catch(() => {
this.tableLoading = false
})
},
// this.selectionList = val
indexMethod(index) {
var pagestart = (this.queryParams.current - 1) * this.queryParams.size
var pageindex = index + 1 + pagestart
return pageindex
},
dosearch() {
this.queryParams.current = 1
this.loadList()
},
resetQuery() {
this.queryParams = {
current: 1,
size: 10,
total: 0,
params: {
name: ''
}
}
this.loadList()
},
toAdd() {
this.viewState = 2
this.$refs['divadd'].showAdd()
},
doClose() { const aa = []
this.$store.dispatch('tagsView/delView', this.$route) val.forEach(element => {
this.$router.go(-1) aa.push(element.sid)
}, })
toRelevancy(row) { this.sids = aa
this.viewState = 3 },
this.$refs['divadd'].showEdit(row) getwarehouse() {
}, req2.getAllWarehouse().then(resp => {
toRelevancyInfo(row) { console.log('>>>>>>>>>getAllWarehouse', resp)
const tip = '请确认是否删除所选品牌?' this.warehouseList = resp.data
this.$confirm(tip, '提示', { }).catch(() => {})
confirmButtonText: '确定', },
cancelButtonText: '取消', getWarehouseArea(sid) {
type: 'warning' this.queryParams.params.areaTypeSid = ''
}).then(() => { this.queryParams.params.warehouseAreaName = ''
const loading = this.$loading({ req3.getAllWarehouseareaBysid(sid).then(resp => {
lock: true, console.log('>>>>>>>>>getAllWarehousearea', resp)
text: 'Loading', this.warehouseAreaList = resp.data
spinner: 'el-icon-loading', }).catch(() => {})
background: 'rgba(0, 0, 0, 0.7)' },
})
req.deleteGoods(row.sid).then((resp) => { selectWarehouseChange(val) {
loading.close()
if (resp.success) { const choose = this.warehouseList.filter((item) => item.sid == val)
this.$message({ console.log('>>>>>>>>>selectWarehouseTypeChange', choose)
type: 'success', this.queryParams.params.warehouseSid = choose[0].sid
message: resp.msg, this.queryParams.params.warehouseName = choose[0].warehouseName
showClose: true
}) this.getWarehouseArea(choose[0].sid)
this.loadList()
} else { },
// resp.code
} selectWrehouseAreaChange(val) {
}).catch(e => {
loading.close() const choose = this.warehouseAreaList.filter((item) => item.sid == val)
}) console.log('>>>>>>>>>selectWarehouseTypeChange', choose)
}).catch(() => {}) this.queryParams.params.areaTypeSid = choose[0].sid
}, this.queryParams.params.warehouseAreaName = choose[0].areaName
resetState() {
this.viewState = 1 },
}, //
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
switch (btnKey) {
case 'toAdd':
this.toAdd()
break
case 'doDel':
this.doDel()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
loadList() {
this.tableLoading = true
req.listPage(this.queryParams).then((resp) => {
this.tableLoading = false
if (resp.success) {
const data = resp.data
this.queryParams.total = data.total
this.dataList = data.records
} else {
// resp.code
this.dataList = []
this.queryParams.total = 0
}
}).catch(() => {
this.tableLoading = false
})
},
//
indexMethod(index) {
var pagestart = (this.queryParams.current - 1) * this.queryParams.size
var pageindex = index + 1 + pagestart
return pageindex
},
dosearch() {
this.queryParams.current = 1
this.loadList()
},
resetQuery() {
this.queryParams = {
current: 1,
size: 10,
total: 0,
params: {
areaTypeSid: '',
warehouseAreaName: '',
warehouseSid: '',
warehouseName: '',
}
}
this.loadList()
},
toAdd() {
this.viewState = 2
this.$refs['divadd'].showAdd()
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
},
toRelevancy(row) {
this.viewState = 3
this.$refs['divadd'].showEdit(row)
},
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: '请至少选择一条记录进行删除操作'
})
}
},
resetState() {
this.viewState = 1
},
enableChange(sid, state) { enableChange(sid, state) {
console.log('sid', sid) console.log('sid', sid)
console.log('state', state) console.log('state', state)
@ -255,8 +334,8 @@
console.log(e) console.log(e)
}) })
}, },
} }
} }
</script> </script>
<style scoped> <style scoped>
</style> </style>

423
yxt-as-ui/src/views/warehouse/warehouse/index.vue

@ -12,21 +12,17 @@
<el-form-item label="仓库名称"> <el-form-item label="仓库名称">
<el-input v-model="queryParams.params.name" placeholder="" clearable /> <el-input v-model="queryParams.params.name" placeholder="" clearable />
</el-form-item> </el-form-item>
<el-form-item label="仓库编码">
<el-input v-model="queryParams.params.code" placeholder="" clearable />
</el-form-item>
<el-form-item label="仓库地址">
<el-input v-model="queryParams.params.address" placeholder="" clearable />
</el-form-item>
</el-form> </el-form>
<div class="btn" style="text-align: center;"> <div class="btn" style="text-align: center;">
<el-button <el-button type="primary" size="small" icon="el-icon-search" @click="dosearch">查询</el-button>
type="primary" <el-button type="primary" size="small" icon="el-icon-refresh" @click="resetQuery">重置</el-button>
size="small"
icon="el-icon-search"
@click="dosearch"
>查询</el-button>
<el-button
type="primary"
size="small"
icon="el-icon-refresh"
@click="resetQuery"
>重置</el-button>
</div> </div>
</div> </div>
</div> </div>
@ -37,12 +33,14 @@
<!-- End 项目列表头部 --> <!-- End 项目列表头部 -->
<!-- Start 项目列表 --> <!-- Start 项目列表 -->
<div class=""> <div class="">
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"> <el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"
<!-- <el-table-column fixed width="50" type="selection" align="center" /> --> @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 fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column label="操作" align="center" width="120"> <el-table-column label="操作" align="center" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="mini" @click="toRelevancy(scope.row)">编辑</el-button> <el-button type="primary" size="mini" @click="toRelevancy(scope.row)">详情</el-button>
<!-- <el-button type="primary" size="mini" @click="toRelevancy(scope.row)">编辑</el-button> -->
<!-- <el-button type="primary" size="mini" @click="toRelevancyInfo(scope.row)">删除</el-button> --> <!-- <el-button type="primary" size="mini" @click="toRelevancyInfo(scope.row)">删除</el-button> -->
</template> </template>
</el-table-column> </el-table-column>
@ -57,7 +55,7 @@
<el-table-column prop="manager" label="仓库主管" align="center" /> <el-table-column prop="manager" label="仓库主管" align="center" />
<el-table-column prop="telephone" label="联系电话" align="center" /> <el-table-column prop="telephone" label="联系电话" align="center" />
<el-table-column prop="squareMeter" label="占地面积" align="center" /> <el-table-column prop="squareMeter" label="占地面积" align="center" />
<el-table-column prop="address" label="仓库地址" align="center" /> <el-table-column prop="address" label="仓库地址" align="center" />
<el-table-column prop="sortNo" label="排序" align="center" /> <el-table-column prop="sortNo" label="排序" align="center" />
</el-table> </el-table>
</div> </div>
@ -65,183 +63,242 @@
<div class="pages"> <div class="pages">
<div class="tit" /> <div class="tit" />
<!-- 翻页 --> <!-- 翻页 -->
<pagination <pagination v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current"
v-show="dataList.length > 0" :limit.sync="queryParams.size" class="pagination" @pagination="loadList" />
:total="queryParams.total"
:page.sync="queryParams.current"
:limit.sync="queryParams.size"
class="pagination"
@pagination="loadList"
/>
</div> </div>
</div> </div>
</div> </div>
<!-- End 查询和其列表部分 --> <!-- End 查询和其列表部分 -->
<!-- 新增修改部分组件 --> <!-- 新增修改部分组件 -->
<divAdd v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="loadList" /> <divAdd v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="loadList" />
<divInfo v-show="viewState == 4" ref="divinfo" @doback="resetState" @reloadlist="loadList" />
</div> </div>
</template> </template>
<script> <script>
import req from '@/api/warehouse/warehouse.js' import req from '@/api/warehouse/warehouse.js'
import ButtonBar from '@/components/ButtonBar' import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination' import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye' import pageye from '@/components/pagination/pageye'
import divAdd from './warehouseAdd.vue' import divAdd from './warehouseAdd.vue'
export default { import divInfo from './warehouseInfo.vue'
components: { export default {
ButtonBar, components: {
Pagination, ButtonBar,
pageye, Pagination,
divAdd pageye,
}, divAdd,
data() { divInfo
return { },
btndisabled: false, data() {
viewState: 1, // 1 2 3 4 return {
isSearchShow: false, btndisabled: false,
searchxianshitit: '显示查询条件', viewState: 1, // 1 2 3 4
tableLoading: false, isSearchShow: false,
dataList: [], searchxianshitit: '显示查询条件',
btnList: [{ tableLoading: false,
type: 'primary', dataList: [],
size: 'small', btnList: [{
icon: 'plus', type: 'primary',
btnKey: 'toAdd', size: 'small',
btnLabel: '新增' icon: 'plus',
}, btnKey: 'toAdd',
{ btnLabel: '新增'
type: 'info', },
size: 'small', {
icon: 'cross', type: 'primary',
btnKey: 'doClose', size: 'small',
btnLabel: '关闭' icon: 'plus',
} btnKey: 'toEdit',
], btnLabel: '编辑'
queryParams: { },
current: 1, {
size: 10, type: 'danger',
total: 0, size: 'small',
params: { icon: 'plus',
name: '' btnKey: 'doDel',
} btnLabel: '删除'
}, },
sids: [] {
} type: 'info',
}, size: 'small',
mounted() { icon: 'cross',
this.$refs['btnbar'].setButtonList(this.btnList) btnKey: 'doClose',
}, btnLabel: '关闭'
created() { }
this.loadList() ],
}, queryParams: {
methods: { current: 1,
// size: 10,
clicksearchShow() { total: 0,
this.isSearchShow = !this.isSearchShow params: {
if (this.isSearchShow) { name: '',
this.searchxianshitit = '隐藏查询条件' code: "",
} else { address: ""
this.searchxianshitit = '显示查询条件' }
} },
}, sids: [],
btnHandle(btnKey) { selectionList: []
switch (btnKey) { }
case 'toAdd': },
this.toAdd() mounted() {
break this.$refs['btnbar'].setButtonList(this.btnList)
case 'doClose': },
this.doClose() created() {
break this.loadList()
default: },
break methods: {
} selectionLineChangeHandle(val) {
}, console.log("val", val);
loadList() {
this.tableLoading = true
req.listPage(this.queryParams).then((resp) => {
this.tableLoading = false
if (resp.success) {
const data = resp.data
this.queryParams.total = data.total
this.dataList = data.records
} else {
// resp.code
this.dataList = []
this.queryParams.total = 0
}
}).catch(() => {
this.tableLoading = false
})
},
// this.selectionList = val
indexMethod(index) {
var pagestart = (this.queryParams.current - 1) * this.queryParams.size
var pageindex = index + 1 + pagestart
return pageindex
},
dosearch() {
this.queryParams.current = 1
this.loadList()
},
resetQuery() {
this.queryParams = {
current: 1,
size: 10,
total: 0,
params: {
name: ''
}
}
this.loadList()
},
toAdd() {
this.viewState = 2
this.$refs['divadd'].showAdd()
},
doClose() { const aa = []
this.$store.dispatch('tagsView/delView', this.$route) val.forEach(element => {
this.$router.go(-1) aa.push(element.sid)
}, })
toRelevancy(row) { this.sids = aa
this.viewState = 3
this.$refs['divadd'].showEdit(row)
}, },
toRelevancyInfo(row) { //
const tip = '请确认是否删除所选品牌?' clicksearchShow() {
this.$confirm(tip, '提示', { this.isSearchShow = !this.isSearchShow
confirmButtonText: '确定', if (this.isSearchShow) {
cancelButtonText: '取消', this.searchxianshitit = '隐藏查询条件'
type: 'warning' } else {
}).then(() => { this.searchxianshitit = '显示查询条件'
const loading = this.$loading({ }
lock: true, },
text: 'Loading', btnHandle(btnKey) {
spinner: 'el-icon-loading', switch (btnKey) {
background: 'rgba(0, 0, 0, 0.7)' case 'toAdd':
}) this.toAdd()
req.deleteGoods(row.sid).then((resp) => { break
loading.close() case 'toEdit':
if (resp.success) { this.toEdit()
this.$message({ break
type: 'success', case 'doDel':
message: resp.msg, this.doDel()
showClose: true break
}) case 'doClose':
this.loadList() this.doClose()
} else { break
// resp.code default:
} break
}).catch(e => { }
loading.close() },
}) loadList() {
}).catch(() => {}) this.tableLoading = true
}, req.listPage(this.queryParams).then((resp) => {
resetState() { this.tableLoading = false
this.viewState = 1 if (resp.success) {
}, const data = resp.data
this.queryParams.total = data.total
this.dataList = data.records
} else {
// resp.code
this.dataList = []
this.queryParams.total = 0
}
}).catch(() => {
this.tableLoading = false
})
},
//
indexMethod(index) {
var pagestart = (this.queryParams.current - 1) * this.queryParams.size
var pageindex = index + 1 + pagestart
return pageindex
},
dosearch() {
this.queryParams.current = 1
this.loadList()
},
resetQuery() {
this.queryParams = {
current: 1,
size: 10,
total: 0,
params: {
name: '',
code: "",
address: ""
}
}
this.loadList()
},
toAdd() {
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)
this.$router.go(-1)
},
toRelevancy(row) {
this.viewState = 4
this.$refs['divinfo'].showEdit(row)
},
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: '请至少选择一条记录进行删除操作'
})
}
},
resetState() {
this.viewState = 1
},
enableChange(sid, state) { enableChange(sid, state) {
console.log('sid', sid) console.log('sid', sid)
console.log('state', state) console.log('state', state)
@ -258,8 +315,8 @@
console.log(e) console.log(e)
}) })
}, },
} }
} }
</script> </script>
<style scoped> <style scoped>
</style> </style>

330
yxt-as-ui/src/views/warehouse/warehouse/warehouseAdd.vue

@ -15,67 +15,150 @@
<div class="listconadd"> <div class="listconadd">
<el-card class="box-card"> <el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<div class="item">
<span class="item_text">仓库名称</span> <el-row class="first_row">
<el-input v-model="formobj.warehouseName" placeholder="仓库名称" class="item_input" clearable />
</div> <el-col :span="8">
<div class="item"> <div class="span-sty">仓库编码</div>
<span class="item_text">仓库编码</span> <el-form-item>
<el-input v-model="formobj.warehouseCode" placeholder="仓库编码" class="item_input" clearable <el-input v-model="formobj.warehouseCode" placeholder="仓库编码" class="addinputw addinputInfo" clearable
oninput="value=value.replace(/[^A-Za-z0-9]/g, '')" /> oninput="value=value.replace(/[^A-Za-z0-9]/g, '')" />
</div> </el-form-item>
<div class="item"> </el-col>
<span class="item_text">仓库联系人</span>
<el-input v-model="formobj.contacts" placeholder="仓库联系人" class="item_input" clearable /> <el-col :span="16">
</div> <div class="span-sty">仓库名称</div>
<div class="item"> <el-form-item>
<span class="item_text">手机号码</span> <el-input v-model="formobj.warehouseName" placeholder="仓库名称" class="addinputw addinputInfo" clearable />
<el-input v-model="formobj.mob" placeholder="手机号码" class="item_input" clearable /> </el-form-item>
</div> </el-col>
<div class="item">
<span class="item_text">仓库主管</span> </el-row>
<el-input v-model="formobj.manager" placeholder="仓库主管" class="item_input" clearable />
</div> <el-row>
<div class="item">
<span class="item_text">联系电话</span> <el-col :span="8">
<el-input v-model="formobj.telephone" placeholder="联系电话" class="item_input" clearable /> <div class="span-sty">仓库类型</div>
</div> <el-form-item>
<el-select v-model="formobj.warehouseTypeValue" placeholder="请选择仓库类型" class="addinputw addinputInfo"
<div class="item"> @change="selectWarehouseTypeChange">
<span class="item_text">占地面积</span> <el-option v-for="item in warehouseTypeList" :key="item.dictKey" :label="item.dictValue"
<el-input v-model="formobj.squareMeter" placeholder="占地面积" class="item_input" clearable :value="item.dictKey" />
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" /> </el-select>
</div>
<div class="item"> </el-form-item>
<span class="item_text">仓库经度</span> </el-col>
<el-input v-model="formobj.longitude" placeholder="仓库经度" class="item_input" clearable />
</div> <el-col :span="8">
<div class="item"> <div class="span-sty">仓库面积</div>
<span class="item_text">仓库纬度</span> <el-form-item>
<el-input v-model="formobj.latitude" placeholder="仓库纬度" class="item_input" clearable /> <el-input v-model="formobj.squareMeter" placeholder="仓库面积" class="addinputw addinputInfo" clearable
</div> oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" />
<div class="item"> </el-form-item>
<span class="item_text">具体地址</span> </el-col>
<el-input v-model="formobj.address" placeholder="具体地址" class="item_input" clearable />
</div> <el-col :span="8">
<div class="item"> <div class="span-sty">仓库管理员</div>
<span class="item_text">使用状态</span> <el-form-item>
<el-radio-group v-model="formobj.usageStatus" size="small" @change="changeTheme" class="item_input"> <el-input v-model="formobj.manager" placeholder="仓库管理员" class="addinputw addinputInfo" clearable />
<el-radio :label="1">正常</el-radio> </el-form-item>
<el-radio :label="0">停用</el-radio> </el-col>
</el-radio-group>
<!-- <el-input v-model="formobj.usageStatus" placeholder="仓库排序" class="item_input" clearable /> --> </el-row>
</div>
<div class="item"> <el-row>
<span class="item_text">仓库排序</span>
<el-input v-model="formobj.sortNo" placeholder="仓库排序" class="item_input" clearable /> <el-col :span="24">
</div> <div class="span-sty">仓库地址</div>
<div class="item"> <el-form-item>
<span class="item_text">仓库备注</span> <el-input v-model="formobj.address" placeholder="仓库地址" class="addinputw addinputInfo" clearable />
<el-input v-model="formobj.remarks" placeholder="具体地址" class="item_input" clearable /> </el-form-item>
</div> </el-col>
</el-card>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">经度</div>
<el-form-item>
<el-input v-model="formobj.longitude" placeholder="经度" class="addinputw addinputInfo" clearable
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" />
</el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">纬度</div>
<el-form-item>
<el-input v-model="formobj.latitude" placeholder="纬度" class="addinputw addinputInfo" clearable
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">联系人</div>
<el-form-item>
<el-input v-model="formobj.contacts" placeholder="联系人" class="addinputw addinputInfo" clearable />
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">手机号码</div>
<el-form-item>
<el-input v-model="formobj.mob" maxlength="11" placeholder="手机号码" class="addinputw addinputInfo" clearable
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">联系电话</div>
<el-form-item>
<el-input v-model="formobj.telephone" placeholder="联系电话" class="addinputw addinputInfo" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">排序</div>
<el-form-item>
<el-input v-model="formobj.sortNo" placeholder="排序" class="addinputw addinputInfo" clearable
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
</el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">使用状态</div>
<el-form-item>
<el-radio-group v-model="formobj.usageStatus" size="small" @change="changeTheme"
class="addinputw addinputInfo">
<el-radio :label="'1'">正常</el-radio>
<el-radio :label="'0'">停用</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">备注</div>
<el-form-item>
<el-input v-model="formobj.remarks" placeholder="备注" class="addinputw addinputInfo" clearable />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div> </div>
@ -84,6 +167,9 @@
<script> <script>
import req from '@/api/warehouse/warehouse.js' import req from '@/api/warehouse/warehouse.js'
import {
typeValues
} from '@/api/Common/dictcommons.js'
export default { export default {
components: {}, components: {},
data() { data() {
@ -93,6 +179,8 @@
sid: '', sid: '',
warehouseName: '', warehouseName: '',
warehouseCode: '', warehouseCode: '',
warehouseTypeKey: '',
warehouseTypeValue: '',
contacts: "", contacts: "",
mob: "", mob: "",
telephone: "", telephone: "",
@ -104,14 +192,40 @@
squareMeter: '', squareMeter: '',
sortNo: '', sortNo: '',
remarks: '', remarks: '',
warehouseType: "0" warehouseType: "0",
useOrgSid: window.sessionStorage.getItem('departmentSid'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
}, },
warehouseTypeList: []
} }
}, },
created() {}, created() {
this.getDictValue()
},
methods: { methods: {
changeTheme(val) { changeTheme(val) {
},
getDictValue() {
var params = {
type: "warehouse",
psid: '0'
}
typeValues(params).then(resp => {
console.log('>>>>>>>>>typeValues', resp)
this.warehouseTypeList = resp.data
}).catch(() => {})
},
selectWarehouseTypeChange(val) {
const choose = this.warehouseTypeList.filter((item) => item.dictKey == val)
console.log('>>>>>>>>>selectWarehouseTypeChange', choose)
this.formobj.warehouseTypeKey = choose[0].dictKey
this.formobj.warehouseTypeValue = choose[0].dictValue
}, },
saveOrUpdate() { saveOrUpdate() {
console.log('>>>>>>>>>saveOrUpdate', this.formobj) console.log('>>>>>>>>>saveOrUpdate', this.formobj)
@ -136,6 +250,8 @@
sid: '', sid: '',
warehouseName: '', warehouseName: '',
warehouseCode: '', warehouseCode: '',
warehouseTypeKey: '',
warehouseTypeValue: '',
contacts: "", contacts: "",
mob: "", mob: "",
telephone: "", telephone: "",
@ -147,7 +263,10 @@
squareMeter: '', squareMeter: '',
sortNo: '', sortNo: '',
remarks: '', remarks: '',
warehouseType: "0" warehouseType: "0",
useOrgSid: window.sessionStorage.getItem('departmentSid'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
} }
this.$emit('doback') this.$emit('doback')
}, },
@ -167,74 +286,29 @@
} }
} }
</script> </script>
<style lang="scss" scoped> <style scoped>
// .span-sty {
width: 130px !important;
::v-deep .hide {
.el-upload--picture-card {
display: none !important;
}
} }
.box-card { .addinputInfo {
margin-left: 60px; margin-left: 120px !important;
margin-right: 60px; }
min-width: 70%;
margin-top: 20px;
.item {
display: flex;
flex-direction: row;
align-items: center;
margin-top: 15px;
height: 40px;
line-height: 40px;
.item_text {
flex: 0.8;
font-size: 18px;
text-align: right;
}
.item_input {
flex: 4;
font-size: 16px;
margin-left: 10px;
margin-right: 80px;
}
.item_left_input {
width: 20%;
}
.item_left_text {
height: 30px;
margin-left: 20px;
line-height: 30px;
color: #018AD2;
padding: 0px 15px;
border: 1.5px solid #018AD2;
border-radius: 5px;
}
.item_right {
flex: 1;
justify-items: center;
.item_right_list_text {
font-size: 16px;
}
.item_right_list_delect { .formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
color: #5E94FF; margin-left: 120px !important;
margin-left: 20px; width: calc(100% - 115px);
font-size: 16px; }
text-decoration: underline;
}
}
} .first_row {
border-top: 1px solid #E0E3EB;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
} }
</style> </style>

265
yxt-as-ui/src/views/warehouse/warehouse/warehouseInfo.vue

@ -0,0 +1,265 @@
<template>
<div>
<div class="tab-header webtop">
<!-- 标题 -->
<div>仓库信息</div>
<!-- start 添加修改按钮 -->
<div>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
<!-- end 添加修改按钮 -->
<!-- end 详情按钮 -->
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<el-row class="first_row">
<el-col :span="8">
<div class="span-sty">仓库编码</div>
<el-form-item>
<span class="addinputInfo">{{formobj.warehouseCode}}</span>
</el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">仓库名称</div>
<el-form-item>
<span class="addinputInfo">{{formobj.warehouseName}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row >
<el-col :span="8">
<div class="span-sty">仓库类型</div>
<el-form-item>
<span class="addinputInfo">{{formobj.warehouseTypeValue}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">仓库面积</div>
<el-form-item>
<span class="addinputInfo">{{formobj.squareMeter}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">仓库管理员</div>
<el-form-item>
<span class="addinputInfo">{{formobj.manager}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row >
<el-col :span="24">
<div class="span-sty">仓库地址</div>
<el-form-item>
<span class="addinputInfo">{{formobj.address}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row >
<el-col :span="8">
<div class="span-sty">经度</div>
<el-form-item>
<span class="addinputInfo">{{formobj.longitude}}</span>
</el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">纬度</div>
<el-form-item>
<span class="addinputInfo">{{formobj.latitude}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row >
<el-col :span="8">
<div class="span-sty">联系人</div>
<el-form-item>
<span class="addinputInfo">{{formobj.contacts}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">手机号码</div>
<el-form-item>
<span class="addinputInfo">{{formobj.mob}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">联系电话</div>
<el-form-item>
<span class="addinputInfo">{{formobj.telephone}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row >
<el-col :span="8">
<div class="span-sty">排序</div>
<el-form-item>
<span class="addinputInfo">{{formobj.sortNo}}</span>
</el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">使用状态</div>
<el-form-item>
<el-radio-group v-model="formobj.usageStatus" size="small" :disabled='true' class="addinputw addinputInfo">
<el-radio :label="'1'">正常</el-radio>
<el-radio :label="'0'">停用</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row >
<el-col :span="24">
<div class="span-sty">备注</div>
<el-form-item>
<span class="addinputInfo">{{formobj.remarks}}</span>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</template>
<script>
import req from '@/api/warehouse/warehouse.js'
export default {
components: {},
data() {
return {
submitdisabled: false,
formobj: {
sid: '',
warehouseName: '',
warehouseCode: '',
contacts: "",
mob: "",
telephone: "",
manager: '',
longitude: '',
latitude: '',
usageStatus: "",
address: '',
squareMeter: '',
sortNo: '',
remarks: '',
warehouseType: "0"
},
}
},
created() {},
methods: {
changeTheme(val) {
},
saveOrUpdate() {
console.log('>>>>>>>>>saveOrUpdate', this.formobj)
req.saveWarehouse(this.formobj)
.then(resp => {
if (resp.success) {
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn('true')
} else {
// resp.code
}
})
.catch(() => {})
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {
sid: '',
warehouseName: '',
warehouseCode: '',
contacts: "",
mob: "",
telephone: "",
manager: '',
longitude: '',
latitude: '',
usageStatus: "",
address: '',
squareMeter: '',
sortNo: '',
remarks: '',
warehouseType: "0"
}
this.$emit('doback')
},
showAdd() {},
showEdit(row) {
req.initWarehouse(row.sid)
.then(resp => {
if (resp.success) {
this.formobj = resp.data
}
})
.catch(e => {
this.formobj = row
})
},
}
}
</script>
<style scoped>
.span-sty {
width: 130px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 120px !important;
width: calc(100% - 115px);
}
.first_row {
border-top: 1px solid #E0E3EB;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
</style>

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

@ -12,21 +12,29 @@
<el-form-item label="库区名称"> <el-form-item label="库区名称">
<el-input v-model="queryParams.params.name" placeholder="" clearable /> <el-input v-model="queryParams.params.name" placeholder="" clearable />
</el-form-item> </el-form-item>
<el-form-item label="库区编码">
<el-input v-model="queryParams.params.code" placeholder="" clearable />
</el-form-item>
<el-form-item label="库区类型">
<el-select v-model="queryParams.params.warehouseAreaTypeName" placeholder="库区类型"
class="addinputw addinputInfo" @change="selectWrehouseAreaTypeChange">
<el-option v-for="item in warehouseAreaTypeLsit" :key="item.sid" :label="item.warehouseAreaTypeName"
:value="item.sid" />
</el-select>
</el-form-item>
<el-form-item label="所属仓库">
<el-select v-model="queryParams.params.warehouseName" placeholder="所属仓库" class="addinputw addinputInfo"
@change="selectWarehouseChange">
<el-option v-for="item in warehouseList" :key="item.sid" :label="item.warehouseName"
:value="item.sid" />
</el-select>
</el-form-item>
</el-form> </el-form>
<div class="btn" style="text-align: center;"> <div class="btn" style="text-align: center;">
<el-button <el-button type="primary" size="small" icon="el-icon-search" @click="dosearch">查询</el-button>
type="primary" <el-button type="primary" size="small" icon="el-icon-refresh" @click="resetQuery">重置</el-button>
size="small"
icon="el-icon-search"
@click="dosearch"
>查询</el-button>
<el-button
type="primary"
size="small"
icon="el-icon-refresh"
@click="resetQuery"
>重置</el-button>
</div> </div>
</div> </div>
</div> </div>
@ -37,21 +45,22 @@
<!-- End 项目列表头部 --> <!-- End 项目列表头部 -->
<!-- Start 项目列表 --> <!-- Start 项目列表 -->
<div class=""> <div class="">
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"> <el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"
<!-- <el-table-column fixed width="50" type="selection" align="center" /> --> @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 fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column label="操作" align="center" width="180"> <el-table-column label="操作" align="center" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="mini" @click="toRelevancy(scope.row)">编辑</el-button> <el-button type="primary" size="mini" @click="toRelevancy(scope.row)">编辑</el-button>
<!-- <el-button type="primary" size="mini" @click="toRelevancyInfo(scope.row)">删除</el-button> --> <!-- <el-button type="primary" size="mini" @click="toRelevancyInfo(scope.row)">删除</el-button> -->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="是否可用" align="center" width="140"> <el-table-column label="是否可用" align="center" width="140">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch v-model="scope.row.isEnable" active-text="" inactive-text="" active-value="1" <el-switch v-model="scope.row.isEnable" active-text="" inactive-text="" active-value="1"
inactive-value="2" @change="enableChange(scope.row.sid,scope.row.isEnable)" /> inactive-value="2" @change="enableChange(scope.row.sid,scope.row.isEnable)" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="areaName" label="库区名称" align="center" /> <el-table-column prop="areaName" label="库区名称" align="center" />
<el-table-column prop="areaCode" label="库区编码" align="center" /> <el-table-column prop="areaCode" label="库区编码" align="center" />
<el-table-column prop="volume" label="库区容量" align="center" /> <el-table-column prop="volume" label="库区容量" align="center" />
@ -64,14 +73,8 @@
<div class="pages"> <div class="pages">
<div class="tit" /> <div class="tit" />
<!-- 翻页 --> <!-- 翻页 -->
<pagination <pagination v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current"
v-show="dataList.length > 0" :limit.sync="queryParams.size" class="pagination" @pagination="loadList" />
:total="queryParams.total"
:page.sync="queryParams.current"
:limit.sync="queryParams.size"
class="pagination"
@pagination="loadList"
/>
</div> </div>
</div> </div>
</div> </div>
@ -82,165 +85,245 @@
</template> </template>
<script> <script>
import req from '@/api/warehouse/warehouseArea.js' import req from '@/api/warehouse/warehouseArea.js'
import ButtonBar from '@/components/ButtonBar' import req2 from '@/api/warehouse/warehouse.js'
import Pagination from '@/components/pagination' import req3 from '@/api/warehouse/warehouseAreaType.js'
import pageye from '@/components/pagination/pageye' import ButtonBar from '@/components/ButtonBar'
import divAdd from './warehouseAreaAdd.vue' import Pagination from '@/components/pagination'
export default { import pageye from '@/components/pagination/pageye'
components: { import divAdd from './warehouseAreaAdd.vue'
ButtonBar, export default {
Pagination, components: {
pageye, ButtonBar,
divAdd Pagination,
}, pageye,
data() { divAdd
return { },
btndisabled: false, data() {
viewState: 1, // 1 2 3 4 return {
isSearchShow: false, btndisabled: false,
searchxianshitit: '显示查询条件', viewState: 1, // 1 2 3 4
tableLoading: false, isSearchShow: false,
dataList: [], searchxianshitit: '显示查询条件',
btnList: [{ tableLoading: false,
type: 'primary', dataList: [],
size: 'small', btnList: [{
icon: 'plus', type: 'primary',
btnKey: 'toAdd', size: 'small',
btnLabel: '新增' icon: 'plus',
}, btnKey: 'toAdd',
{ btnLabel: '新增'
type: 'info', },
size: 'small', {
icon: 'cross', type: 'danger',
btnKey: 'doClose', size: 'small',
btnLabel: '关闭' icon: 'plus',
} btnKey: 'doDel',
], btnLabel: '删除'
queryParams: { },
current: 1, {
size: 10, type: 'info',
total: 0, size: 'small',
params: { icon: 'cross',
name: '' btnKey: 'doClose',
} btnLabel: '关闭'
}, }
sids: [] ],
} queryParams: {
}, current: 1,
mounted() { size: 10,
this.$refs['btnbar'].setButtonList(this.btnList) total: 0,
}, params: {
created() { name: '',
this.loadList() code: '',
}, areaTypeSid: '',
methods: { warehouseAreaTypeName: '',
// warehouseSid: '',
clicksearchShow() { warehouseName: '',
this.isSearchShow = !this.isSearchShow }
if (this.isSearchShow) { },
this.searchxianshitit = '隐藏查询条件' warehouseList: [],
} else { warehouseAreaTypeLsit: [],
this.searchxianshitit = '显示查询条件' sids: [],
} selectionList: []
}, }
btnHandle(btnKey) { },
switch (btnKey) { mounted() {
case 'toAdd': this.$refs['btnbar'].setButtonList(this.btnList)
this.toAdd() },
break created() {
case 'doClose': this.loadList()
this.doClose() this.getwarehouse()
break this.getWarehouseAreaType()
default: },
break methods: {
} selectionLineChangeHandle(val) {
}, console.log("val", val);
loadList() {
this.tableLoading = true this.selectionList = val
req.listPage(this.queryParams).then((resp) => {
this.tableLoading = false const aa = []
if (resp.success) { val.forEach(element => {
const data = resp.data aa.push(element.sid)
this.queryParams.total = data.total })
this.dataList = data.records this.sids = aa
} else {
// resp.code
this.dataList = []
this.queryParams.total = 0
}
}).catch(() => {
this.tableLoading = false
})
},
//
indexMethod(index) {
var pagestart = (this.queryParams.current - 1) * this.queryParams.size
var pageindex = index + 1 + pagestart
return pageindex
},
dosearch() {
this.queryParams.current = 1
this.loadList()
},
resetQuery() {
this.queryParams = {
current: 1,
size: 10,
total: 0,
params: {
name: ''
}
}
this.loadList()
},
toAdd() {
this.viewState = 2
this.$refs['divadd'].showAdd()
},
doClose() { },
this.$store.dispatch('tagsView/delView', this.$route) getwarehouse() {
this.$router.go(-1) req2.getAllWarehouse().then(resp => {
}, console.log('>>>>>>>>>getAllWarehouse', resp)
toRelevancy(row) { this.warehouseList = resp.data
this.viewState = 3 }).catch(() => {})
this.$refs['divadd'].showEdit(row) },
}, getWarehouseAreaType() {
toRelevancyInfo(row) { req3.getAllWarehouseareatype().then(resp => {
const tip = '请确认是否删除所选品牌?' console.log('>>>>>>>>>getAllWarehouseareatype', resp)
this.$confirm(tip, '提示', { this.warehouseAreaTypeLsit = resp.data
confirmButtonText: '确定', }).catch(() => {})
cancelButtonText: '取消', },
type: 'warning'
}).then(() => { selectWarehouseChange(val) {
const loading = this.$loading({
lock: true, const choose = this.warehouseList.filter((item) => item.sid == val)
text: 'Loading', console.log('>>>>>>>>>selectWarehouseTypeChange', choose)
spinner: 'el-icon-loading', this.queryParams.params.warehouseSid = choose[0].sid
background: 'rgba(0, 0, 0, 0.7)' this.queryParams.params.warehouseName = choose[0].warehouseName
})
req.deleteGoods(row.sid).then((resp) => { },
loading.close()
if (resp.success) { selectWrehouseAreaTypeChange(val) {
this.$message({
type: 'success', const choose = this.warehouseAreaTypeLsit.filter((item) => item.sid == val)
message: resp.msg, console.log('>>>>>>>>>selectWarehouseTypeChange', choose)
showClose: true this.queryParams.params.areaTypeSid = choose[0].sid
}) this.queryParams.params.warehouseAreaTypeName = choose[0].warehouseAreaTypeName
this.loadList()
} else { },
// resp.code //
} clicksearchShow() {
}).catch(e => { this.isSearchShow = !this.isSearchShow
loading.close() if (this.isSearchShow) {
}) this.searchxianshitit = '隐藏查询条件'
}).catch(() => {}) } else {
}, this.searchxianshitit = '显示查询条件'
resetState() { }
this.viewState = 1 },
}, btnHandle(btnKey) {
switch (btnKey) {
case 'toAdd':
this.toAdd()
break
case 'doDel':
this.doDel()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
loadList() {
this.tableLoading = true
req.listPage(this.queryParams).then((resp) => {
this.tableLoading = false
if (resp.success) {
const data = resp.data
this.queryParams.total = data.total
this.dataList = data.records
} else {
// resp.code
this.dataList = []
this.queryParams.total = 0
}
}).catch(() => {
this.tableLoading = false
})
},
//
indexMethod(index) {
var pagestart = (this.queryParams.current - 1) * this.queryParams.size
var pageindex = index + 1 + pagestart
return pageindex
},
dosearch() {
this.queryParams.current = 1
this.loadList()
},
resetQuery() {
this.queryParams = {
current: 1,
size: 10,
total: 0,
params: {
name: '',
code: '',
areaTypeSid: '',
warehouseAreaTypeName: '',
warehouseSid: '',
warehouseName: '',
}
}
this.loadList()
},
toAdd() {
this.viewState = 2
this.$refs['divadd'].showAdd()
},
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: '请至少选择一条记录进行删除操作'
})
}
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
},
toRelevancy(row) {
this.viewState = 3
this.$refs['divadd'].showEdit(row)
},
resetState() {
this.viewState = 1
},
enableChange(sid, state) { enableChange(sid, state) {
console.log('sid', sid) console.log('sid', sid)
console.log('state', state) console.log('state', state)
@ -257,8 +340,8 @@
console.log(e) console.log(e)
}) })
}, },
} }
} }
</script> </script>
<style scoped> <style scoped>
</style> </style>

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

@ -80,7 +80,10 @@
warehouseName: '', warehouseName: '',
warehouseSid: '', warehouseSid: '',
areaTypeSid: "", areaTypeSid: "",
areaTypeName: "" areaTypeName: "",
useOrgSid: window.sessionStorage.getItem('departmentSid'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
}, },
warehouseList: [], warehouseList: [],
@ -129,7 +132,10 @@
unit: '', unit: '',
remarks: '', remarks: '',
areaTypeSid: "", areaTypeSid: "",
areaTypeName: "" areaTypeName: "",
useOrgSid: window.sessionStorage.getItem('departmentSid'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
} }
this.$emit('doback') this.$emit('doback')

391
yxt-as-ui/src/views/warehouse/warehouseAreaType/index.vue

@ -15,18 +15,8 @@
</el-form> </el-form>
<div class="btn" style="text-align: center;"> <div class="btn" style="text-align: center;">
<el-button <el-button type="primary" size="small" icon="el-icon-search" @click="dosearch">查询</el-button>
type="primary" <el-button type="primary" size="small" icon="el-icon-refresh" @click="resetQuery">重置</el-button>
size="small"
icon="el-icon-search"
@click="dosearch"
>查询</el-button>
<el-button
type="primary"
size="small"
icon="el-icon-refresh"
@click="resetQuery"
>重置</el-button>
</div> </div>
</div> </div>
</div> </div>
@ -37,21 +27,22 @@
<!-- End 项目列表头部 --> <!-- End 项目列表头部 -->
<!-- Start 项目列表 --> <!-- Start 项目列表 -->
<div class=""> <div class="">
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"> <el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"
<!-- <el-table-column fixed width="50" type="selection" align="center" /> --> @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 fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column label="操作" align="center" width="180"> <el-table-column label="操作" align="center" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="mini" @click="toRelevancy(scope.row)">编辑</el-button> <el-button type="primary" size="mini" @click="toRelevancy(scope.row)">编辑</el-button>
<!-- <el-button type="primary" size="mini" @click="toRelevancyInfo(scope.row)">删除</el-button> --> <!-- <el-button type="primary" size="mini" @click="toRelevancyInfo(scope.row)">删除</el-button> -->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="是否可用" align="center" width="140"> <el-table-column label="是否可用" align="center" width="140">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch v-model="scope.row.isEnable" active-text="" inactive-text="" active-value="1" <el-switch v-model="scope.row.isEnable" active-text="" inactive-text="" active-value="1"
inactive-value="2" @change="enableChange(scope.row.sid,scope.row.isEnable)" /> inactive-value="2" @change="enableChange(scope.row.sid,scope.row.isEnable)" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="warehouseAreaTypeName" label="库区类型名称" align="center" /> <el-table-column prop="warehouseAreaTypeName" label="库区类型名称" align="center" />
<el-table-column prop="createTime" label="创建时间" align="center" /> <el-table-column prop="createTime" label="创建时间" align="center" />
<el-table-column prop="remarks" label="库区类型备注" align="center" /> <el-table-column prop="remarks" label="库区类型备注" align="center" />
@ -61,14 +52,8 @@
<div class="pages"> <div class="pages">
<div class="tit" /> <div class="tit" />
<!-- 翻页 --> <!-- 翻页 -->
<pagination <pagination v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current"
v-show="dataList.length > 0" :limit.sync="queryParams.size" class="pagination" @pagination="loadList" />
:total="queryParams.total"
:page.sync="queryParams.current"
:limit.sync="queryParams.size"
class="pagination"
@pagination="loadList"
/>
</div> </div>
</div> </div>
</div> </div>
@ -79,165 +64,195 @@
</template> </template>
<script> <script>
import req from '@/api/warehouse/warehouseAreaType.js' import req from '@/api/warehouse/warehouseAreaType.js'
import ButtonBar from '@/components/ButtonBar' import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination' import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye' import pageye from '@/components/pagination/pageye'
import divAdd from './warehouseAreaTypeAdd.vue' import divAdd from './warehouseAreaTypeAdd.vue'
export default { export default {
components: { components: {
ButtonBar, ButtonBar,
Pagination, Pagination,
pageye, pageye,
divAdd divAdd
}, },
data() { data() {
return { return {
btndisabled: false, btndisabled: false,
viewState: 1, // 1 2 3 4 viewState: 1, // 1 2 3 4
isSearchShow: false, isSearchShow: false,
searchxianshitit: '显示查询条件', searchxianshitit: '显示查询条件',
tableLoading: false, tableLoading: false,
dataList: [], dataList: [],
btnList: [{ btnList: [{
type: 'primary', type: 'primary',
size: 'small', size: 'small',
icon: 'plus', icon: 'plus',
btnKey: 'toAdd', btnKey: 'toAdd',
btnLabel: '新增' btnLabel: '新增'
}, },
{ {
type: 'info', type: 'danger',
size: 'small', size: 'small',
icon: 'cross', icon: 'plus',
btnKey: 'doClose', btnKey: 'doDel',
btnLabel: '关闭' btnLabel: '删除'
} },
], {
queryParams: { type: 'info',
current: 1, size: 'small',
size: 10, icon: 'cross',
total: 0, btnKey: 'doClose',
params: { btnLabel: '关闭'
name: '' }
} ],
}, queryParams: {
sids: [] current: 1,
} size: 10,
}, total: 0,
mounted() { params: {
this.$refs['btnbar'].setButtonList(this.btnList) name: ''
}, }
created() { },
this.loadList() sids: [],
}, selectionList: []
methods: { }
// },
clicksearchShow() { mounted() {
this.isSearchShow = !this.isSearchShow this.$refs['btnbar'].setButtonList(this.btnList)
if (this.isSearchShow) { },
this.searchxianshitit = '隐藏查询条件' created() {
} else { this.loadList()
this.searchxianshitit = '显示查询条件' },
} methods: {
}, selectionLineChangeHandle(val) {
btnHandle(btnKey) { console.log("val", val);
switch (btnKey) {
case 'toAdd': this.selectionList = val
this.toAdd()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
loadList() {
this.tableLoading = true
req.listPage(this.queryParams).then((resp) => {
this.tableLoading = false
if (resp.success) {
const data = resp.data
this.queryParams.total = data.total
this.dataList = data.records
} else {
// resp.code
this.dataList = []
this.queryParams.total = 0
}
}).catch(() => {
this.tableLoading = false
})
},
// const aa = []
indexMethod(index) { val.forEach(element => {
var pagestart = (this.queryParams.current - 1) * this.queryParams.size aa.push(element.sid)
var pageindex = index + 1 + pagestart })
return pageindex this.sids = aa
}, },
dosearch() { //
this.queryParams.current = 1 clicksearchShow() {
this.loadList() this.isSearchShow = !this.isSearchShow
}, if (this.isSearchShow) {
resetQuery() { this.searchxianshitit = '隐藏查询条件'
this.queryParams = { } else {
current: 1, this.searchxianshitit = '显示查询条件'
size: 10, }
total: 0, },
params: { btnHandle(btnKey) {
name: '' switch (btnKey) {
} case 'toAdd':
} this.toAdd()
this.loadList() break
}, case 'doDel':
toAdd() { this.doDel()
this.viewState = 2 break
this.$refs['divadd'].showAdd() case 'doClose':
}, this.doClose()
break
default:
break
}
},
loadList() {
this.tableLoading = true
req.listPage(this.queryParams).then((resp) => {
this.tableLoading = false
if (resp.success) {
const data = resp.data
this.queryParams.total = data.total
this.dataList = data.records
} else {
// resp.code
this.dataList = []
this.queryParams.total = 0
}
}).catch(() => {
this.tableLoading = false
})
},
doClose() { //
this.$store.dispatch('tagsView/delView', this.$route) indexMethod(index) {
this.$router.go(-1) var pagestart = (this.queryParams.current - 1) * this.queryParams.size
}, var pageindex = index + 1 + pagestart
toRelevancy(row) { return pageindex
this.viewState = 3 },
this.$refs['divadd'].showEdit(row) dosearch() {
}, this.queryParams.current = 1
toRelevancyInfo(row) { this.loadList()
const tip = '请确认是否删除所选品牌?' },
this.$confirm(tip, '提示', { resetQuery() {
confirmButtonText: '确定', this.queryParams = {
cancelButtonText: '取消', current: 1,
type: 'warning' size: 10,
}).then(() => { total: 0,
const loading = this.$loading({ params: {
lock: true, name: ''
text: 'Loading', }
spinner: 'el-icon-loading', }
background: 'rgba(0, 0, 0, 0.7)' this.loadList()
}) },
req.deleteGoods(row.sid).then((resp) => { toAdd() {
loading.close() this.viewState = 2
if (resp.success) { this.$refs['divadd'].showAdd()
this.$message({ },
type: 'success',
message: resp.msg, doClose() {
showClose: true this.$store.dispatch('tagsView/delView', this.$route)
}) this.$router.go(-1)
this.loadList() },
} else { toRelevancy(row) {
// resp.code this.viewState = 3
} this.$refs['divadd'].showEdit(row)
}).catch(e => { },
loading.close() doDel() {
})
}).catch(() => {}) if (this.sids.length > 0) {
}, const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
resetState() { this.$confirm(tip, '提示', {
this.viewState = 1 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
},
enableChange(sid, state) { enableChange(sid, state) {
console.log('sid', sid) console.log('sid', sid)
console.log('state', state) console.log('state', state)
@ -254,8 +269,8 @@
console.log(e) console.log(e)
}) })
}, },
} }
} }
</script> </script>
<style scoped> <style scoped>
</style> </style>

11
yxt-as-ui/src/views/warehouse/warehouseAreaType/warehouseAreaTypeAdd.vue

@ -44,6 +44,9 @@
sid: '', sid: '',
warehouseAreaTypeName: '', warehouseAreaTypeName: '',
remarks: '', remarks: '',
useOrgSid: window.sessionStorage.getItem('departmentSid'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
}, },
} }
@ -70,8 +73,12 @@
handleReturn(isreload) { handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist') if (isreload === 'true') this.$emit('reloadlist')
this.formobj = { this.formobj = {
sid: '', sid: '',
remarks: '', warehouseAreaTypeName: '',
remarks: '',
useOrgSid: window.sessionStorage.getItem('departmentSid'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
userSid: window.sessionStorage.getItem('userSid'),
} }
this.$emit('doback') this.$emit('doback')
}, },

1
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillDto.java

@ -18,7 +18,6 @@ public class WmsAnsBillDto {
private String sid; private String sid;
private String createBySid; private String createBySid;
private String orgPath;
@ApiModelProperty("外部单号(业务单据编号)") @ApiModelProperty("外部单号(业务单据编号)")
private String sourceBillNo; private String sourceBillNo;

2
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillMapper.java

@ -21,4 +21,6 @@ public interface WmsAnsBillMapper extends BaseMapper<WmsAnsBill> {
IPage<WmsAnsBillVo> listPages(IPage<WmsAnsBill> page, @Param(Constants.WRAPPER) QueryWrapper<WmsAnsBill> qw); IPage<WmsAnsBillVo> listPages(IPage<WmsAnsBill> page, @Param(Constants.WRAPPER) QueryWrapper<WmsAnsBill> qw);
WmsAnsDetailsVo details(String sid); WmsAnsDetailsVo details(String sid);
String selectNum(String bill);
} }

8
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillMapper.xml

@ -45,4 +45,12 @@
from wms_ans_bill wab from wms_ans_bill wab
where sid = #{sid} where sid = #{sid}
</select> </select>
<select id="selectNum" resultType="java.lang.String">
select RIGHT(billNo, 4)
from wms_ans_bill
where billNo LIKE concat(#{bill}, '%')
order by id desc
limit 1
</select>
</mapper> </mapper>

25
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillService.java

@ -13,6 +13,10 @@ import com.yxt.wms.biz.inventory.wmsansbilldetail.*;
import com.yxt.wms.biz.inventory.wmsreceiptbill.WmsReceiptBill; import com.yxt.wms.biz.inventory.wmsreceiptbill.WmsReceiptBill;
import com.yxt.wms.biz.inventory.wmsreceiptbill.WmsReceiptBillQuery; import com.yxt.wms.biz.inventory.wmsreceiptbill.WmsReceiptBillQuery;
import com.yxt.wms.biz.inventory.wmsreceiptbill.WmsReceiptBillVo; import com.yxt.wms.biz.inventory.wmsreceiptbill.WmsReceiptBillVo;
import com.yxt.wms.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.wms.feign.portal.sysorganization.SysOrganizationVo;
import com.yxt.wms.utils.BillNo;
import com.yxt.wms.utils.Rule;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -29,6 +33,8 @@ public class WmsAnsBillService extends MybatisBaseService<WmsAnsBillMapper, WmsA
@Autowired @Autowired
private WmsAnsBillDetailService wmsAnsBillDetailService; private WmsAnsBillDetailService wmsAnsBillDetailService;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
public ResultBean<String> saveOrUpdateBill(WmsAnsBillDto dto) { public ResultBean<String> saveOrUpdateBill(WmsAnsBillDto dto) {
ResultBean<String> rb = ResultBean.fireFail(); ResultBean<String> rb = ResultBean.fireFail();
@ -44,6 +50,8 @@ public class WmsAnsBillService extends MybatisBaseService<WmsAnsBillMapper, WmsA
} else { } else {
return rb.setMsg("单据明细不能为空"); return rb.setMsg("单据明细不能为空");
} }
String billNo = getApplyCode(wmsAnsBill.getCreateOrgSid());
wmsAnsBill.setBillNo(billNo);
baseMapper.insert(wmsAnsBill); baseMapper.insert(wmsAnsBill);
} else { } else {
@ -65,6 +73,23 @@ public class WmsAnsBillService extends MybatisBaseService<WmsAnsBillMapper, WmsA
return rb.success().setData(sid); return rb.success().setData(sid);
} }
private String getApplyCode(String createOrgSid) {
ResultBean<SysOrganizationVo> resultBean1 = sysOrganizationFeign.fetchBySid(createOrgSid);
String orgCode = resultBean1.getData().getOrgCode();
BillNo b = new BillNo();
b.setOrgCode(orgCode);
b.setBillType("YGDHTZD");
String bill = Rule.getBill(b);
String i = baseMapper.selectNum(bill);
String billNo = "";
if (org.apache.commons.lang3.StringUtils.isNotBlank(i)) {
billNo = Rule.getBillNo(bill, Integer.valueOf(i).intValue());
} else {
billNo = Rule.getBillNo(bill, 0);
}
return billNo;
}
public PagerVo<WmsAnsBillDetailVo> listPage(PagerQuery<WmsAnsBillDetailQuery> pagerQuery) { public PagerVo<WmsAnsBillDetailVo> listPage(PagerQuery<WmsAnsBillDetailQuery> pagerQuery) {
WmsAnsBillDetailQuery query = pagerQuery.getParams(); WmsAnsBillDetailQuery query = pagerQuery.getParams();
QueryWrapper<WmsAnsBillDetail> qw = new QueryWrapper<>(); QueryWrapper<WmsAnsBillDetail> qw = new QueryWrapper<>();

22
yxt-wms-biz/src/main/java/com/yxt/wms/utils/BillNo.java

@ -0,0 +1,22 @@
package com.yxt.wms.utils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @Author dimengzhe
* @Date 2022/7/1 9:46
* @Description
*/
@Data
public class BillNo implements Serializable {
private static final long serialVersionUID = 1598887042562656350L;
@ApiModelProperty(value = "单据名称首字母")
private String billType;
@ApiModelProperty(value = "分公司编码")
private String orgCode;
}

15
yxt-wms-biz/src/main/java/com/yxt/wms/utils/Rule.java

@ -1,5 +1,8 @@
package com.yxt.wms.utils; package com.yxt.wms.utils;
import cn.hutool.core.date.DateUtil;
import org.springframework.util.StringUtils;
/** /**
* @description: * @description:
* @author: dimengzhe * @author: dimengzhe
@ -12,4 +15,16 @@ public class Rule {
String billNo = bill + num; String billNo = bill + num;
return billNo; return billNo;
} }
public static String getBill(BillNo b) {
String billType = b.getBillType();
String orgCode = b.getOrgCode();
String date = DateUtil.format(DateUtil.date(), "yyyyMM");
String bill = billType;
if (!StringUtils.isEmpty(orgCode)) {
bill = bill + orgCode;
}
bill = bill + date;
return bill;
}
} }

Loading…
Cancel
Save