Browse Source

7.19

master
fengdong777 2 years ago
parent
commit
3414b62c90
  1. 515
      base-ui/src/views/approvalCenter/alreadyHandledWork.vue
  2. 2
      supervise-crm-ui/.env.development
  3. 6
      supervise-crm-ui/src/api/project/project.js
  4. 16
      supervise-crm-ui/src/layout/components/Sidebar/index.vue
  5. 71
      supervise-crm-ui/src/main.js
  6. 1
      supervise-crm-ui/src/views/project/projectAdd.vue
  7. 31
      supervise-crm-ui/src/views/project/projectInfo.vue
  8. 212
      warehousing-system/project_web_ui/src/views/component/initial_value/add/locationAdd.vue
  9. 163
      warehousing-system/project_web_ui/src/views/component/initial_value/add/productA.vue
  10. 208
      warehousing-system/project_web_ui/src/views/component/initial_value/add/productAdd.vue
  11. 72
      warehousing-system/project_web_ui/src/views/component/initial_value/location.vue
  12. 150
      warehousing-system/project_web_ui/src/views/component/initial_value/product.vue
  13. 2
      warehousing-system/project_web_ui/src/views/component/initial_value/supplier.vue
  14. 34
      warehousing-system/project_web_ui/src/views/component/instorehouse/putIn.vue
  15. 37
      warehousing-system/project_web_ui/src/views/component/instorehouse/receiving.vue
  16. 140
      warehousing-system/project_web_ui/src/views/component/outStorehouseManagement/picking.vue
  17. 3
      warehousing-system/project_web_ui/src/views/component/pictureList/Map.vue
  18. 34
      warehousing-system/project_web_ui/src/views/component/pictureList/pictureList.vue
  19. 166
      warehousing-system/project_web_ui/src/views/component/storehouseManage/remove.vue
  20. 161
      warehousing-system/project_web_ui/src/views/component/storehouseManage/shelves.vue

515
base-ui/src/views/approvalCenter/alreadyHandledWork.vue

