Authored by 陈峰

merge

import Vue from 'vue';
import purview from './purview';
import prodImage from './prod-image';
import time from './time';
Vue.directive('purview', purview);
Vue.directive('prod-img', prodImage);
Vue.directive('time', time);
... ...
import _ from 'lodash';
import moment from 'moment';
export default {
// unix timestamp format
// use example:
// v-time="1495787643"
// v-time="{time: 1495787643}"
// v-time="{time: 1495787643, format: 'moment支持的format格式'}"
bind(el, binding) {
let format;
let unixStamp;
const value = binding.value;
const isNum = _.isFinite(value);
const isObj = _.isPlainObject(value);
const defaultFmt = 'YYYY-MM-DD HH:mm:ss';
if (isNum) {
unixStamp = value;
format = defaultFmt;
} else if (isObj) {
unixStamp = binding.value.time;
format = binding.value.format || defaultFmt;
} else {
unixStamp = 'Invalid value.';
}
el.innerHTML = moment.unix(unixStamp).format(format);
}
};
... ... @@ -287,9 +287,17 @@
this.productService.updateSalesPrice(params)
.then(res => {
this.tableData[index].salesPrice = salesPrice;
row.changePrice = false;
this.$Message.success(res.data.message);
const data = res.data;
const code = data.code;
if (code === 200) {
this.tableData[index].salesPrice = salesPrice;
row.changePrice = false;
this.$Message.success(data.message);
} else {
row.changePrice = false;
this.$Message.error(data.message);
}
});
},
editProduct(skn) {
... ...
... ... @@ -24,14 +24,14 @@
<select-category :value="categoryValue" @select-change="sortChange"></select-category>
</filter-item>
<filter-item :label="filters.verifyStatus.label">
<Select v-model.trim="filters.verifyStatus.model">
<Select v-model.trim="filters.verifyStatus.model" clearable>
<Option v-for="option in filters.verifyStatus.options"
:value="option.value"
:key="option.value">{{option.label}}</Option>
</Select>
</filter-item>
<filter-item :label="filters.stockStatus.label">
<Select v-model.trim="filters.stockStatus.model">
<Select v-model.trim="filters.stockStatus.model" clearable>
<Option v-for="option in filters.stockStatus.options"
:value="option.value"
:key="option.value">{{option.label}}</Option>
... ... @@ -102,9 +102,11 @@
maxSortId: fts.sort.first.model,
middleSortId: fts.sort.second.model,
smallSortId: fts.sort.third.model,
brandId: fts.brand.model !== -1 ? fts.brand.model : null,
auditStatus: fts.verifyStatus.model !== -1 ? fts.verifyStatus.model : null,
stock: fts.stockStatus.model !== -1 ? this.filters.stockStatus.model : null
brandId: fts.brand.model === '' || fts.brand.model === null ?
null : fts.brand.model,
auditStatus: fts.verifyStatus.model ? fts.verifyStatus.model : null,
stock: fts.stockStatus.model === '' || fts.stockStatus.model === null ?
null : this.filters.stockStatus.model
};
return data;
... ... @@ -115,7 +117,6 @@
this.useFilterSign = true;
this.productList(params);
this.pageData.current = 1;
},
clearFilter() {
const store = onSaleStore.apply(this);
... ... @@ -262,9 +263,17 @@
this.productService.updateSalesPrice(params)
.then(res => {
this.tableData[index].salesPrice = salesPrice;
row.changePrice = false;
this.$Message.success(res.data.message);
const data = res.data;
const code = data.code;
if (code === 200) {
this.tableData[index].salesPrice = salesPrice;
row.changePrice = false;
this.$Message.success(data.message);
} else {
row.changePrice = false;
this.$Message.error(data.message);
}
});
},
editProduct(skn) {
... ...
... ... @@ -156,72 +156,50 @@ export default function() {
filterFields: {
sknCode: {
label: 'SKN编码',
labelSpan: 6,
model: '',
holder: '',
fieldSpan: 18
holder: ''
},
prodCode: {
label: '商家编码',
labelSpan: 6,
model: '',
holder: '',
fieldSpan: 18
holder: ''
},
prodName: {
label: '商品名称',
labelSpan: 6,
model: '',
holder: '',
fieldSpan: 18
holder: ''
},
prodBarCode: {
label: '商品条码',
labelSpan: 6,
model: '',
holder: '',
fieldSpan: 18
holder: ''
},
sort: {
first: {
label: '选择类目',
holder: '选择一级类目',
labelSpan: 6,
fieldSpan: 18,
model: ''
},
second: {
label: '二级类目',
holder: '选择二级类目',
labelSpan: 6,
fieldSpan: 18,
model: ''
},
third: {
label: '三级类目',
holder: '选择三级类目',
labelSpan: 6,
fieldSpan: 18,
model: ''
}
},
brand: {
label: '选择品牌',
labelSpan: 6,
fieldSpan: 18,
model: ''
},
verifyStatus: {
label: '审核状态',
labelSpan: 6,
fieldSpan: 18,
model: -1,
model: '',
options: [
{
value: -1,
label: '全部'
},
{
value: 1,
label: '下架待审核'
},
... ... @@ -233,15 +211,9 @@ export default function() {
},
stockStatus: {
label: '库存情况',
labelSpan: 6,
fieldSpan: 18,
model: -1,
model: '',
options: [
{
value: -1,
label: '全部'
},
{
value: 1,
label: '有库存'
},
... ...
... ... @@ -115,7 +115,9 @@ export default function() {
default: '-'
};
return h('span', vsText[vs]);
return (
<span>{vsText[vs]}</span>
);
}
},
{
... ... @@ -171,13 +173,9 @@ export default function() {
},
priceStatus: {
label: '价格状态',
model: -1,
model: '',
options: [
{
value: -1,
label: '全部'
},
{
value: 1,
label: '启用'
},
... ... @@ -189,13 +187,9 @@ export default function() {
},
saleStatus: {
label: '销售状态',
model: -1,
model: '',
options: [
{
value: -1,
label: '全部'
},
{
value: 8,
label: '新品未上架'
},
... ... @@ -211,13 +205,9 @@ export default function() {
},
stockStatus: {
label: '库存状态',
model: -1,
model: '',
options: [
{
value: -1,
label: '全部'
},
{
value: 1,
label: '有库存'
},
... ...
... ... @@ -14,21 +14,21 @@
:placeholder="filters.prodBarCode.holder"></Input>
</filter-item>
<filter-item :label="filters.priceStatus.label">
<Select v-model.trim="filters.priceStatus.model">
<Select v-model.trim="filters.priceStatus.model" clearable>
<Option v-for="option in filters.priceStatus.options"
:value="option.value"
:key="option.value">{{option.label}}</Option>
</Select>
</filter-item>
<filter-item :label="filters.saleStatus.label">
<Select v-model.trim="filters.saleStatus.model">
<Select v-model.trim="filters.saleStatus.model" clearable>
<Option v-for="option in filters.saleStatus.options"
:value="option.value"
:key="option.value">{{option.label}}</Option>
</Select>
</filter-item>
<filter-item :label="filters.stockStatus.label">
<Select v-model.trim="filters.stockStatus.model">
<Select v-model.trim="filters.stockStatus.model" clearable>
<Option v-for="option in filters.stockStatus.options"
:value="option.value"
:key="option.value">{{option.label}}</Option>
... ... @@ -117,7 +117,7 @@
_.each(selectKeys, key => {
const val = values[key];
if (val === -1) {
if (!(val + '').length || _.isNull(val)) {
values[key] = null;
}
});
... ...
... ... @@ -10,25 +10,26 @@
</filter-item>
</layout-filter>
<layout-list>
<Table border :columns="columns"
<Table border :columns="columns" :row-class-name="rowClassName"
@on-selection-change="selectChange" :data="dataList"></Table>
</layout-list>
</layout-body>
</template>
<script>
import store from './store/detail';
import {ReturnService} from 'services/repository';
import _ from 'lodash';
import { detail } from './store';
export default {
data() {
return store.apply(this);
return detail.apply(this);
},
created() {
this.returnService = new ReturnService();
const returnId = this.$route.params.id;
const supplierId = this.$route.params.supplierId;
const supplierName = this.$route.params.supplierName;
const supplierId = this.$route.query.sId;
const supplierName = this.$route.query.sName;
const params = { supplierId, returnedSupplierId: returnId };
this.returnId = returnId;
... ... @@ -43,8 +44,32 @@
},
methods: {
resolveRes(data) {
let totalNum = 0;
let totalOut = 0;
this.dataList = data.records;
this.dataList.push({productSkn: '总计'});
_.each(this.dataList, item => {
totalNum += item.nums;
totalOut += item.outNums;
});
this.dataList.push({
productSkn: '总计',
nums: totalNum,
outNums: totalOut,
_isLastLine: true,
cellClassName: {
productSkn: 'cell-total',
occupiedNum: 'cell-occupy',
nums: 'cell-num',
outNums: 'cell-out-num'
}
});
},
rowClassName(row) {
if (row._isLastLine) {
return 'last-line';
}
return '';
},
backList() {
this.$router.push({ name: 'repository.prodReturn.list' });
... ... @@ -72,4 +97,16 @@
margin-right: 20px;
}
.last-line {
td {
border: none;
}
}
.cell-num,
.cell-occupy,
.cell-total,
.cell-out-num {
border-right: 1px solid #e3e8ee !important;
}
</style>
... ...
... ... @@ -169,9 +169,11 @@
this.$router.push({
name: 'repository.prodReturn.detail',
params: {
supplierId,
supplierName,
id: returnId
},
query: {
sId: supplierId,
sName: supplierName
}
});
... ...
... ... @@ -22,6 +22,10 @@ export default function() {
render: (h, params) => {
const row = params.row;
if (row._isLastLine) {
return '';
}
return (
<span>{row.productSkc}({row.colorName})</span>
);
... ... @@ -33,6 +37,10 @@ export default function() {
render: (h, params) => {
const row = params.row;
if (row._isLastLine) {
return '';
}
return (
<span>{row.productSku}({row.sizeName})</span>
);
... ... @@ -44,6 +52,10 @@ export default function() {
render: (h, params) => {
const row = params.row;
if (row._isLastLine) {
return '';
}
return (
<span>{row.factoryCode || '-'}</span>
);
... ... @@ -95,6 +107,10 @@ export default function() {
render: (h, params) => {
const row = params.row;
if (row._isLastLine) {
return '';
}
return (
<span>{row.returndReason || '-'}</span>
);
... ... @@ -106,6 +122,10 @@ export default function() {
render: (h, params) => {
const row = params.row;
if (row._isLastLine) {
return '';
}
return (
<span>{row.expressCode || '-'}</span>
);
... ... @@ -120,6 +140,10 @@ export default function() {
title: '请退时间',
align: 'center',
render: (h, params) => {
if (params.row._isLastLine) {
return '';
}
return (
<span>{timeFormat(params.row.createTime)}</span>
);
... ... @@ -129,6 +153,10 @@ export default function() {
title: '退库时间',
align: 'center',
render: (h, params) => {
if (params.row._isLastLine) {
return '';
}
return (
<span>{timeFormat(params.row.outTime)}</span>
);
... ...
/**
* index.js
* @author: leo
* @date: 07/06/2017
*/
import list from './list';
import detail from './detail';
export {
list,
detail
};
... ...
... ... @@ -25,6 +25,7 @@
<script>
import _ from 'lodash';
import {InvoiceService} from 'services/repository';
import timeFormat from 'filters/time-format';
export default {
name: 'modal-invoice',
... ... @@ -73,7 +74,7 @@ export default {
width: 155,
render: (h, params) => {
return (
<span v-time={params.row.createTime}></span>
<span>{timeFormat(params.row.createTime)}</span>
);
}
}, {
... ...
... ... @@ -3,6 +3,8 @@
* @author: qi.li <qi.li@yoho.cn>
* @date: 2017/04/13
*/
import timeFormat from 'filters/time-format';
export default function() {
return {
columns: [
... ... @@ -19,7 +21,7 @@ export default function() {
const row = params.row;
return (
<p v-time={{time: row.createTime}}></p>
<p>{timeFormat(row.createTime)}</p>
);
}
},
... ...
... ... @@ -4,6 +4,8 @@
* @date: 04/05/2017
*/
import timeFormat from 'filters/time-format';
export default function() {
return {
filters: {
... ... @@ -56,7 +58,7 @@ export default function() {
align: 'center',
render(h, params) {
return (
<span v-time={params.row.createTime}></span>
<span>{timeFormat(params.row.createTime)}</span>
);
}
},
... ...