商品信息

master
李永杰 2023-11-21 08:43:42 +08:00
parent 224d3ec542
commit 953218c43e
2 changed files with 253 additions and 7 deletions

View File

@ -25,6 +25,9 @@ const mutations = {
SET_AVATAR: (state, avatar) => { SET_AVATAR: (state, avatar) => {
state.avatar = avatar state.avatar = avatar
}, },
SET_EMPNAME: (state, empName) => {
state.empName = empName
},
SET_ROLEID: (state, roleId) => { SET_ROLEID: (state, roleId) => {
state.roleId = roleId state.roleId = roleId
}, },
@ -59,12 +62,14 @@ const actions = {
return reject('Verification failed, please Login again.') return reject('Verification failed, please Login again.')
} }
const { name, avatar, roleId, postId } = data const { name, avatar, empName, roleId, postId } = data
commit('SET_NAME', name) commit('SET_NAME', name)
commit('SET_AVATAR', avatar) commit('SET_AVATAR', avatar)
commit('SET_USERNAME', empName)
commit('SET_ROLEID', roleId) commit('SET_ROLEID', roleId)
commit('SET_POSTID', postId) commit('SET_POSTID', postId)
localStorage.setItem('empName', empName)
localStorage.setItem('roleId', roleId) localStorage.setItem('roleId', roleId)
localStorage.setItem('postId', postId) localStorage.setItem('postId', postId)
resolve(data) resolve(data)

View File