@ -1,74 +1,168 @@
<template>
<div class="app-container">
<div style="margin-left:16px;">
<div style="margin-left: 16px">
<div v-show="viewState == 1">
<button-bar ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<button-bar
ref="btnbar"
:btndisabled="btndisabled"
@btnhandle="btnHandle"
/>
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">
{{ searchxianshitit }}
</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="queryParams" :inline="true" :model="queryParams" class="tab-header">
<el-form
ref="queryParams"
:inline="true"
:model="queryParams"
class="tab-header"
>
<el-form-item label="消息类型">
<el-select v-model="queryParams.params.messageKey" filterable placeholder="请选择" clearable>
<el-option v-for="item in state_list" :key="item.dictKey" :label="item.dictValue"
:value="item.dictKey"></el-option>
<el-select
v-model="queryParams.params.messageKey"
filterable
placeholder="请选择"
clearable
>
<el-option
v-for="item in state_list"
:key="item.dictKey"
:label="item.dictValue"
:value="item.dictKey"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="消息来源">
<el-input v-model="queryParams.params.messageSource" placeholder="" clearable />
<el-input
v-model="queryParams.params.messageSource"
placeholder=""
clearable
/>
</el-form-item>
<el-form-item label="消息标题">
<el-input v-model="queryParams.params.messageTitle" placeholder="" clearable />
<el-input
v-model="queryParams.params.messageTitle"
placeholder=""
clearable
/>
</el-form-item>
<el-form-item label="发送人">
<el-input v-model="queryParams.params.messageSender" placeholder="" clearable />
<el-input
v-model="queryParams.params.messageSender"
placeholder=""
clearable
/>
</el-form-item>
<el-form-item label="接收日期">
<el-date-picker v-model="queryParams.params.messagStartDate" type="date" clearable
value-format="yyyy-MM-dd" placeholder="选择日期" />
<el-date-picker
v-model="queryParams.params.messagStartDate"
type="date"
clearable
value-format="yyyy-MM-dd"
placeholder="选择日期"
/>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="queryParams.params.messagEndDate" type="date" clearable
value-format="yyyy-MM-dd" placeholder="选择日期" />
<el-date-picker
v-model="queryParams.params.messagEndDate"
type="date"
clearable
value-format="yyyy-MM-dd"
placeholder="选择日期"
/>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" 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 class="btn" style="text-align: center">
<el-button
type="primary"
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>
<!-- Start 项目列表头部 -->
<div class="listtop" style="margin-top: 30px;">
<div class="tit" >消息列表</div>
<!-- Start 头部 -->
<div class="listtop" style="margin-top: 30px">
<div class="tit">消息列表</div>
</div>
<!-- End 项目列表头部 -->
<!-- Start 项目列表 -->
<div class="">
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"
@selection-change="handleSelectionChange">
<el-table
v-loading="tableLoading"
:data="dataList"
border
style="width: 100%"
@selection-change="handleSelectionChange"
>
<el-table-column width="50" type="selection" align="center" />
<el-table-column width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column prop="messageSender" width="180" label="发送人" align="center" />
<el-table-column prop="messageTitle" width="180" label="标题" align="center">
<el-table-column
width="60"
label="序号"
type="index"
:index="indexMethod"
align="center"
/>
<el-table-column
prop="messageSender"
width="180"
label="发送人"
align="center"
/>
<el-table-column
prop="messageTitle"
width="180"
label="标题"
align="center"
>
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toInfo(scope.row)">查看</el-button>
<el-button
type="primary"
size="mini"
@click="toInfo(scope.row)"
>查看</el-button
>
</template>
</el-table-column>
<el-table-column prop="messagStartDate" label="日期" align="center" />
<el-table-column prop="messageType" label="消息类别" align="center" />
<el-table-column prop="messageSource" label="消息来源" align="center" />
<el-table-column
prop="messagStartDate"
label="日期"
align="center"
/>
<el-table-column
prop="messageType"
label="消息类别"
align="center"
/>
<el-table-column
prop="messageSource"
label="消息来源"
align="center"
/>
</el-table>
</div>
<!-- End 项目列表 -->
<div class="pages">
<div class="tit" />
<!-- 翻页 -->
<pagination v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current"
:limit.sync="queryParams.size" @pagination="loadList" />
<pagination
v-show="dataList.length > 0"
:total="queryParams.total"
:page.sync="queryParams.current"
:limit.sync="queryParams.size"
@pagination="loadList"
/>
</div>
</div>
</div>
</div>
@ -76,194 +170,205 @@
</template>
<script>
import req from '@/api/supervise/thresholdanalysis'
import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import * as echarts from 'echarts';
import req from "@/api/supervise/thresholdanalysis";
import ButtonBar from "@/components/ButtonBar";
import Pagination from "@/components/pagination";
import pageye from "@/components/pagination/pageye";
import * as echarts from "echarts";
export default {
components: {
ButtonBar,
Pagination,
pageye
},
// components: { },
data() {
return {
btndisabled: false,
viewState: 1, // 1 2 3 4
isSearchShow: false,
searchxianshitit: '显示查询条件',
tableLoading: false,
tableKey: 0,
// 1.,2.3.
state_list: [{
dictKey: 1,
dictValue: '全部'
},
{
dictKey: 2,
dictValue: '常规商品'
}, {
dictKey: 3,
dictValue: '烟草'
}
],
btnList: [ //
{
type: 'danger',
size: 'small',
icon: 'del',
btnKey: 'doDel',
btnLabel: '删除'
},
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
queryParams: {
current: 1,
size: 10,
total: 0,
params: {
customerSid: '',
messageKey: "",
messageSource: "",
messageTitle: '',
messageSender: "",
messagStartDate: "",
messagEndDate: ""
}
export default {
components: {
ButtonBar,
Pagination,
pageye,
},
// components: { },
data() {
return {
btndisabled: false,
viewState: 1, // 1 2 3 4
isSearchShow: false,
searchxianshitit: "显示查询条件",
tableLoading: false,
tableKey: 0,
// 1.,2.3.
state_list: [
{
dictKey: 1,
dictValue: "全部",
},
{
dictKey: 2,
dictValue: "常规商品",
},
{
dictKey: 3,
dictValue: "烟草",
},
],
btnList: [
//
{
type: "danger",
size: "small",
icon: "del",
btnKey: "doDel",
btnLabel: "删除",
},
{
type: "info",
size: "small",
icon: "cross",
btnKey: "doClose",
btnLabel: "关闭",
},
nowDate: new Date().getFullYear() + "-" + (new Date().getMonth() + 1) + "-" + new Date().getDate(),
dataList: [{
],
queryParams: {
current: 1,
size: 10,
total: 0,
params: {
customerSid: "",
messageKey: "",
messageSource: "",
messageTitle: "",
messageSender: "",
messagStartDate: "",
messagEndDate: "",
},
},
nowDate:
new Date().getFullYear() +
"-" +
(new Date().getMonth() + 1) +
"-" +
new Date().getDate(),
dataList: [
{
sid: "1",
messageSender: '发送人1',
messageTitle: '标题1',
messagStartDate: '开始日期1',
messageType: '消息类型1',
messageSource: '消息来源1',
}, ],
messageSender: "发送人1",
messageTitle: "标题1",
messagStartDate: "开始日期1",
messageType: "消息类型1",
messageSource: "消息来源1",
},
],
};
},
mounted() {
this.$refs["btnbar"].setButtonList(this.btnList);
},
created() {
// this.loadList()
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow;
if (this.isSearchShow) {
this.searchxianshitit = "隐藏查询条件";
} else {
this.searchxianshitit = "显示查询条件";
}
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
created() {
// this.loadList()
btnHandle(btnKey) {
switch (btnKey) {
case "toAdd":
this.toAdd();
break;
case "doDel":
this.doDel();
break;
case "doClose":
this.doClose();
break;
default:
break;
}
},
methods: {
//
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
let _this = this
req.listPage(_this.queryParams).then((resp) => {
_this.tableLoading = false
loadList() {
this.tableLoading = true;
let _this = this;
req
.listPage(_this.queryParams)
.then((resp) => {
_this.tableLoading = false;
if (resp.success) {
console.log('11111', resp.data)
const data = resp.data
_this.queryParams.total = data.total
_this.thresholdAnalysisTable = data.thresholdAnalysisTable
_this.tableLoading = false
console.log("11111", resp.data);
const data = resp.data;
_this.queryParams.total = data.total;
_this.thresholdAnalysisTable = data.thresholdAnalysisTable;
_this.tableLoading = false;
} else {
// resp.code
_this.thresholdAnalysisTable = []
_this.queryParams.total = 0
_this.thresholdAnalysisTable = [];
_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.nowDate = this.queryParams.date;
this.loadList();
},
resetQuery() {
this.queryParams = {
current: 1,
size: 10,
total: 0,
params: {
customerSid: '',
customerSid: '',
messageKey: "",
messageSource: "",
messageTitle: '',
messageSender: "",
messagStartDate: "",
messagEndDate: ""
}
}
this.loadList()
},
//
doBuild() {
this.$message({
showClose: true,
type: 'success',
message: '功能暂未完善...'
})
},
//
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}
.catch(() => {
_this.tableLoading = false;
});
},
//
indexMethod(index) {
var pagestart = (this.queryParams.current - 1) * this.queryParams.size;
var pageindex = index + 1 + pagestart;
return pageindex;
},
dosearch() {
this.nowDate = this.queryParams.date;
this.loadList();
},
resetQuery() {
this.queryParams = {
current: 1,
size: 10,
total: 0,
params: {
customerSid: "",
customerSid: "",
messageKey: "",
messageSource: "",
messageTitle: "",
messageSender: "",
messagStartDate: "",
messagEndDate: "",
},
};
this.loadList();
},
//
doBuild() {
this.$message({
showClose: true,
type: "success",
message: "功能暂未完善...",
});
},
//
doClose() {
this.$store.dispatch("tagsView/delView", this.$route);
this.$router.go(-1);
},
},
};
</script>
<style>
.current-data {
width: 100%;
height: 500px;
}
.current-data .upper {
width: 100%;
height: 100px;
}
.current-data {
width: 100%;
height: 500px;
}
.current-data .lower {
width: 100%;
height: 600px;
float: left;
margin-left: 10px;
.current-data .upper {
width: 100%;
height: 100px;
}
}
.current-data .lower {
width: 100%;
height: 600px;
float: left;
margin-left: 10px;
}
</style>

2
supervise-crm-ui/.env.development

@ -5,5 +5,5 @@ ENV = 'development'
VUE_APP_BASE_API = '/api'
## 配置测试和本地开发时的 接口地址
VUE_APP_URL = "http://192.168.3.173:8112"
VUE_APP_URL = "http://192.168.1.193:8112"
##VUE_APP_URL = "http://8.130.39.13:8112"

6
supervise-crm-ui/src/api/project/project.js

@ -90,5 +90,11 @@ export default {
method: 'delete'
})
},
getStorehouseBySid: function() {
return request({
url: '/crm/v1/projectinformation/getStorehouseBySid/1',
method: 'get'
})
},
}

16
supervise-crm-ui/src/layout/components/Sidebar/index.vue

@ -79,12 +79,12 @@
methods: {
//
postHuoquyonghu() {
var token = getStorage()
loginDetails(token).then((response) => {
console.log('resss', response)
if (response.code === '200') {
this.YongHuid = response.data
this.params.userSid = this.YongHuid.sid
// var token = getStorage()
// loginDetails(token).then((response) => {
// console.log('resss', response)
// if (response.code === '200') {
// this.YongHuid = response.data
// this.params.userSid = this.YongHuid.sid
getrolemenus(this.params).then((res) => {
console.log('userRoles', res.data)
const userRoles = this.resRouter(res.data)
@ -94,8 +94,8 @@
hidden: true
})
return userRoles
})
}
// })
// }
})
},
resRouter(menus) {

71
supervise-crm-ui/src/main.js

@ -43,14 +43,14 @@ VueAMap.initAMapApiLoader({
Vue.config.productionTip = false
let token = null
token = GetQueryString('token')
if (token) {
setStorage(token)
const href = window.location.href
// href = href.split(`token=${token}`)[0]
// window.location.href = href.slice(0, href.length - 1)
}
// let token = null
// token = GetQueryString('token')
// if (token) {
// setStorage(token)
// const href = window.location.href
// // href = href.split(`token=${token}`)[0]
// // window.location.href = href.slice(0, href.length - 1)
// }
var one = window.location.href.indexOf('&organizationData') + 18
if (parseInt(one) > 18) {
@ -65,66 +65,13 @@ if (parseInt(one) > 18) {
// 获取登录用户信息
function getUserInfo() {
return request({
baseURL: '/api',
url: '/portal/v1/sysuser/loginDetails',
method: 'post',
headers: {
'Content-Type': 'application/json'
}
}).then(rep => {
const data = rep.data
const user = {
roleSid: data.roleSid,
name: data.name,
userName: data.userName,
departmentName: data.departmentName, // 部门名称
departmentSid: data.departmentSid, // 部门sid
isAdmin: data.isAdmin,
staffSid: data.staffSid, // 业务员sid
userSid: data.sid,
orgSid: data.organizationSid, // 单位sid
Orgname: data.organizationName,
dwjb: data.dwjb,
orgNamePath: data.orgNamePath, // 使用组织全路径名称
orgSidPath: data.orgSidPath // 使用组织全路径Sid
}
// 结果存入缓存
window.sessionStorage.setItem('staffSid', user.staffSid)
window.sessionStorage.setItem('userSid', user.userSid)
window.sessionStorage.setItem('Orgname', user.Orgname)
window.sessionStorage.setItem('orgSid', user.orgSid)
window.sessionStorage.setItem('departmentName', user.departmentName)
window.sessionStorage.setItem('name', user.name)
window.sessionStorage.setItem('user', user)
window.sessionStorage.setItem('departmentName', user.departmentName)
window.sessionStorage.setItem('departmentSid', user.departmentSid)
window.sessionStorage.setItem('orgNamePath', user.orgNamePath)
window.sessionStorage.setItem('orgSidPath', user.orgSidPath)
new Vue({
el: '#app',
router,
store,
render: h => h(App)
})
})
}
getUserInfo()
function GetQueryString(name) {
var one = window.location.href.indexOf('?token=') + 7
if (one < 7) { return null }
var two = window.location.href.lastIndexOf('&') // + 1
var data = window.location.href.substr(one)
if (two > one) {
data = window.location.href.slice(one, two)
console.log('token', data)
}
if (data) {
return data
}
return null
// var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)')
// var r = window.location.search.substr(1).match(reg)
// if (r != null) return unescape(r[2]); return null
}

1
supervise-crm-ui/src/views/project/projectAdd.vue

@ -216,7 +216,6 @@
</el-col>
</el-row>
</el-form>
</div>

31
supervise-crm-ui/src/views/project/projectInfo.vue

@ -181,7 +181,20 @@
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">关联仓库</span>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item class="trightb_item">
<div v-for="(item,i) in temps" :key="i">
<img :src="item.picUrl" alt="">
</div>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
@ -196,10 +209,13 @@
name: 'CustomerManagementInfo',
data() {
return {
temp: {} //
temp: {}, //
temps:{},
}
},
created() {
this.getStorehouseBySid() //
},
methods: {
showAdd(sid) {
req.fetchBySid(sid)
@ -216,7 +232,14 @@
//
handleReturn() {
this.$emit('doback')
}
},
getStorehouseBySid(){
req.getStorehouseBySid().then((res) => {
if (res.success) {
this.temps=res.data
}
})
},
}
}
</script>

212
warehousing-system/project_web_ui/src/views/component/initial_value/add/locationAdd.vue

@ -0,0 +1,212 @@
<template>
<div>
<div class="tab-header webtop">
<!-- 标题 -->
<div>{{ viewTitle }}</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-card class="box-card">
<div class="item">
<span class="item_text">货位名称</span>
<el-input v-model="locationForm.name" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">货位编号</span>
<el-input v-model="locationForm.locationId" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">货位类型</span>
<el-select v-model="locationForm.type" class="item_input" placeholder="请选择" >
<el-option
v-for="(type,i) in typeList"
:key="i"
:label="type.type"
:value="type.type"
>
</el-option>
</el-select>
</div>
<div class="item">
<span class="item_text">所属仓库</span>
<el-select v-model="locationForm.storehouse" class="item_input" placeholder="请选择" >
<el-option
v-for="(storehouse,i) in storehouseList"
:key="i"
:label="storehouse.name"
:value="storehouse.name">
</el-option>
</el-select>
</div>
</el-card>
</div>
</div>
</template>
<script>
export default {
data() {
return {
submitdisabled: false,
locationForm: {
name: "",
locationId: "",
type: "",
status: "",
storehouse: ""
},
viewTitle: "【新增】仓库信息",
storehouseList: [],
typeList: [],
queryInfo: {
total: 0,
size: 10,
current: 1,
params: {
simpleName:''
},
},
}
},
created() {
this.getStorehouse()
this.geType()
},
methods: {
saveOrUpdate() {
if (this.viewTitle === "【新增】仓库信息") return this.addLocation()
if (this.viewTitle === "【修改】仓库信息") {
this.updataLocation()
}
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.clearList()
this.$emit('doback')
},
showAdd() {
this.viewTitle = "【新增】仓库信息";
this.clearList()
},
clearList(){
this.locationForm = {
name: "",
number: "",
code: "",
tankNumber:"",
tankSid:"",
}
},
async getStorehouse () {
const { data: result } = await this.$http.get('/v1/shstorehouse/listAll')
if (result.code == 200){
this.storehouseList = result.data
}
// const { data: result } = await this.$http.post(
// "/v1/shstorehouse/listPage",
// { params: this.queryInfo }
// );
// if (result.code == 200) this.total = result.data.total;
// this.storehouseList = result.data.records;
},
async geType () {
const { data: result } = await this.$http.get('/location/getType')
if (result.status !== 200) return this.$message.error('获取类型列表失败')
this.typeList = result.data
},
showEdit(row) {
this.viewTitle = "【修改】仓库信息";
this.locationForm=row
},
async addLocation () {
this.locationForm.status = '空闲'
const { data: result } = await this.$http.post('/location/addLocation', this.locationForm)
if (result.status !== 200) return this.$message.error('添加货位失败')
this.$message.success('成功添加货位')
this.handleReturn('true')
},
async updataLocation () {
const { data: result } = await this.$http.put('/location/updataLocation', this.locationForm)
if (result.status !== 200) return this.$message.error('修改货位失败')
this.$message.success('更新成功')
this.handleReturn('true')
},
}
}
</script>
<style lang="scss">
.box-card {
margin-left: 60px;
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 {
color: #5E94FF;
margin-left: 20px;
font-size: 16px;
text-decoration: underline;
}
}
}
}
</style>

163
warehousing-system/project_web_ui/src/views/component/initial_value/add/productA.vue

@ -0,0 +1,163 @@
<template>
<div>
<div class="tab-header webtop">
<!-- 标题 -->
<div>{{ viewTitle }}</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-card class="box-card">
<div class="item">
<span class="item_text">价值</span>
<el-input v-model="locationForm.value" class="item_input" clearable></el-input>
</div>
<div class="item">
<span class="item_text">净重</span>
<el-input v-model="locationForm.netWeight" class="item_input" clearable></el-input>
</div>
<div class="item">
<span class="item_text">毛重</span>
<el-input v-model="locationForm.roughWeight" class="item_input" clearable></el-input>
</div>
<div class="item">
<span class="item_text">有效天数</span>
<el-input v-model="locationForm.effectiveDays" class="item_input" clearable></el-input>
</div>
<div class="item">
<span class="item_text">备注</span>
<el-input v-model="locationForm.remarks" class="item_input" clearable></el-input>
</div>
</el-card>
</div>
</div>
</template>
<script>
export default {
data() {
return {
submitdisabled: false,
disabledCode: false,
locationForm: {
barCode: "",
value: "",
netWeight: "",
roughWeight: "",
effectiveDays: "",
remarks: "",
},
viewTitle: "【修改】产品信息",
}
},
created() {
},
methods: {
saveOrUpdate() {
if (this.viewTitle === "【新增】产品信息") return this.addProduct()
if (this.viewTitle === "【修改】产品信息") {
this.updataProduct()
}
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.clearList()
this.$emit('doback')
},
clearList(){
this.locationForm = {
barCode: "",
value: "",
netWeight: "",
roughWeight: "",
effectiveDays: "",
remarks: "",
}
},
showEdit(row) {
this.viewTitle = "【修改】产品信息";
this.locationForm=row
},
async updataProduct () {
const { data: result } = await this.$http.put('/product/updataProduct', this.locationForm)
if (result.status !== 200) return this.$message.error('更新数据失败')
this.$message.success('更新成功')
this.handleReturn('true')
},
}
}
</script>
<style lang="scss">
.box-card {
margin-left: 60px;
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 {
color: #5E94FF;
margin-left: 20px;
font-size: 16px;
text-decoration: underline;
}
}
}
}
</style>

208
warehousing-system/project_web_ui/src/views/component/initial_value/add/productAdd.vue

@ -0,0 +1,208 @@
<template>
<div>
<div class="tab-header webtop">
<!-- 标题 -->
<div>{{ viewTitle }}</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-card class="box-card">
<div class="item">
<span class="item_text">条码</span>
<el-input v-model="locationForm.barCode" :disabled="disabledCode" placeholder="" class="item_inputs" clearable />
<el-button type="primary" size="small" @click="createBarCode" :disabled="disabledCode">自动</el-button>
</div>
<div class="item">
<span class="item_text">商品名</span>
<el-input v-model="locationForm.name" :disabled="disabledCode" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">别名</span>
<el-input v-model="locationForm.anotherName" class="item_input" clearable></el-input>
</div>
<div class="item">
<span class="item_text">价值</span>
<el-input v-model="locationForm.value" class="item_input" clearable></el-input>
</div>
<div class="item">
<span class="item_text">净重</span>
<el-input v-model="locationForm.netWeight" class="item_input" clearable></el-input>
</div>
<div class="item">
<span class="item_text">毛重</span>
<el-input v-model="locationForm.roughWeight" class="item_input" clearable></el-input>
</div>
<div class="item">
<span class="item_text">有效天数</span>
<el-input v-model="locationForm.effectiveDays" class="item_input" clearable></el-input>
</div>
<div class="item">
<span class="item_text">备注</span>
<el-input v-model="locationForm.remarks" class="item_input" clearable></el-input>
</div>
</el-card>
</div>
</div>
</template>
<script>
export default {
data() {
return {
submitdisabled: false,
disabledCode: false,
locationForm: {
barCode: "",
name: "",
anotherName: "",
value: "",
netWeight: "",
roughWeight: "",
effectiveDays: "",
remarks: "",
},
viewTitle: "【新增】产品信息",
}
},
created() {
},
methods: {
saveOrUpdate() {
if (this.viewTitle === "【新增】产品信息") return this.addProduct()
if (this.viewTitle === "【修改】产品信息") {
this.updataProduct()
}
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.clearList()
this.$emit('doback')
},
showAdd() {
this.viewTitle = "【新增】产品信息";
this.disabledCode=false
this.clearList()
},
clearList(){
this.locationForm = {
barCode: "",
name: "",
anotherName: "",
value: "",
netWeight: "",
roughWeight: "",
effectiveDays: "",
remarks: "",
}
},
showEdit(row) {
this.viewTitle = "【修改】产品信息";
this.disabledCode=true
this.locationForm=row
},
async updataProduct () {
this.locationForm = {
name: "",
anotherName: "",
}
const { data: result } = await this.$http.put('/product/updataProduct', this.locationForm)
if (result.status !== 200) return this.$message.error('更新数据失败')
this.$message.success('更新成功')
this.handleReturn('true')
},
async addProduct () {
const { data: result } = await this.$http.post('/product/addProduct', this.addProductForm)
if (result.status !== 200) return this.$message.error('添加产品失败')
this.$message.success('添加产品成功')
this.handleReturn('true')
},
createBarCode () {
var now = new Date()
var nowstr = now.getTime()
this.locationForm.barCode = 'P' + now.getTime()
},
}
}
</script>
<style lang="scss">
.box-card {
margin-left: 60px;
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_inputs {
flex: 4;
font-size: 16px;
margin-left: 10px;
margin-right: 28px;
}
.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 {
color: #5E94FF;
margin-left: 20px;
font-size: 16px;
text-decoration: underline;
}
}
}
}
</style>

72
warehousing-system/project_web_ui/src/views/component/initial_value/location.vue

@ -1,7 +1,7 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<button-bar ref="btnbar" view-title="产品管理" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<button-bar ref="btnbar" view-title="库位管理" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="isSearchShow = !isSearchShow">{{ isSearchShow ? '隐藏查询条件' : '显示查询条件' }}</el-button>
@ -72,44 +72,7 @@
</div>
</div>
<el-dialog :title="title" :visible.sync="locationDialogVisible" width="65%" @close="closeLocationDialog">
<el-form :model="locationForm" :rules="rules" ref="locationRuleForm" label-width="100px" class="demo-ruleForm">
<el-form-item label="货位名称" prop="name">
<el-input v-model="locationForm.name" ></el-input>
</el-form-item>
<el-form-item label="货位编号" prop="locationId">
<el-input v-model="locationForm.locationId" :disabled= "locationIdAble" ></el-input>
</el-form-item>
<el-form-item label="货位类型" prop="type">
<el-select v-model="locationForm.type" placeholder="请选择" >
<el-option
v-for="(type,i) in typeList"
:key="i"
:label="type.type"
:value="type.type"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="所属仓库" prop="storehouse">
<el-select v-model="locationForm.storehouse" placeholder="请选择" >
<el-option
v-for="storehouse in storehouseList"
:key="storehouse.name"
:label="storehouse.name"
:value="storehouse.name">
</el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="locationDialogVisible = false"> </el-button>
<el-button type="primary" @click="operationLocation"> </el-button>
</div>
</el-dialog>
<divadd v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="getLocationList" />
</div>
</template>
@ -117,11 +80,13 @@
import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import divadd from '@/views/component/initial_value/add/locationAdd.vue'
export default {
components: {
ButtonBar,
Pagination,
pageye,
divadd
},
data () {
return {
@ -227,30 +192,9 @@ export default {
var pageindex = index + 1 + pagestart;
return pageindex;
},
addLocationDialog () {
this.title = '新增货位'
this.locationIdAble = false
this.locationDialogVisible = true
},
updataLocationdialog (location) {
this.locationForm.name = location.name
this.locationForm.locationId = location.locationId
this.locationForm.type = location.type
this.locationForm.status = location.status
this.locationForm.storehouse = location.storehouse
this.title = '修改货位'
this.locationIdAble = true
this.locationDialogVisible = true
},
addLocation () {
this.$refs.locationRuleForm.validate(async valid => {
this.locationForm.status = '空闲'
const { data: result } = await this.$http.post('/location/addLocation', this.locationForm)
if (result.status !== 200) return this.$message.error('添加货位失败')
this.$message.success('成功添加货位')
this.getLocationList()
this.locationDialogVisible = false
})
updataLocationdialog (row) {
this.viewState = 3
this.$refs['divadd'].showEdit(row)
},
async updataLocation () {
const { data: result } = await this.$http.put('/location/updataLocation', this.locationForm)
@ -290,7 +234,7 @@ export default {
},
toAdd() {
this.viewState = 2
// this.$refs['divadd'].showAdd()
this.$refs['divadd'].showAdd()
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)

150
warehousing-system/project_web_ui/src/views/component/initial_value/product.vue

@ -113,74 +113,7 @@
</div>
</div>
</div>
<el-dialog title="新增商品" :visible.sync="addProductDialogVisible" width="65%" @close="closeAddProductDialog">
<el-form :model="addProductForm" :rules="rules" ref="addProductRuleForm" label-width="100px" class="demo-ruleForm">
<el-form-item label="条码" prop="barCode">
<el-row :gutter="15">
<el-col :span="22">
<el-input v-model="addProductForm.barCode"></el-input>
</el-col>
<el-col :span="1">
<el-button type="primary" @click="createBarCode">自动</el-button>
</el-col>
</el-row>
</el-form-item>
<el-form-item label="商品名" prop="name">
<el-input v-model="addProductForm.name" ></el-input>
</el-form-item>
<el-form-item label="别名" prop="anotherName">
<el-input v-model="addProductForm.anotherName"></el-input>
</el-form-item>
<el-form-item label="价值" prop="value">
<el-input v-model="addProductForm.value"></el-input>
</el-form-item>
<el-form-item label="净重" prop="netWeight">
<el-input v-model="addProductForm.netWeight"></el-input>
</el-form-item>
<el-form-item label="毛重" prop="roughWeight">
<el-input v-model="addProductForm.roughWeight"></el-input>
</el-form-item>
<el-form-item label="有效天数" prop="effectiveDays">
<el-input v-model="addProductForm.effectiveDays"></el-input>
</el-form-item>
<el-form-item label="备注" prop="remarks">
<el-input v-model="addProductForm.remarks" type="textarea"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="addProductDialogVisible = false"> </el-button>
<el-button type="primary" @click="addProduct"> </el-button>
</div>
</el-dialog>
<el-dialog title="修改商品" :visible.sync="updataProductDialogVisible" width="65%" @close="closeUpdataProductDialog">
<el-form :model="updataProductForm" :rules="rules" ref="updataProductRuleForm" label-width="100px" class="demo-ruleForm">
<el-form-item label="价值" prop="value">
<el-input v-model="updataProductForm.value"></el-input>
</el-form-item>
<el-form-item label="净重" prop="netWeight">
<el-input v-model="updataProductForm.netWeight"></el-input>
</el-form-item>
<el-form-item label="毛重" prop="roughWeight">
<el-input v-model="updataProductForm.roughWeight"></el-input>
</el-form-item>
<el-form-item label="有效天数" prop="effectiveDays">
<el-input v-model="updataProductForm.effectiveDays"></el-input>
</el-form-item>
<el-form-item label="备注" prop="remarks">
<el-input v-model="updataProductForm.remarks"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="updataProductDialogVisible = false"> </el-button>
<el-button type="primary" @click="updataProduct"> </el-button>
</div>
</el-dialog>
<divadd v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="getProductList" />
</div>
</template>
@ -188,11 +121,13 @@
import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import divadd from '@/views/component/initial_value/add/productAdd.vue'
export default {
components: {
ButtonBar,
Pagination,
pageye,
divadd
},
data () {
return {
@ -221,20 +156,20 @@ export default {
remarks: ''
},
btnList: [
{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toAdd',
btnLabel: '新增'
},
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toAdd',
btnLabel: '新增'
},
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
updataProductForm: {
barCode: '',
@ -310,16 +245,6 @@ export default {
this.queryInfo.total = result.data.total
this.productList = result.data.rows
},
addProduct () {
this.$refs.addProductRuleForm.validate(async validate => {
if (!validate) return this.$message.error('请填写必填项')
const { data: result } = await this.$http.post('/product/addProduct', this.addProductForm)
if (result.status !== 200) return this.$message.error('添加商品失败')
this.$message.success('添加商品成功')
this.getProductList()
this.addProductDialogVisible = false
})
},
handleSizeChange (val) {
this.queryInfo.pageSize = val
@ -329,36 +254,9 @@ export default {
this.queryInfo.pageNum = val
this.getProductList()
},
closeAddProductDialog () {
this.$refs.addProductRuleForm.resetFields()
},
closeUpdataProductDialog () {
this.$refs.updataProductRuleForm.resetFields()
},
createBarCode () {
var now = new Date()
var nowstr = now.getTime()
this.addProductForm.barCode = 'P' + now.getTime()
console.log(nowstr)
},
open (product) {
this.updataProductForm.barCode = product.barCode
this.updataProductForm.value = product.value
this.updataProductForm.netWeight = product.netWeight
this.updataProductForm.roughWeight = product.roughWeight
this.updataProductForm.effectiveDays = product.effectiveDays
// this.updataProductForm.warehouse = product.warehouse
this.updataProductForm.remarks = product.remarks
this.updataProductDialogVisible = true
},
updataProduct () {
this.$refs.updataProductRuleForm.validate(async valid => {
const { data: result } = await this.$http.put('/product/updataProduct', this.updataProductForm)
if (result.status !== 200) return this.$message.error('更新数据失败')
this.$message.success('更新成功')
this.updataProductDialogVisible = false
this.getProductList()
})
open (row) {
this.viewState = 3
this.$refs['divadd'].showEdit(row)
},
async deleteProduct (product) {
const result = await this.$confirm('此操作将永久删除' + product.name + ', 是否继续?', '提示', {
@ -372,14 +270,9 @@ export default {
this.getProductList()
this.$message.success('商品删除成功')
},
async getStorehouse () {
const { data: result } = await this.$http.get('/product/getStorehouse')
if (result.status !== 200) return this.$message.error('获取仓库列表失败')
this.storehouseList = result.data
},
toAdd() {
this.viewState = 2
// this.$refs['divadd'].showAdd()
this.$refs['divadd'].showAdd()
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
@ -389,7 +282,6 @@ export default {
mounted () {
this.$refs['btnbar'].setButtonList(this.btnList)
this.getProductList()
this.getStorehouse()
}
}
</script>

2
warehousing-system/project_web_ui/src/views/component/initial_value/supplier.vue

@ -1,7 +1,7 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<button-bar ref="btnbar" view-title="供应商管理" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<button-bar ref="btnbar" view-title="供应商管理" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="isSearchShow = !isSearchShow">{{ isSearchShow ? '隐藏查询条件' : '显示查询条件' }}</el-button>

34
warehousing-system/project_web_ui/src/views/component/instorehouse/putIn.vue

@ -1,9 +1,6 @@
<template>
<div>
<div class="tab-header webtop">
<!-- 标题 -->
<div>入库</div>
</div>
<button-bar ref="btnbar" view-title="入库" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<div class="listconadd">
<el-form :rules="rules"
ref="onPutInRuleForm"
@ -72,9 +69,14 @@
</template>
<script>
import ButtonBar from '@/components/ButtonBar'
export default {
components: {
ButtonBar
},
data() {
return {
btndisabled: false,
user: "",
dingdanId: [],
huoweiId: [],
@ -111,9 +113,27 @@ export default {
{ required: true, message: "请输入源货位编码", trigger: "blur" },
],
},
btnList: [
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
};
},
methods: {
btnHandle(btnKey) {
switch (btnKey) {
case 'doClose': //
this.doClose()
break
default:
break
}
},
async getOptions() {
const { data: result } = await this.$http.post('/purchasenew/listAll', { params: this.queryInfos })
const { data: datas } = await this.$http.get('/location/list', { params: this.queryPamas })
@ -146,9 +166,15 @@ export default {
this.$message.success('操作成功')
this.$refs.onPutInRuleForm.resetFields();
});
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
},
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
this.getOptions();
// this.user = window.sessionStorage.getItem("token").substr(32);
},

37
warehousing-system/project_web_ui/src/views/component/instorehouse/receiving.vue

@ -1,9 +1,6 @@
<template>
<div>
<div class="tab-header webtop">
<!-- 标题 -->
<div>接货</div>
</div>
<button-bar ref="btnbar" view-title="接货" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<div class="listconadd">
<el-form ref="form_obj">
<el-card class="box-card">
@ -28,16 +25,39 @@
</template>
<script>
import ButtonBar from '@/components/ButtonBar'
export default {
components: {
ButtonBar
},
data () {
return {
btndisabled: false,
user: '',
value: [],
options: [],
id: ''
id: '',
btnList: [
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
}
},
methods: {
btnHandle(btnKey) {
switch (btnKey) {
case 'doClose': //
this.doClose()
break
default:
break
}
},
async getOptions () {
const { data: result } = await this.$http.get('/receiving/getOptions')
if (result.status !== 200) return this.$message.error('获取列表失败')
@ -56,9 +76,14 @@ export default {
this.$message.success('接货成功')
this.value = ''
this.getOptions()
}
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
},
},
mounted () {
this.$refs['btnbar'].setButtonList(this.btnList)
this.getOptions()
// this.user = window.sessionStorage.getItem('token').substr(32)
}

140
warehousing-system/project_web_ui/src/views/component/outStorehouseManagement/picking.vue

@ -1,11 +1,12 @@
<template>
<el-card class="box-card">
<div>上架</div>
<el-divider></el-divider>
<div class="form">
<el-form class="demo-ruleForm" label-width="220px" :rules="rules" ref="onPickingRuleForm">
<el-form-item label="出库订单号:" prop="barCode">
<el-select v-model="outStorehouseId" placeholder="请选择" clearable>
<div>
<button-bar ref="btnbar" view-title="拣货" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<div class="listconadd">
<el-form class="demo-ruleForm" label-width="220px" :rules="rules" ref="onPickingRuleForm">
<el-card class="box-card">
<div class="item">
<span class="item_text">出库订单号</span>
<el-select v-model="outStorehouseId" class="item_input" placeholder="请选择" clearable>
<el-option
v-for="item in outStorehouseIdList"
:key="item"
@ -14,18 +15,23 @@
>
</el-option>
</el-select>
</el-form-item>
</el-form>
<el-button type="primary" icon="el-icon-plus" class="btm" @click="picking">拣货</el-button>
</div>
</el-card>
</div>
<el-button type="primary" icon="el-icon-plus" class="btm" @click="picking">拣货</el-button>
</el-card>
</el-form>
</div>
</div>
</template>
<script>
import ButtonBar from '@/components/ButtonBar'
export default {
components: {
ButtonBar
},
data () {
return {
btndisabled: false,
user: '',
outStorehouseIdList: [],
outStorehouseId: '',
@ -33,10 +39,28 @@ export default {
outStorehouseId: [
{ required: true, message: '请输入条码', trigger: 'blur' }
]
}
},
btnList: [
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
}
},
methods: {
btnHandle(btnKey) {
switch (btnKey) {
case 'doClose': //
this.doClose()
break
default:
break
}
},
async getOptions () {
const { data: result } = await this.$http.get('/picking/getOptions')
if (result.status !== 200) return this.$message.error('获取列表失败')
@ -48,31 +72,87 @@ export default {
if (result.status !== 200) return this.$message.error('领取任务失败')
this.$message.success('成功领取任务')
this.$refs.onPickingRuleForm.resetfields()
}
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
},
},
mounted () {
this.$refs['btnbar'].setButtonList(this.btnList)
this.getOptions()
// this.user = window.sessionStorage.getItem('token').substr(32)
}
}
</script>
<style>
.box-card{
height: 95%;
width: 95%;
<style lang="scss" scoped>
.box-card {
margin-left: 60px;
margin-right: 60px;
min-width: 70%;
margin-top: 20px;
padding-bottom: 50px;
position: relative;
.btm{
position: absolute;
top: 100px;
left: 70%;
}
.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 {
color: #5E94FF;
margin-left: 20px;
font-size: 16px;
text-decoration: underline;
}
}
}
}
.form{
position: absolute;
top: 40%;
left: 35%;
/* right: 20%; */
}
.btm{
/* align-items: center; */
position: absolute;
left: 60%;
}
</style>

3
warehousing-system/project_web_ui/src/views/component/pictureList/Map.vue

@ -217,6 +217,9 @@
};
</script>
<style scoped>
/deep/ element.style{
font-size: none !important;
}
/deep/.amap-copyright {
display: none !important;
}

34
warehousing-system/project_web_ui/src/views/component/pictureList/pictureList.vue

@ -29,18 +29,6 @@
<div class="housingResource">{{ item.housingResource }}</div>
<div class="monthlyPrice">{{ item.monthlyPrice }}<span v-if="item.monthlyPrice">/</span> </div>
</div>
<div class="pages">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="queryInfo.current"
:page-sizes="[10, 15]"
:page-size="queryInfo.size"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
>
</el-pagination>
</div>
</div>
</div>
<Particulars
@ -71,6 +59,7 @@ export default {
current: 1,
params: {},
},
sid:'',
total: 0,
title: "新增仓库",
storehouseList: [],
@ -88,6 +77,9 @@ export default {
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
this.getStorehouseList();
if(sid){
this.LookStorehousedialog()
}
},
methods: {
//
@ -115,17 +107,16 @@ export default {
},
async getStorehouseList() {
const { data: result } = await this.$http.post(
"/v1/shstorehouse/listPage",
{ params: this.queryInfo }
);
if (result.code == 200) this.total = result.data.total;
this.storehouseList = result.data.records;
const { data: result } = await this.$http.get('/v1/shstorehouse/listAll')
if (result.code == 200){
this.storehouseList = result.data
}
},
async LookStorehousedialog(sid) {
this.sid=sid
const _this = this;
const { data: result } = await this.$http.get(
`/v1/shstorehouse/fetchDetailsBySid/${sid}`
`/v1/shstorehouse/fetchDetailsBySid/${this.sid}`
);
if (result.code == 200) {
this.$refs['divShow'].showPicture(result.data)
@ -136,8 +127,9 @@ export default {
this.viewState = 1;
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
this.sid=''
},
},
};

166
warehousing-system/project_web_ui/src/views/component/storehouseManage/remove.vue

@ -1,11 +1,12 @@
<template>
<el-card class="box-card">
<div>入库</div>
<el-divider></el-divider>
<div class="form">
<el-form class="demo-ruleForm" label-width="220px" :rules="rules" ref="onRemoveRuleForm" :model="remove">
<el-form-item label="产品条码:" prop="barCode">
<el-select v-model="remove.barCode" placeholder="请选择" clearable @change="getOptions">
<div>
<button-bar ref="btnbar" view-title="移库" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<div class="listconadd">
<el-form ref="form_obj">
<el-card class="box-card">
<div class="item">
<span class="item_text">产品条码</span>
<el-select v-model="remove.barCode" class="item_input" placeholder="请选择" clearable @change="getOptions">
<el-option
v-for="item in queryInfo.barCodeList"
:key="item"
@ -14,9 +15,10 @@
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="原货位编号:" prop="fromLocationId">
<el-select v-model="remove.fromLocationId" placeholder="请选择入库区货位" clearable @change="getOptions">
</div>
<div class="item">
<span class="item_text">原货位编码</span>
<el-select v-model="remove.fromLocationId" class="item_input" placeholder="请选择入库区货位" clearable @change="getOptions">
<el-option
v-for="item in queryInfo.fromLocationIdList"
:key="item"
@ -25,33 +27,27 @@
>
</el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="货位编号:" prop="v">
<el-select v-model="remove.locationId" placeholder="请选择入库区货位" clearable @change="getOptions">
<el-option
v-for="item in queryInfo.locationIdList"
:key="item"
:label="item"
:value="item"
>
</el-option>
</el-select>
</el-form-item> -->
<el-form-item label="数量:" prop="count">
<el-input-number v-model="remove.count" controls-position="right" :min="0" :max="availableQuantity"></el-input-number>
</el-form-item>
</el-form>
<el-button type="primary" icon="el-icon-plus" class="btm" @click="addRemove">创建移库单</el-button>
</div>
</el-card>
</div>
<div class="item">
<span class="item_text">数量</span>
<el-input-number v-model="remove.count" class="item_input" controls-position="right" :min="0" :max="availableQuantity"></el-input-number>
</div>
<el-button type="primary" icon="el-icon-plus" class="btm" @click="addRemove">创建移库单</el-button>
</el-card>
</el-form>
</div>
</div>
</template>
<script>
import ButtonBar from '@/components/ButtonBar'
export default {
components: {
ButtonBar
},
data () {
return {
btndisabled: false,
user: '',
queryInfo: {
barCodeList: '',
@ -76,10 +72,28 @@ export default {
// locationId:[
// { required: true, message: '', trigger: 'blur' }
// ]
}
},
btnList: [
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
}
},
methods: {
btnHandle(btnKey) {
switch (btnKey) {
case 'doClose': //
this.doClose()
break
default:
break
}
},
getTime () {
const now = new Date()
this.remove.removeId = 'RE' + now.getTime()
@ -104,10 +118,15 @@ export default {
if (result.status === 201) return this.$message.error('添加失败')
this.$refs.onRemoveRuleForm.resetFields()
})
}
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
},
},
mounted () {
this.$refs['btnbar'].setButtonList(this.btnList)
this.getOptions()
// this.user = window.sessionStorage.getItem('token').substr(32)
@ -115,21 +134,72 @@ export default {
}
</script>
<style>
.box-card{
height: 95%;
width: 95%;
<style lang="scss" scoped>
.box-card {
margin-left: 60px;
margin-right: 60px;
min-width: 70%;
margin-top: 20px;
padding-bottom: 50px;
position: relative;
.btm{
position: absolute;
top: 270px;
left: 70%;
}
.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 {
color: #5E94FF;
margin-left: 20px;
font-size: 16px;
text-decoration: underline;
}
}
}
}
.form{
position: absolute;
top: 40%;
left: 35%;
/* right: 20%; */
}
.btm{
/* align-items: center; */
position: absolute;
left: 60%;
}
</style>

161
warehousing-system/project_web_ui/src/views/component/storehouseManage/shelves.vue

@ -1,11 +1,12 @@
<template>
<el-card class="box-card">
<div>上架</div>
<el-divider></el-divider>
<div class="form">
<el-form class="demo-ruleForm" label-width="220px" :rules="rules" ref="onShelvesRuleForm" :model="queryInfo">
<el-form-item label="商品编码:" prop="barCode">
<el-select v-model="queryInfo.barCode" placeholder="请选择" clearable @change="getOptions">
<div>
<button-bar ref="btnbar" view-title="上架" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<div class="listconadd">
<el-form ref="form_obj">
<el-card class="box-card">
<div class="item">
<span class="item_text">商品编码</span>
<el-select v-model="queryInfo.barCode" class="item_input" placeholder="请选择" clearable @change="getOptions">
<el-option
v-for="item in barCode"
:key="item"
@ -14,9 +15,10 @@
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="原货位编码:" prop="fromLocationId">
<el-select v-model="queryInfo.fromLocationId" placeholder="请选择" clearable @change="getOptions">
</div>
<div class="item">
<span class="item_text">原货位编码</span>
<el-select v-model="queryInfo.fromLocationId" class="item_input" placeholder="请选择" clearable @change="getOptions">
<el-option
v-for="item in fromLocationId"
:key="item"
@ -25,9 +27,10 @@
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="货位编码:" prop="locationId">
<el-select v-model="queryInfo.locationId" placeholder="请选择" clearable @change="getOptions">
</div>
<div class="item">
<span class="item_text">货位编码</span>
<el-select v-model="queryInfo.locationId" class="item_input" placeholder="请选择" clearable @change="getOptions">
<el-option
v-for="item in locationId"
:key="item"
@ -36,22 +39,27 @@
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="数量:" prop="count">
<el-input-number v-model="queryInfo.count" controls-position="right" :min="0" :max="availableQuantity"></el-input-number>
</el-form-item>
</el-form>
<el-button type="primary" icon="el-icon-plus" class="btm" @click="addShelves">上架</el-button>
</div>
</el-card>
</div>
<div class="item">
<span class="item_text">数量</span>
<el-input-number v-model="queryInfo.count" class="item_input" controls-position="right" :min="0" :max="availableQuantity"></el-input-number>
</div>
<el-button type="primary" icon="el-icon-plus" class="btm" @click="addShelves">上架</el-button>
</el-card>
</el-form>
</div>
</div>
</template>
<script>
import ButtonBar from '@/components/ButtonBar'
export default {
components: {
ButtonBar
},
data () {
return {
btndisabled: false,
user: '',
value: [],
barCode: [],
@ -85,10 +93,28 @@ export default {
count: [
{ required: true, message: '请输入上架数量', trigger: 'blur' }
]
}
},
btnList: [
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
}
},
methods: {
btnHandle(btnKey) {
switch (btnKey) {
case 'doClose': //
this.doClose()
break
default:
break
}
},
async getOptions () {
const { data: result } = await this.$http.get('/shelves/getQuery', { params: this.queryInfo })
if (result.status === 201) return this.$message.error('获取库存失败')
@ -123,31 +149,86 @@ export default {
this.onShelves.count = this.queryInfo.count
this.onShelves.createPerson = window.sessionStorage.getItem('token').substr(32)
// console.log(this.onShelves)
}
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
},
},
mounted () {
this.$refs['btnbar'].setButtonList(this.btnList)
this.getOptions()
// this.user = window.sessionStorage.getItem('token').substr(32)
}
}
</script>
<style>
.box-card{
height: 95%;
width: 95%;
<style lang="scss" scoped>
.box-card {
margin-left: 60px;
margin-right: 60px;
min-width: 70%;
margin-top: 20px;
padding-bottom: 50px;
position: relative;
.btm{
position: absolute;
top: 270px;
left: 70%;
}
.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 {
color: #5E94FF;
margin-left: 20px;
font-size: 16px;
text-decoration: underline;
}
}
}
}
.form{
position: absolute;
top: 40%;
left: 35%;
/* right: 20%; */
}
.btm{
/* align-items: center; */
position: absolute;
left: 60%;
}
</style>

Loading…
Cancel
Save