Authored by OF1706

m

... ... @@ -4,6 +4,7 @@ import prodReturn from './return';
import supplement from './supplement';
import invoice from './invoice';
import express from './express';
import sellback from './sellback';
export default {
diff,
... ... @@ -11,5 +12,6 @@ export default {
supplement,
prodReturn,
invoice,
express
express,
sellback
};
... ...
/**
* Created by GeXuHui on 2017/7/26.
*/
export default {
path: '/sellback.html',
name: 'sellback',
component: () => import(/* webpackChunkName: "repository.sellback" */'./list'),
meta: {
pageName: '销退入库'
}
};
\ No newline at end of file
... ...
<template>
<layout-body>
<layout-filter>
<filter-item :label="filters.id.label">
<Input v-model.trim="filters.id.model"
:placeholder="filters.id.holder" maxlength="9" ></Input>
</filter-item>
<filter-item :label="filters.expressNumber.label">
<Input v-model.trim="filters.expressNumber.model"
:placeholder="filters.expressNumber.holder" ></Input>
</filter-item>
<filter-item :label="filters.productSkn.label">
<Input v-model.trim="filters.productSkn.model"
:placeholder="filters.productSkn.holder" maxlength="9"></Input>
</filter-item>
<filter-item :label="filters.skuFactoryCode.label">
<Input v-model.trim="filters.skuFactoryCode.model"
:placeholder="filters.skuFactoryCode.holder"></Input>
</filter-item>
<filter-item>
<Button type="primary" @click="getExpress">筛选</Button>
<Button type="warning" @click="exportList">导出</Button>
<Button @click="clearFilters">清空条件</Button>
</filter-item>
</layout-filter>
<layout-list>
<Table border :columns="tableCols" :data="tableData"></Table>
<Page :total="pageData.total" :current="pageData.current"
@on-change="pageChange" :page-size="20" show-total></Page>
</layout-list>
</layout-body>
</template>
<script>
import {list} from './store';
import ExpressService from 'services/repository/sellback-service';
export default {
created() {
this.expressService = new ExpressService();
},
data() {
return list.call(this);
},
mounted() {
this.getExpress();
},
methods: {
clearFilters() {
this.filters.id.model = null;
this.filters.expressNumber.model = null;
this.filters.productSkn.model = null;
this.filters.skuFactoryCode.model = null;
this.pageData.current = 1;
this.pageData.total = 0;
this.getExpress();
},
filtersParams() {
let params = {};
if (this.filters.id.model) {
if (this.isNumber(this.filters.id.model)) {
params.proReqFormId = this.filters.id.model;
} else {
return Promise.reject('入库单号必须是数字');
}
}
if (this.filters.expressNumber.model) {
params.expressNumber = this.filters.expressNumber.model;
}
if (this.filters.productSkn.model) {
if (this.isNumber(this.filters.productSkn.model)) {
params.productSkn = this.filters.productSkn.model;
} else {
return Promise.reject('skn必须是数字');
}
}
if (this.filters.skuFactoryCode.model) {
params.skuFactoryCode = this.filters.skuFactoryCode.model;
}
params.pageSize = this.pageData.pageSize;
params.pageNo = this.pageData.current;
return Promise.resolve(params);
},
getExpress() {
this.$Loading.start();
return this.filtersParams().then((params) => {
return this.expressService.list(params);
}).then((result) => {
if (result.code === 200) {
this.pageData.total = result.data.totalCount;
this.pageData.current = result.data.pageNo;
this.tableData = result.data.records;
}
this.$Loading.finish();
}).catch((err) => {
this.$Loading.finish();
this.$Message.error(err);
});
},
info(data) {
this.$router.push({
name: 'repository.express.info',
params: {
id: data.expressNumber
},
query: {
time: data.createTime
}
});
},
exportList() {
this.expressService.exportList().then((url) => {
window.open(url, '_blank');
});
},
isNumber(numStr) {
const isNumber = /^[0-9]+$/;
return isNumber.test(numStr);
}
}
};
</script>
... ...
/**
* Created by GeXuHui on 2017/6/27.
*/
import list from './list';
export {
list
};
... ...
/**
* on sell page store
* @author: GeXuHui <qi.li@yoho.cn>
* @date: 2017/07/26
*/
import moment from 'moment';
export default function() {
return {
tableCols: [{
title: '商品图片',
key: 'expressNumber',
align: 'center',
render: (h, params) => {
return (
<div>
{params.row.expressNumber} ({params.row.expressName})
</div>
);
}
},
{
title: '订单号',
key: 'createTime',
align: 'center',
render: (h, params) => {
let time = moment.unix(params.row.createTime);
return (
<div>
<div> {time.format('YYYY-MM-DD')} </div>
<div> {time.format('HH:mm:ss')} </div>
</div>
);
}
},
{
title: '操作',
key: 'action',
align: 'center',
render: (h, params) => {
return (
<div class="action-btn-row">
<i-button type="success" size="small" onClick={() => this.info(params.row)}>查看明细</i-button>
</div>
);
}
}],
tableData: [],
pageData: {
total: 0,
current: 1,
pageSize: 20
},
filters: {
id: {
label: '订单号',
labelSpan: 6,
model: '',
holder: '',
fieldSpan: 18
},
expressNumber: {
label: '物流单号',
labelSpan: 6,
model: '',
holder: '',
fieldSpan: 18
},
productSkn: {
label: 'SKN编码',
labelSpan: 6,
model: '',
holder: '',
fieldSpan: 18
},
skuFactoryCode: {
label: '商品条码',
labelSpan: 6,
model: '',
holder: '',
fieldSpan: 18
},
}
};
}
... ...
/**
* Created by GeXuHui on 2017/7/26.
*/
import Service from '../service';
const apiUrl = {
listSellBack: '/erp/sellBackList',
};
class SellService extends Service {
list(params) {
return this.post(apiUrl.listSellBack, params);
}
}
export default SellService;
... ...