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

2
supervise-crm-ui/.env.development

@ -5,5 +5,5 @@ ENV = 'development'
VUE_APP_BASE_API = '/api' 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" ##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' 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: { methods: {
// //
postHuoquyonghu() { postHuoquyonghu() {
var token = getStorage() // var token = getStorage()
loginDetails(token).then((response) => { // loginDetails(token).then((response) => {
console.log('resss', response) // console.log('resss', response)
if (response.code === '200') { // if (response.code === '200') {
this.YongHuid = response.data // this.YongHuid = response.data
this.params.userSid = this.YongHuid.sid // this.params.userSid = this.YongHuid.sid
getrolemenus(this.params).then((res) => { getrolemenus(this.params).then((res) => {
console.log('userRoles', res.data) console.log('userRoles', res.data)
const userRoles = this.resRouter(res.data) const userRoles = this.resRouter(res.data)
@ -94,8 +94,8 @@
hidden: true hidden: true
}) })
return userRoles return userRoles
}) // })
} // }
}) })
}, },
resRouter(menus) { resRouter(menus) {

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

@ -43,14 +43,14 @@ VueAMap.initAMapApiLoader({
Vue.config.productionTip = false Vue.config.productionTip = false
let token = null // let token = null
token = GetQueryString('token') // token = GetQueryString('token')
if (token) { // if (token) {
setStorage(token) // setStorage(token)
const href = window.location.href // const href = window.location.href
// href = href.split(`token=${token}`)[0] // // href = href.split(`token=${token}`)[0]
// window.location.href = href.slice(0, href.length - 1) // // window.location.href = href.slice(0, href.length - 1)
} // }
var one = window.location.href.indexOf('&organizationData') + 18 var one = window.location.href.indexOf('&organizationData') + 18
if (parseInt(one) > 18) { if (parseInt(one) > 18) {
@ -65,66 +65,13 @@ if (parseInt(one) > 18) {
// 获取登录用户信息 // 获取登录用户信息
function getUserInfo() { 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({ new Vue({
el: '#app', el: '#app',
router, router,
store, store,
render: h => h(App) render: h => h(App)
}) })
})
} }
getUserInfo() 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-col>
</el-row> </el-row>
</el-form> </el-form>
</div> </div>

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

@ -181,7 +181,20 @@
</el-col> </el-col>
</el-row> </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> </el-form>
</div> </div>
@ -196,10 +209,13 @@
name: 'CustomerManagementInfo', name: 'CustomerManagementInfo',
data() { data() {
return { return {
temp: {} // temp: {}, //
temps:{},
} }
}, },
created() {
this.getStorehouseBySid() //
},
methods: { methods: {
showAdd(sid) { showAdd(sid) {
req.fetchBySid(sid) req.fetchBySid(sid)
@ -216,7 +232,14 @@
// //
handleReturn() { handleReturn() {
this.$emit('doback') this.$emit('doback')
} },
getStorehouseBySid(){
req.getStorehouseBySid().then((res) => {
if (res.success) {
this.temps=res.data
}
})
},
} }
} }
</script> </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> <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="isSearchShow = !isSearchShow">{{ isSearchShow ? '隐藏查询条件' : '显示查询条件' }}</el-button> <el-button size="small" class="searchbtn" @click="isSearchShow = !isSearchShow">{{ isSearchShow ? '隐藏查询条件' : '显示查询条件' }}</el-button>
@ -72,44 +72,7 @@
</div> </div>
</div> </div>
<el-dialog :title="title" :visible.sync="locationDialogVisible" width="65%" @close="closeLocationDialog"> <divadd v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="getLocationList" />
<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>
</div> </div>
</template> </template>
@ -117,11 +80,13 @@
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 '@/views/component/initial_value/add/locationAdd.vue'
export default { export default {
components: { components: {
ButtonBar, ButtonBar,
Pagination, Pagination,
pageye, pageye,
divadd
}, },
data () { data () {
return { return {
@ -227,30 +192,9 @@ export default {
var pageindex = index + 1 + pagestart; var pageindex = index + 1 + pagestart;
return pageindex; return pageindex;
}, },
addLocationDialog () { updataLocationdialog (row) {
this.title = '新增货位' this.viewState = 3
this.locationIdAble = false this.$refs['divadd'].showEdit(row)
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
})
}, },
async updataLocation () { async updataLocation () {
const { data: result } = await this.$http.put('/location/updataLocation', this.locationForm) const { data: result } = await this.$http.put('/location/updataLocation', this.locationForm)
@ -290,7 +234,7 @@ export default {
}, },
toAdd() { toAdd() {
this.viewState = 2 this.viewState = 2
// this.$refs['divadd'].showAdd() this.$refs['divadd'].showAdd()
}, },
doClose() { doClose() {
this.$store.dispatch('tagsView/delView', this.$route) 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> </div>
</div> </div>
<divadd v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="getProductList" />
<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>
</div> </div>
</template> </template>
@ -188,11 +121,13 @@
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 '@/views/component/initial_value/add/productAdd.vue'
export default { export default {
components: { components: {
ButtonBar, ButtonBar,
Pagination, Pagination,
pageye, pageye,
divadd
}, },
data () { data () {
return { return {
@ -221,20 +156,20 @@ export default {
remarks: '' remarks: ''
}, },
btnList: [ btnList: [
{ {
type: 'primary', type: 'primary',
size: 'small', size: 'small',
icon: 'plus', icon: 'plus',
btnKey: 'toAdd', btnKey: 'toAdd',
btnLabel: '新增' btnLabel: '新增'
}, },
{ {
type: 'info', type: 'info',
size: 'small', size: 'small',
icon: 'cross', icon: 'cross',
btnKey: 'doClose', btnKey: 'doClose',
btnLabel: '关闭' btnLabel: '关闭'
} }
], ],
updataProductForm: { updataProductForm: {
barCode: '', barCode: '',
@ -310,16 +245,6 @@ export default {
this.queryInfo.total = result.data.total this.queryInfo.total = result.data.total
this.productList = result.data.rows 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) { handleSizeChange (val) {
this.queryInfo.pageSize = val this.queryInfo.pageSize = val
@ -329,36 +254,9 @@ export default {
this.queryInfo.pageNum = val this.queryInfo.pageNum = val
this.getProductList() this.getProductList()
}, },
closeAddProductDialog () { open (row) {
this.$refs.addProductRuleForm.resetFields() this.viewState = 3
}, this.$refs['divadd'].showEdit(row)
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()
})
}, },
async deleteProduct (product) { async deleteProduct (product) {
const result = await this.$confirm('此操作将永久删除' + product.name + ', 是否继续?', '提示', { const result = await this.$confirm('此操作将永久删除' + product.name + ', 是否继续?', '提示', {
@ -372,14 +270,9 @@ export default {
this.getProductList() this.getProductList()
this.$message.success('商品删除成功') 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() { toAdd() {
this.viewState = 2 this.viewState = 2
// this.$refs['divadd'].showAdd() this.$refs['divadd'].showAdd()
}, },
doClose() { doClose() {
this.$store.dispatch('tagsView/delView', this.$route) this.$store.dispatch('tagsView/delView', this.$route)
@ -389,7 +282,6 @@ export default {
mounted () { mounted () {
this.$refs['btnbar'].setButtonList(this.btnList) this.$refs['btnbar'].setButtonList(this.btnList)
this.getProductList() this.getProductList()
this.getStorehouse()
} }
} }
</script> </script>

2
warehousing-system/project_web_ui/src/views/component/initial_value/supplier.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="isSearchShow = !isSearchShow">{{ isSearchShow ? '隐藏查询条件' : '显示查询条件' }}</el-button> <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> <template>
<div> <div>
<div class="tab-header webtop"> <button-bar ref="btnbar" view-title="入库" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<!-- 标题 -->
<div>入库</div>
</div>
<div class="listconadd"> <div class="listconadd">
<el-form :rules="rules" <el-form :rules="rules"
ref="onPutInRuleForm" ref="onPutInRuleForm"
@ -72,9 +69,14 @@
</template> </template>
<script> <script>
import ButtonBar from '@/components/ButtonBar'
export default { export default {
components: {
ButtonBar
},
data() { data() {
return { return {
btndisabled: false,
user: "", user: "",
dingdanId: [], dingdanId: [],
huoweiId: [], huoweiId: [],
@ -111,9 +113,27 @@ export default {
{ required: true, message: "请输入源货位编码", trigger: "blur" }, { required: true, message: "请输入源货位编码", trigger: "blur" },
], ],
}, },
btnList: [
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
}; };
}, },
methods: { methods: {
btnHandle(btnKey) {
switch (btnKey) {
case 'doClose': //
this.doClose()
break
default:
break
}
},
async getOptions() { async getOptions() {
const { data: result } = await this.$http.post('/purchasenew/listAll', { params: this.queryInfos }) const { data: result } = await this.$http.post('/purchasenew/listAll', { params: this.queryInfos })
const { data: datas } = await this.$http.get('/location/list', { params: this.queryPamas }) const { data: datas } = await this.$http.get('/location/list', { params: this.queryPamas })
@ -146,9 +166,15 @@ export default {
this.$message.success('操作成功') this.$message.success('操作成功')
this.$refs.onPutInRuleForm.resetFields(); this.$refs.onPutInRuleForm.resetFields();
}); });
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}, },
}, },
mounted() { mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
this.getOptions(); this.getOptions();
// this.user = window.sessionStorage.getItem("token").substr(32); // 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> <template>
<div> <div>
<div class="tab-header webtop"> <button-bar ref="btnbar" view-title="接货" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<!-- 标题 -->
<div>接货</div>
</div>
<div class="listconadd"> <div class="listconadd">
<el-form ref="form_obj"> <el-form ref="form_obj">
<el-card class="box-card"> <el-card class="box-card">
@ -28,16 +25,39 @@
</template> </template>
<script> <script>
import ButtonBar from '@/components/ButtonBar'
export default { export default {
components: {
ButtonBar
},
data () { data () {
return { return {
btndisabled: false,
user: '', user: '',
value: [], value: [],
options: [], options: [],
id: '' id: '',
btnList: [
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
} }
}, },
methods: { methods: {
btnHandle(btnKey) {
switch (btnKey) {
case 'doClose': //
this.doClose()
break
default:
break
}
},
async getOptions () { async getOptions () {
const { data: result } = await this.$http.get('/receiving/getOptions') const { data: result } = await this.$http.get('/receiving/getOptions')
if (result.status !== 200) return this.$message.error('获取列表失败') if (result.status !== 200) return this.$message.error('获取列表失败')
@ -56,9 +76,14 @@ export default {
this.$message.success('接货成功') this.$message.success('接货成功')
this.value = '' this.value = ''
this.getOptions() this.getOptions()
} },
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
},
}, },
mounted () { mounted () {
this.$refs['btnbar'].setButtonList(this.btnList)
this.getOptions() this.getOptions()
// this.user = window.sessionStorage.getItem('token').substr(32) // 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> <template>
<el-card class="box-card"> <div>
<div>上架</div> <button-bar ref="btnbar" view-title="拣货" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<el-divider></el-divider> <div class="listconadd">
<div class="form"> <el-form class="demo-ruleForm" label-width="220px" :rules="rules" ref="onPickingRuleForm">
<el-form class="demo-ruleForm" label-width="220px" :rules="rules" ref="onPickingRuleForm"> <el-card class="box-card">
<el-form-item label="出库订单号:" prop="barCode"> <div class="item">
<el-select v-model="outStorehouseId" placeholder="请选择" clearable> <span class="item_text">出库订单号</span>
<el-select v-model="outStorehouseId" class="item_input" placeholder="请选择" clearable>
<el-option <el-option
v-for="item in outStorehouseIdList" v-for="item in outStorehouseIdList"
:key="item" :key="item"
@ -14,18 +15,23 @@
> >
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </div>
</el-form> <el-button type="primary" icon="el-icon-plus" class="btm" @click="picking">拣货</el-button>
<el-button type="primary" icon="el-icon-plus" class="btm" @click="picking">拣货</el-button> </el-card>
</el-form>
</div> </div>
</el-card> </div>
</template> </template>
<script> <script>
import ButtonBar from '@/components/ButtonBar'
export default { export default {
components: {
ButtonBar
},
data () { data () {
return { return {
btndisabled: false,
user: '', user: '',
outStorehouseIdList: [], outStorehouseIdList: [],
outStorehouseId: '', outStorehouseId: '',
@ -33,10 +39,28 @@ export default {
outStorehouseId: [ outStorehouseId: [
{ required: true, message: '请输入条码', trigger: 'blur' } { required: true, message: '请输入条码', trigger: 'blur' }
] ]
} },
btnList: [
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
} }
}, },
methods: { methods: {
btnHandle(btnKey) {
switch (btnKey) {
case 'doClose': //
this.doClose()
break
default:
break
}
},
async getOptions () { async getOptions () {
const { data: result } = await this.$http.get('/picking/getOptions') const { data: result } = await this.$http.get('/picking/getOptions')
if (result.status !== 200) return this.$message.error('获取列表失败') if (result.status !== 200) return this.$message.error('获取列表失败')
@ -48,31 +72,87 @@ export default {
if (result.status !== 200) return this.$message.error('领取任务失败') if (result.status !== 200) return this.$message.error('领取任务失败')
this.$message.success('成功领取任务') this.$message.success('成功领取任务')
this.$refs.onPickingRuleForm.resetfields() this.$refs.onPickingRuleForm.resetfields()
} },
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
},
}, },
mounted () { mounted () {
this.$refs['btnbar'].setButtonList(this.btnList)
this.getOptions() this.getOptions()
// this.user = window.sessionStorage.getItem('token').substr(32) // this.user = window.sessionStorage.getItem('token').substr(32)
} }
} }
</script> </script>
<style> <style lang="scss" scoped>
.box-card{ .box-card {
height: 95%; margin-left: 60px;
width: 95%; 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> </style>

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

@ -217,6 +217,9 @@
}; };
</script> </script>
<style scoped> <style scoped>
/deep/ element.style{
font-size: none !important;
}
/deep/.amap-copyright { /deep/.amap-copyright {
display: none !important; 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="housingResource">{{ item.housingResource }}</div>
<div class="monthlyPrice">{{ item.monthlyPrice }}<span v-if="item.monthlyPrice">/</span> </div> <div class="monthlyPrice">{{ item.monthlyPrice }}<span v-if="item.monthlyPrice">/</span> </div>
</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>
</div> </div>
<Particulars <Particulars
@ -71,6 +59,7 @@ export default {
current: 1, current: 1,
params: {}, params: {},
}, },
sid:'',
total: 0, total: 0,
title: "新增仓库", title: "新增仓库",
storehouseList: [], storehouseList: [],
@ -88,6 +77,9 @@ export default {
mounted() { mounted() {
this.$refs['btnbar'].setButtonList(this.btnList) this.$refs['btnbar'].setButtonList(this.btnList)
this.getStorehouseList(); this.getStorehouseList();
if(sid){
this.LookStorehousedialog()
}
}, },
methods: { methods: {
// //
@ -115,17 +107,16 @@ export default {
}, },
async getStorehouseList() { async getStorehouseList() {
const { data: result } = await this.$http.post( const { data: result } = await this.$http.get('/v1/shstorehouse/listAll')
"/v1/shstorehouse/listPage", if (result.code == 200){
{ params: this.queryInfo } this.storehouseList = result.data
); }
if (result.code == 200) this.total = result.data.total;
this.storehouseList = result.data.records;
}, },
async LookStorehousedialog(sid) { async LookStorehousedialog(sid) {
this.sid=sid
const _this = this; const _this = this;
const { data: result } = await this.$http.get( const { data: result } = await this.$http.get(
`/v1/shstorehouse/fetchDetailsBySid/${sid}` `/v1/shstorehouse/fetchDetailsBySid/${this.sid}`
); );
if (result.code == 200) { if (result.code == 200) {
this.$refs['divShow'].showPicture(result.data) this.$refs['divShow'].showPicture(result.data)
@ -136,8 +127,9 @@ export default {
this.viewState = 1; this.viewState = 1;
}, },
doClose() { doClose() {
this.$store.dispatch('tagsView/delView', this.$route) this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1) this.$router.go(-1)
this.sid=''
}, },
}, },
}; };

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

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

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

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

Loading…
Cancel
Save