去掉一些无用的代码

master
zhaochencheng 3 years ago
parent 86617127b9
commit 90614ad7f2

@ -1,69 +0,0 @@
<template lang="pug">
.item-select-wrapper
el-select(
v-model="value1"
filterable
remote
clearable
:remote-method="doSearch"
:loading="loading"
:size="size"
)
el-option(
v-for="item in options"
:key="item.id"
:label="item.itemName"
:value="item.id"
)
div {{item.itemName}}
.info {{item.itemNo}}
</template>
<script>
import { listWmsItem } from '@/api/wms/item'
export default {
name: 'ItemSelect',
props: {
value: {
type: [String, Number],
default: null
},
size: {
type: String,
default: 'small'
}
},
data() {
return {
options: [],
loading: false
}
},
computed: {
value1: {
get() {
return this.value
},
set(v) {
this.$emit('input', v)
}
}
},
created() {
this.doSearch();
},
methods: {
doSearch(search) {
listWmsItem({search}, {page: 0, size: 20}).then(res => {
const { content, totalElements } = res
this.options = content
})
}
}
}
</script>
<style lang="stylus">
</style>

@ -1,3 +0,0 @@
export const DICT_TYPES = [
'wms_receipt_type', 'wms_shipment_type', 'wms_movement_type'
]

@ -37,21 +37,11 @@ import DictTag from '@/components/DictTag'
import VueMeta from 'vue-meta' import VueMeta from 'vue-meta'
// 字典数据组件 // 字典数据组件
import DictData from '@/components/DictData' import DictData from '@/components/DictData'
//wms table组件
import WmsTable from '@/components/WmsTable'
import WmsSupplierSelect from '@/components/WmsSupplierSelect'
import WmsCustomerSelect from '@/components/WmsCustomerSelect'
import KrPrintDesigner from "kr-print-designer";
import "kr-print-designer/lib/kr-print-designer.css";
import DictRadio from '@/components/DictRadio' import DictRadio from '@/components/DictRadio'
import DictSelect from '@/components/DictSelect' import DictSelect from '@/components/DictSelect'
import WmsWarehouseCascader from '@/components/WmsWarehouseCascader'
import vuePlugsPrint from '@/utils/vuePlugsPrint'
// 全局方法挂载 // 全局方法挂载
Vue.prototype.getDicts = getDicts Vue.prototype.getDicts = getDicts
Vue.prototype.getConfigKey = getConfigKey Vue.prototype.getConfigKey = getConfigKey
@ -71,15 +61,9 @@ Vue.component('Editor', Editor)
Vue.component('FileUpload', FileUpload) Vue.component('FileUpload', FileUpload)
Vue.component('ImageUpload', ImageUpload) Vue.component('ImageUpload', ImageUpload)
Vue.component('ImagePreview', ImagePreview) Vue.component('ImagePreview', ImagePreview)
Vue.component('WmsTable',WmsTable)
Vue.component('WmsSupplierSelect',WmsSupplierSelect)
Vue.component('WmsCustomerSelect',WmsCustomerSelect)
Vue.component('DictRadio',DictRadio) Vue.component('DictRadio',DictRadio)
Vue.component('DictSelect',DictSelect) Vue.component('DictSelect',DictSelect)
Vue.component('WmsWarehouseCascader',WmsWarehouseCascader)
Vue.use(KrPrintDesigner);
Vue.use(vuePlugsPrint);
Vue.use(directive) Vue.use(directive)
Vue.use(plugins) Vue.use(plugins)
Vue.use(VueMeta) Vue.use(VueMeta)

