Authored by 陈峰

Merge branch 'release/1.0' of http://git.yoho.cn/fe/yoho-shop-manage into release/1.0

... ... @@ -13,7 +13,7 @@
<Row>
<Col span="8">
<Form-item label="品牌" prop="brandId">
<Select v-model="product.brandId" placeholder="请选择" :label-in-value="true" @on-change="selectBrand">
<Select v-model="product.brandId" placeholder="请选择" @on-change="selectBrand">
<Option v-for="brand in brands" :value="brand.brandId" :key="brand">{{ brand.brandName }}</Option>
</Select>
</Form-item>
... ... @@ -59,6 +59,7 @@
<script>
import api from 'product-create/api';
import _ from 'lodash';
export default {
props: ['step', 'product'],
... ... @@ -142,7 +143,7 @@ export default {
this.product.smallSortName = value.label;
},
selectBrand: function(value) {
this.product.brandName = value.label;
this.product.brandName = _.find(this.brands, {brandId: value}).brandName;
},
getBrand: function() {
return api.getBrand().then((result) => {
... ...
... ... @@ -2,7 +2,8 @@
<div class="cell-deliver">
<p class="row">
发货<span class="num">
<Input v-model="deliver"></Input>
<Input v-if="rowDisabled" v-model="deliver" placeholder="数量" disabled></Input>
<Input v-else placeholder="数量"></Input>
</span>
</p>
<p class="row">已发数:{{shipNum}}</p>
... ... @@ -13,6 +14,9 @@
export default {
name: 'CellDeliver',
props: {
rowDisabled: {
type: Boolean
},
rowIndex: {
type: Number
},
... ...
... ... @@ -5,6 +5,7 @@
</div>
<div class="detail">
<p>SKU:{{sku}}</p>
<p>SKN:{{skn}}</p>
<p>规格:{{color}}/{{size}}</p>
<p>名称:{{name}}</p>
<p>品牌:{{brand}}</p>
... ... @@ -17,6 +18,9 @@
export default {
name: 'CellInfo',
props: {
skn: {
type: [String, Number]
},
sku: {
type: [String, Number]
},
... ...
... ... @@ -2,12 +2,14 @@
<div class="cell-stock-out">
<p class="row">
缺货<span class="num">
<Input number v-model="uploadNum"></Input>
<Input v-if="rowDisabled" v-model="uploadNum" placeholder="数量" disabled></Input>
<Input v-else placeholder="数量"></Input>
</span>
</p>
<p class="row">缺货数:{{lackNum}}</p>
<p class="row">
<Button type="error" @click="showModal">上传确认缺货</Button>
<Button v-if="rowDisabled" type="error" @click="showModal" disabled>上传确认缺货</Button>
<Button v-else type="error" @click="showModal">上传确认缺货</Button>
</p>
</div>
</template>
... ... @@ -18,6 +20,9 @@
export default {
name: 'CellStockOut',
props: {
rowDisabled: {
type: Boolean
},
rowIndex: {
type: [String, Number]
},
... ...
... ... @@ -10,47 +10,35 @@ export default () => {
orderNo: {
label: '入库单号',
model: '',
holder: '入库单号',
holder: '',
},
expressNo: {
label: '物流单号',
labelSpan: 6,
model: '',
holder: '',
fieldSpan: 18
holder: ''
},
prodCode: {
label: '商品编码',
labelSpan: 6,
model: '',
holder: '',
fieldSpan: 18
holder: 'SKN'
},
merChantCode: {
label: '商家编码',
labelSpan: 6,
model: '',
holder: '',
fieldSpan: 18
holder: '商家商品编码'
},
prodBarCode: {
label: '商品条码',
labelSpan: 6,
model: '',
holder: '',
fieldSpan: 18
holder: ''
},
orderTime: {
label: '下单时间',
labelSpan: 6,
model: '',
holder: '',
fieldSpan: 18
holder: ''
},
prodStatus: {
label: '商品状态',
labelSpan: 6,
fieldSpan: 18,
model: -1,
options: [
{
... ... @@ -102,6 +90,7 @@ export default () => {
align: 'center',
render(row){
return `<cell-prd-info
:skn="row.productSkn"
:sku="row.productSku"
:color="row.colorName"
:name="row.productName"
... ...
... ... @@ -23,7 +23,7 @@ export default () => {
label: '商品编码',
labelSpan: 6,
model: '',
holder: 'SKN/SKU',
holder: 'SKN',
fieldSpan: 18
},
prodBarCode: {
... ...
... ... @@ -10,17 +10,17 @@ export default () => {
orderNo: {
label: '入库单号',
model: '',
holder: '入库单号',
holder: '',
},
prodCode: {
label: '商品编码',
model: '',
holder: ''
holder: 'SKN'
},
merChantCode: {
label: '商家编码',
model: '',
holder: '',
holder: '商家商品编码',
},
prodBarCode: {
label: '商品条码',
... ... @@ -81,6 +81,7 @@ export default () => {
align: 'center',
render(row){
return `<cell-prd-info
:skn="row.productSkn"
:sku="row.productSku"
:color="row.colorName"
:name="row.productName"
... ... @@ -108,6 +109,7 @@ export default () => {
render(row, column, i){
return `<cell-deliver
:row-index="${i}"
:row-disabled="${row._disabled}"
:ship-num="row.shipmentsNums"
@deliver-change="deliverChange">
</cell-deliver>`
... ... @@ -119,6 +121,7 @@ export default () => {
render(row, column, index){
return `<cell-stock-out
:row-index="${index}"
:row-disabled="${row._disabled}"
:lack-num="row.lackNum"
@lack-num-change="lackNumChange"
@click-upload="showUploadModal(${index})"
... ...
... ... @@ -35,7 +35,7 @@
</LayoutFilter>
<LayoutAction>
<Button type="primary" @click="sendOut">发货</Button>
<Button type="primary" @click="deliver">发货</Button>
</LayoutAction>
<LayoutList>
... ... @@ -139,16 +139,20 @@
pageSize: 20
}))
.then(res => {
const fmt = 'YYYY-MM-DD HH:mm:ss';
const list = res.data.records;
this.processData(res.data);
});
},
processData(data) {
const fmt = 'YYYY-MM-DD HH:mm:ss';
const list = data.records;
_.each(list, i => {
i.createTime = moment(i.createTime).format(fmt);
});
_.each(list, i => {
i.createTime = moment(i.createTime).format(fmt);
i._disabled = i.isOvertime === 'Y';
});
this.table.list = list;
this.page.total = res.data.totalCount;
});
this.table.list = list;
this.page.total = data.totalCount;
},
filterSearch(){
const params = this.params();
... ... @@ -185,13 +189,27 @@
const v = data.value;
this.table.list[i].inputDeliverNum = +v;
},
sendOut(){
const len = this.deliverRows.length;
deliver(){
if(this.checkDeliver()) {
this.$refs.deliverModal.show();
}
},
checkDeliver() {
const rows = this.deliverRows;
const len = rows.length;
if(!len) {
this.$Message.error('请先勾选要发货的订单');
return;
this.$Message.error('请勾选要发货的订单');
return false;
}
this.$refs.deliverModal.show();
// let invalidRows;
// _.each(rows, (v, i) => {
// console.log(v, i)
// return false;
// });
return true;
},
setModel(k, v) {
this.filters[k].model = v;
... ... @@ -212,10 +230,14 @@
},
showUploadModal(index) {
const row = this.table.list[index];
const lackNum = row.inputLackNum;
const inputLackNum = row.inputLackNum;
const buyNum = row.buyingNums;
const shipNum = row.shipmentsNums;
const lackNum = row.lackNum;
const needDeliver = buyNum - lackNum - shipNum;
if(!lackNum) {
this.$Message.error('请输入缺货数量');
if(!inputLackNum || inputLackNum > needDeliver) {
this.$Message.error('请输入缺货数量,且缺货数量不能大于当前需发数', 3);
return;
}
this.$refs.stockOutModal.show(row);
... ... @@ -235,7 +257,6 @@
<style lang="scss">
.ivu-table .over-time td{
background-color: #2db7f5;
color: #fff;
background-color: #fcecec;
}
</style>
... ...
... ... @@ -87,6 +87,7 @@ function countBindProduct(categoryId) {
.then(res => res.data);
}
/**
* 增加类目中关联的商品
* @param categoryId {string | array}
... ... @@ -97,7 +98,7 @@ function createBindProduct(categoryId, productSKN) {
}
return request.post(apiUrl.createBindProduct, {
categoryId, productSKN: _.isArray(productSKN) ? productSKN.join(',') : productSKN
categoryId, productSKN: _.isArray(productSKN) ? productSKN : [productSKN]
}).then(res => res.data);
}
... ... @@ -108,7 +109,7 @@ function createBindProduct(categoryId, productSKN) {
*/
function deleteBindProduct(categoryId, productSKN) {
return request.post(apiUrl.deleteBindProduct, {
categoryId, productSKN: _.isArray(productSKN) ? productSKN.join(',') : productSKN
categoryId, productSKN: _.isArray(productSKN) ? productSKN : [productSKN]
}).then(res => res.data);
}
... ...