@ -1,5 +1,6 @@
<template> <template>
<div> <div>
<p>当前操作用户: {{ empName }}</p>
<el-tabs :tab-position="tabPosition1" style="height: 80%"> <el-tabs :tab-position="tabPosition1" style="height: 80%">
<el-tab-pane label="销售管理" v-if="role == 1 || role == 4"></el-tab-pane> <el-tab-pane label="销售管理" v-if="role == 1 || role == 4"></el-tab-pane>
<el-tab-pane label="人员管理" v-if="role == 1 || role == 3"> <el-tab-pane label="人员管理" v-if="role == 1 || role == 3">
@ -321,12 +322,174 @@
</div> </div>
</el-dialog> </el-dialog>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="会员管理" v-if="post == 1 || post == 3"></el-tab-pane> <el-tab-pane label="会员管理" v-if="post == 1 || post == 3">
<el-tab-pane label="客户管理" v-if="post == 1 || post == 3"></el-tab-pane>
</el-tab-pane>
<el-tab-pane label="客户管理" v-if="post == 1 || post == 3">
</el-tab-pane>
</el-tabs> </el-tabs>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="仓库管理" v-if="role == 1 || role == 2"> <el-tab-pane label="仓库管理" v-if="role == 1 || role == 2">
<el-tabs :tab-position="tabPosition3" style="height: 80%">
<el-tab-pane label="商品信息管理">
<el-form :inline="true" :model="merchRequest" class="demo-form-inline">
<el-form-item label="商品编号">
<el-input v-model="merchRequest.merchId" placeholder="商品编号" clearable></el-input>
</el-form-item>
<el-form-item label="商品类型">
<el-select v-model="merchRequest.merchType" clearable>
<el-option v-for="item in merchTypes" :key="item.typeId" :label="item.typeName" :value="item.typeId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="商品名称">
<el-input v-model="merchRequest.merchName" placeholder="商品名称" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="fetchMerch" icon="el-icon-search">查询</el-button>
</el-form-item>
</el-form>
<el-button type="primary" @click="dialogFormVisible5 = true">新增商品</el-button>
<el-table :data="merchResponse.list" stripe border tooltip-effect="dark" style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55"/>
<el-table-column label="商品编号" prop="merchId"/>
<el-table-column label="商品名称" prop="merchName"/>
<el-table-column label="商品类型" prop="typeName"/>
<el-table-column label="价格" prop="merchPrice"/>
<el-table-column label="条形码" prop="barCode"/>
<el-table-column label="促销价" prop="salesProPrice"/>
<el-table-column label="厂商编号" prop="factoryId"/>
<el-table-column label="供货商编号" prop="provideId"/>
<el-table-column label="过期日期" prop="merchDeadTime"/>
<el-table-column label="库存数量" prop="merchNum"/>
<el-table-column label="商品状态" prop="merchSta">
<template slot-scope="scope">
<span v-if="scope.row.merchSta == 1"></span>
<span v-if="scope.row.merchSta == 2"></span>
<span v-if="scope.row.merchSta == 3"></span>
</template>
</el-table-column>
<el-table-column label="操作" prop="">
<template slot-scope="scope">
<el-button type="primary" icon="el-icon-edit" @click="openMerch(scope.row.merchId)" circle></el-button>
<el-button type="danger" icon="el-icon-delete" @click="delMerch(scope.row.merchId)" circle></el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChange1"
@current-change="handleCurrentChange1"
:current-page="merchRequest.pageNum"
:page-sizes="[1, 5, 10, 20]"
:page-size="merchRequest.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="merchResponse.total">
</el-pagination>
<el-button type="danger" @click="batchDelMerch"></el-button>
<el-dialog title="新增商品" :visible.sync="dialogFormVisible5">
<el-form :model="merch">
<el-form-item label="商品名称" :label-width="formLabelWidth">
<el-input v-model="merch.merchName" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="商品类型" :label-width="formLabelWidth">
<el-select v-model="merch.merchType">
<el-option label="区域一" value="1"></el-option>
<el-option label="区域二" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="商品价格" :label-width="formLabelWidth">
<el-input v-model="merch.merchPrice" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="条形码" :label-width="formLabelWidth">
<el-input v-model="merch.barCode" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="促销价" :label-width="formLabelWidth">
<el-input v-model="merch.salesProPrice" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="厂商编号" :label-width="formLabelWidth">
<el-input v-model="merch.factoryId" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="供应商编号" :label-width="formLabelWidth">
<el-input v-model="merch.provideId" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="过期日期" :label-width="formLabelWidth">
<el-date-picker v-model="merch.merchDeadTime" type="datetime" placeholder="选择日期时间"></el-date-picker>
</el-form-item>
<el-form-item label="库存" :label-width="formLabelWidth">
<el-input v-model="merch.merchNum" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="商品状态" :label-width="formLabelWidth">
<el-radio-group v-model="merch.merchSta">
<el-radio :label="1">未上架</el-radio>
<el-radio :label="2">上架</el-radio>
<el-radio :label="3">下架</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible5 = false"> </el-button>
<el-button type="primary" @click="addMerch"> </el-button>
</div>
</el-dialog>
<el-dialog title="编辑商品" :visible.sync="dialogFormVisible6">
<el-form :model="merch">
<el-form-item label="商品名称" :label-width="formLabelWidth">
<el-input v-model="merch.merchName" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="商品类型" :label-width="formLabelWidth">
</el-form-item>
<el-form-item label="商品价格" :label-width="formLabelWidth">
<el-input v-model="merch.merchPrice" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="条形码" :label-width="formLabelWidth">
<el-input v-model="merch.barCode" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="促销价" :label-width="formLabelWidth">
<el-input v-model="merch.salesProPrice" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="厂商编号" :label-width="formLabelWidth">
<el-input v-model="merch.factoryId" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="供应商编号" :label-width="formLabelWidth">
<el-input v-model="merch.provideId" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="过期日期" :label-width="formLabelWidth">
<el-date-picker v-model="merch.merchDeadTime" type="datetime" placeholder="选择日期时间"></el-date-picker>
</el-form-item>
<el-form-item label="库存" :label-width="formLabelWidth">
<el-input v-model="merch.merchNum" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="商品状态" :label-width="formLabelWidth">
<el-radio-group v-model="merch.merchSta">
<el-radio :label="1">未上架</el-radio>
<el-radio :label="2">上架</el-radio>
<el-radio :label="3">下架</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible6 = false"> </el-button>
<el-button type="primary" @click="updateMerch"> </el-button>
</div>
</el-dialog>
</el-tab-pane>
<el-tab-pane label="进货">进货</el-tab-pane>
<el-tab-pane label="退货">退货</el-tab-pane>
<el-tab-pane label="报损">报损</el-tab-pane>
<el-tab-pane label="报溢">报溢</el-tab-pane>
<el-tab-pane label="查询库存">查询库存</el-tab-pane>
</el-tabs>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="综合统计" v-if="role == 1 || role == 2 || role == 3"></el-tab-pane> <el-tab-pane label="综合统计" v-if="role == 1 || role == 2 || role == 3"></el-tab-pane>
<el-tab-pane label="报表统计" v-if="role == 1 || role == 2 || role == 3"></el-tab-pane> <el-tab-pane label="报表统计" v-if="role == 1 || role == 2 || role == 3"></el-tab-pane>
@ -338,8 +501,10 @@
//jsjsjson, //jsjsjson,
//import { } from '', //import { } from '',
import { add, batchDel, del, fetchManager, findById, update, fetchEmp } from '@/api/manager' import { add, batchDel, del, fetchManager, findById, update, fetchEmp } from '@/api/manager';
import { findRoles, findPosts } from '@/api/role' import { findRoles, findPosts } from '@/api/role';
import { fetchMerch, addMerch, findByMerchId, updateMerch, delMerch, batchDelMerch } from '@/api/merch';
import item from '@/layout/components/Sidebar/Item.vue'
export default { export default {
//import使 //import使
@ -348,8 +513,10 @@ export default {
return { return {
tabPosition1: 'left', tabPosition1: 'left',
tabPosition2: 'left', tabPosition2: 'left',
tabPosition3: 'left',
role: localStorage.getItem('roleId'), role: localStorage.getItem('roleId'),
post: localStorage.getItem('postId'), post: localStorage.getItem('postId'),
empName: localStorage.getItem('empName'),
emp: { emp: {
empId: null, empId: null,
empName: '', empName: '',
@ -411,7 +578,34 @@ export default {
] ]
}, },
roles: [], roles: [],
posts: [] posts: [],
merch: {
merchId: null,
merchName: '',
merchType: null,
merchPrice: null,
barCode: '',
salesProPrice: null,
factoryId: '',
provideId: '',
merchDeadTime: null,
merchNum: null,
merchSta: null
},
merchRequest: {
merchId: null,
merchName: '',
merchType: null,
pageNum: 1,
pageSize: 5
},
merchResponse:{
total: 0,
list: []
},
merchTypes: [],
dialogFormVisible5: false,
dialogFormVisible6: false,
} }
}, },
methods: { methods: {
@ -478,7 +672,6 @@ export default {
}, },
fetchEmp(){ fetchEmp(){
fetchEmp(this.empRequest).then(res =>{ fetchEmp(this.empRequest).then(res =>{
console.log(res)
this.empResponse.list = [] this.empResponse.list = []
this.empResponse = res.data this.empResponse = res.data
}) })
@ -526,6 +719,53 @@ export default {
findPosts().then(res => { findPosts().then(res => {
this.posts = res.data this.posts = res.data
}) })
},
fetchMerch(){
fetchMerch(this.merchRequest).then(res=>{
this.merchResponse = res.data
})
},
handleSizeChange1(val) {
this.merchRequest.pageSize = val
this.fetchManager()
},
handleCurrentChange1(val) {
this.merchRequest.pageNum = val
this.fetchManager()
},
addMerch() {
addMerch(this.merch).then(res => {
this.$message.success(res.msg)
this.dialogFormVisible5 = false
this.merch = {}
this.fetchMerch()
})
},
openMerch(merchId){
this.dialogFormVisible6 = true
findByMerchId(merchId).then(res =>{
this.merch = res.data
})
},
updateMerch() {
updateMerch(this.merch).then(res => {
this.$message.success(res.msg)
this.dialogFormVisible6 = false
this.merch = {}
this.fetchMerch()
})
},
delMerch(merchId){
delMerch(merchId).then(res => {
this.$message.success(res.msg)
this.fetchMerch()
})
},
batchDelMerch(){
batchDelMerch(this.multipleSelection.map(item => item.merchId)).then(res => {
this.$message.success(res.msg)
this.fetchMerch()
})
} }
}, },
// - 访this, // - 访this,
@ -534,6 +774,7 @@ export default {
this.findRoles() this.findRoles()
this.findPosts() this.findPosts()
this.fetchEmp() this.fetchEmp()
this.fetchMerch()
} }
} }
</script> </script>