@ -22,11 +22,6 @@ router.beforeEach((to, from, next) => {
//当页面刷新vuex里面没值请求重新获取,数据会重新初始化 //当页面刷新vuex里面没值请求重新获取,数据会重新初始化
if (store.getters.roles.length === 0) { if (store.getters.roles.length === 0) {
isRelogin.show = true isRelogin.show = true
store.dispatch("wms/getWarehouseList");
store.dispatch("wms/getAreaList");
store.dispatch("wms/getRackList");
store.dispatch('wms/getSuppliers')
store.dispatch('wms/getCustomer')
// 判断当前用户是否已拉取完user_info信息 // 判断当前用户是否已拉取完user_info信息
store.dispatch('GetInfo').then(() => { store.dispatch('GetInfo').then(() => {
isRelogin.show = false isRelogin.show = false

@ -11,40 +11,8 @@ const getters = {
roles: state => state.user.roles, roles: state => state.user.roles,
permissions: state => state.user.permissions, permissions: state => state.user.permissions,
permission_routes: state => state.permission.routes, permission_routes: state => state.permission.routes,
topbarRouters: state => state.permission.topbarRouters, topbarRouters:state => state.permission.topbarRouters,
defaultRoutes: state => state.permission.defaultRoutes, defaultRoutes:state => state.permission.defaultRoutes,
sidebarRouters: state => state.permission.sidebarRouters, sidebarRouters:state => state.permission.sidebarRouters,
// 字典相关
items: state => state.dict.items,
dictTypeMap: state => state.dict.dictTypeMap,
opTypes: state => {
const map = state.dict.dictTypeMap
let res = [];
['wms_receipt_type', 'wms_shipment_type', 'wms_movement_type'].forEach(it => {
if (!map[it]) {
return
}
res = res.concat(map[it])
})
return res
},
opTypeMap: (state, getters) => {
const arr = getters.opTypes, map = {};
arr.forEach(it => map[it.value] = it.label);
return map;
},
// wms相关
supplierList: state => state.wms.supplierList,
customerList: state => state.wms.customerList,
customerMap: state => state.wms.customerMap,
supplierMap: state => state.wms.supplierMap,
warehouseList: state => state.wms.warehouseList,
warehouseMap: state => state.wms.warehouseMap,
areaList: state => state.wms.areaList,
areaMap: state => state.wms.areaMap,
rackList: state => state.wms.rackList,
rackMap: state => state.wms.rackMap
} }
export default getters export default getters

@ -5,8 +5,6 @@ import user from './modules/user'
import tagsView from './modules/tagsView' import tagsView from './modules/tagsView'
import permission from './modules/permission' import permission from './modules/permission'
import settings from './modules/settings' import settings from './modules/settings'
import dict from './modules/dict'
import wms from './modules/wms'
import getters from './getters' import getters from './getters'
Vue.use(Vuex) Vue.use(Vuex)
@ -17,9 +15,7 @@ const store = new Vuex.Store({
user, user,
tagsView, tagsView,
permission, permission,
settings, settings
dict,
wms
}, },
getters getters
}) })

@ -1,42 +0,0 @@
import { allWmsItem } from '@/api/wms/item'
import { listByTypes } from '@/api/system/dict/data'
import { DICT_TYPES } from '@/config/business'
export default {
state: {
items: [],
dictTypeMap: {},
},
mutations: {
SET_ITEMS(state, list) {
state.items = list
},
SET_DICT_TYPE_MAP(state, list) {
const map = {};
list.forEach(it => {
const {dictType} = it;
let arr = map[dictType];
if (!arr) {
arr = [];
map[dictType] = arr;
}
arr.push(it);
})
state.dictTypeMap = map;
}
},
actions: {
loadItems({commit}) {
return allWmsItem()
.then(res => {
commit('SET_ITEMS', res);
return res
})
},
loadAllDict({ commit }) {
listByTypes(DICT_TYPES).then(res => {
const { rows } = res
commit('SET_DICT_TYPE_MAP', rows.map(it => ({value: it.dictValue, label: it.dictLabel, dictType: it.dictType})))
})
}
}
}

@ -1,98 +0,0 @@
import { listWmsSupplier } from "@/api/wms/supplier";
import { listWmsWarehouse } from "@/api/wms/warehouse";
import { listWmsArea } from "@/api/wms/area";
import { listWmsRack } from "@/api/wms/rack";
import {listWmsCustomer} from "@/api/wms/customer";
const state = {
supplierList: [],
customerList: [],
customerMap: new Map(),
supplierMap: new Map(),
warehouseList: [],
warehouseMap: new Map(),
areaList:[],
areaMap:new Map(),
rackList:[],
rackMap:new Map()
}
const mutations = {
SET_SUPPLIERS(state, list) {
state.supplierList = list;
state.supplierMap = new Map();
list.forEach((supplier) => {
state.supplierMap.set(supplier.id, supplier.supplierName)
})
},
SET_CUSTOMERS(state, list) {
state.customerList = list;
state.customerMap = new Map();
list.forEach((customer) => {
state.customerMap.set(customer.id, customer.customerName)
})
},
SET_WAREHOUSE(state, list){
state.warehouseList = list;
state.warehouseMap = new Map();
list.forEach((warehouse) => {
state.warehouseMap.set(warehouse.id, warehouse.warehouseName)
})
},
SET_AREA(state, list){
state.areaList = list;
state.areaMap = new Map();
list.forEach((area) => {
state.areaMap.set(area.id, area.areaName)
})
},
SET_RACK(state, list){
state.rackList = list;
state.rackMap = new Map();
list.forEach((rack) => {
state.rackMap.set(rack.id, rack.rackName)
})
},
}
const actions = {
getSuppliers({ commit }) {
return listWmsSupplier({}, { page: 0, size: 1000 })
.then(res => {
const { content } =res
commit('SET_SUPPLIERS', content);
})
},
getCustomer({ commit }) {
return listWmsCustomer({}, { page: 0, size: 1000 })
.then(res => {
const { content } =res
commit('SET_CUSTOMERS', content);
})
},
getWarehouseList({ commit }) {
return listWmsWarehouse({}, { page: 0, size: 1000 })
.then(res => {
const { content } =res
commit('SET_WAREHOUSE', content);
})
},
getAreaList({ commit }) {
return listWmsArea({}, { page: 0, size: 1000 })
.then(res => {
const { content } =res
commit('SET_AREA', content);
})
},
getRackList({ commit }) {
return listWmsRack({}, { page: 0, size: 1000 })
.then(res => {
const { content } =res
commit('SET_RACK', content);
})
},
}
export default {
namespaced: true,
state,
mutations,
actions
}

@ -1,213 +0,0 @@
<template lang="pug">
.prod-sku-select-wrapper
.search
el-form(inline label-width="64")
el-form-item(label="商品类型")
.w200
el-select(v-model="query.itemType" clearable)
el-option(
v-for="dict in dict.type.wms_item_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
)
el-form-item(label="快速筛选")
el-input.w200(v-model="query.search" placeholder="编号、名称、ID" )
el-button(type="primary" @click="clickQuery") 查询
.center
.left.flex-one
.statistic {{total}} 个商品
.content
.header.flex-center
el-checkbox(
:value="leftAllChecked === 1"
@input="leftAllChecked = $event"
:indeterminate="leftAllChecked === 2"
:disabled="editableList.length === 0")
.flex-one.tc.ml8 商品信息
.prods
.prod.flex-center(v-for="p in list" :key="p.id")
el-checkbox(
v-model="p.checked"
:disabled="rightListKeySet.has(p.id)"
)
.flex-one.flex-center(@click="p.checked = !p.checked")
.ml8
div {{p.itemName}}
.mt8
el-tag(v-if="p.itemType" size="mini") {{p.itemType}}
span.ml8 {{p.itemNo}}
el-empty(v-if="list.length === 0" :image-size="64")
.tr
el-pagination(
:total="total",
:page-size="pageReq.size"
:current.sync="pageReq.page"
:pageSizeOpts="[10, 20, 50, 100]"
show-sizer
show-total
@on-change="handleChangePage"
@on-page-size-change="handleChangeSize",
)
.ops
div
el-button(@click="moveRight") >
br
el-button.mt8(@click="moveLeft") <
.right.flex-one
.statistic {{rightList.length}} 个商品已选
.content
.header.flex-center
el-checkbox(
:value="rightAllChecked === 1"
@input="rightAllChecked = $event"
:indeterminate="rightAllChecked === 2"
:disabled="rightList.length === 0")
.flex-one.tc.ml8 商品信息
.prods
.prod.flex-center(v-for="p in rightList")
el-checkbox(v-model="p.checked")
.flex-one.flex-center(@click="p.checked = !p.checked")
.ml8
div {{p.itemName}}
.mt8
el-tag(v-if="p.itemType" size="mini") {{p.itemType}}
span.ml8 {{p.itemNo}}
el-empty(v-if="rightList.length === 0" :image-size="64")
</template>
<script>
import { listWmsItem } from '@/api/wms/item'
export default {
name: "ItemSelect",
dicts: ['wms_item_type'],
data() {
return {
query: {
itemType: null,
search: null
},
list: [],
total: 0,
pageReq: {
page: 1,
size: 10
},
rightList: []
}
},
computed: {
leftAllChecked: {
get() {
return this.editableList.length > 0 && this.editableList.every(it => it.checked) ? 1
: this.editableList.some(it => it.checked) ? 2 : 0
},
set(v) {
this.editableList.forEach(it => it.checked = v)
}
},
rightAllChecked: {
get() {
return this.rightList.length > 0 && this.rightList.every(it => it.checked) ? 1
: this.rightList.some(it => it.checked) ? 2 : 0
},
set(v) {
this.rightList.forEach(it => it.checked = v)
}
},
editableList() {
return this.list.filter(it => !this.rightListKeySet.has(it.id));
},
leftCheckedList() {
return this.list.filter(it => it.checked)
},
rightListKeySet() {
const set = new Set()
this.rightList.forEach(it => set.add(it.id))
return set
}
},
created() {
this.loadAll()
},
methods: {
loadAll() {
const pageReq = {...this.pageReq}
pageReq.page -= 1
listWmsItem(this.query, pageReq).then(res => {
const {content, totalElements} = res
content.forEach(it => it.checked = false)
this.list = content
this.total = totalElements
})
},
clickQuery() {
this.pageReq.page = 1;
this.loadAll()
},
handleChangePage(p) {
this.pageReq.page = p
this.loadAll()
},
handleChangeSize(s) {
this.pageReq = {
page: 1,
size: s
}
this.loadAll()
},
moveRight() {
for (let it of this.leftCheckedList) {
if (!this.rightListKeySet.has(it.goodsId)) {
it.checked = false
this.rightList.push({...it, checked: false})
}
}
},
moveLeft() {
for (let i = this.rightList.length - 1; i >= 0; i--) {
if (this.rightList[i].checked) {
this.rightList.splice(i, 1);
}
}
}
}
}
</script>
<style lang="stylus">
.prod-sku-select-wrapper
.center
display flex
align-items stretch
.left, .right
border 1px solid $gray-2
> div
padding 12px
.statistic
border-bottom 1px solid $gray-2
.header
background-color $gray-1
padding 12px
.prods
height 360px
overflow-y auto
> .prod
padding 12px
> .prod + .prod
border-top 1px solid var(--gray-2)
.ops
display flex
flex-direction column
justify-content center
margin 0 16px
</style>
Loading…
Cancel
Save