Commit f2e0340f by chenxin

fix: 自提

parent 304f4414
......@@ -11,6 +11,8 @@
<link rel="stylesheet" type="text/css" href="//at.alicdn.com/t/font_1418963_hrpaaxicjis.css" />
<link rel="stylesheet" type="text/css" href="//at.alicdn.com/t/font_1393418_z4h4445tiwe.css" />
<link rel="stylesheet" type="text/css" href="//at.alicdn.com/t/font_2349215_zw94rco4ss.css" /><!-- 福利中心icon -->
<link rel="stylesheet" type="text/css" href="//at.alicdn.com/t/font_1418963_8ssgac9p1n7.css" /> <!-- 组件库icon -->
<script src="//at.alicdn.com/t/font_1418963_8ssgac9p1n7.js"></script> <!-- 组件库icon svg -->
<link rel="stylesheet" type="text/css" href="//web-1251519181.file.myqcloud.com/custom-element/custom-element.1.0.58.3.css" />
<script src="//at.alicdn.com/t/font_1418963_hrpaaxicjis.js"></script>
<!-- <title>达摩网络GIC——连锁零售商业互联网+,终极解决方案</title> -->
......@@ -30,8 +32,7 @@
<script src="//web-1251519181.file.myqcloud.com/components/base.1.0.0.17.js"></script><!-- 公共方法 -->
<script src="//web-1251519181.file.myqcloud.com/components/layout.1.2.59.js"></script><!-- 布局组件 -->
<script src="//web-1251519181.file.myqcloud.com/components/input.2.0.20.js"></script><!-- input !!3.0组件 -->
<script src="//web-1251519181.file.myqcloud.com/components/people-selector.1.0.10.js"></script><!-- 人群筛选器 -->
<script src="//web-1251519181.file.myqcloud.com/components/store-select.1.1.78.js"></script><!-- 门店选择器 -->
<script src="//web-1251519181.file.myqcloud.com/components/store-select.1.1.84.js"></script><!-- 门店选择器 -->
<script src="//web-1251519181.file.myqcloud.com/components/goods-selector.1.0.51.js"></script><!-- 商品选择器 -->
<script src="//web-1251519181.file.myqcloud.com/components/card-select.1.0.33.js"></script><!-- 卡券选择器 -->
<script src="//web-1251519181.file.myqcloud.com/components/link-tools.2.1.21.js"></script><!-- 链接小工具 -->
......@@ -47,7 +48,7 @@
<script src="//web-1251519181.file.myqcloud.com/components/preview-img.1.0.3.js"></script><!-- 图片预览 -->
<script src="//web-1251519181.file.myqcloud.com/components/delete.1.1.4.js"></script><!-- 删除轻弹窗 -->
<script src="//web-1251519181.file.myqcloud.com/components/input-number.1.0.10.js"></script><!-- 输入框 -->
<script src="//web-1251519181.file.myqcloud.com/components/acc-group-select.1.0.3.js"></script><!-- 账号分组组件 -->
<script src="//web-1251519181.file.myqcloud.com/components/acc-group-select.1.0.4.js"></script><!-- 账号分组组件 -->
<script src="//web-1251519181.file.myqcloud.com/components/editor.1.1.12.js"></script><!-- 富文本编辑器 -->
</body>
</html>
......@@ -83,7 +83,10 @@ let setting = {
},
pickupList: '/pickup/get-pickup-list',
getPickupDetails: '/pickup/get-pickup-details',
delPickup: '/pickup/del-pickup',
delPickup: {
url: '/pickup/del-pickup',
method: 'post',
},
insertPickupStore: { // 新增或修改自提点
url: '/pickup/insert-pickup-store',
method: 'post',
......
......@@ -454,59 +454,10 @@ body .damo-goods-selector{
}
}
// 全部人群
.all-new-people {
color: $gray03;
max-width: 800px;
display: inline-block;
padding: 0 5px;
height: 34px;
line-height: 34px;
background-color: #e9f0ff;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
border-radius: 2px;
}
p.cell-time {
line-height: 18px;
}
// 场景值的 -- 用不上了
.dm-scene {
.el-input {
min-height: 33px !important;
}
}
// 中奖通知
.sms {
width: 290px;
// min-width:290px;
height:80px;
padding: 11px;
background:#fff;
border-radius: 2px;
border:1px dashed $gray-border;
dd {
margin-bottom: 4px;
font-size:14px;
color:$gray01;
line-height:20px;
@include muti-line-ellipsis(1);
}
dt {
@include muti-line-ellipsis(1);
font-size:12px;
color:$gray02;
line-height:17px;
}
}
// 仿btn
.hover-btn {
......
......@@ -55,7 +55,7 @@ export default [
component: () => import('@/views/gift-manage/pickup-form.vue'),
meta: {
type: 'add',
path: '/settinge/pickup-list'
path: '/setting/pickup-list'
}
},
{
......@@ -63,7 +63,7 @@ export default [
component: () => import('@/views/gift-manage/pickup-form.vue'),
meta: {
type: 'edit',
path: '/settinge/pickup-list'
path: '/setting/pickup-list'
}
},
],
......
......@@ -26,6 +26,9 @@
<el-checkbox :label="1">实时库存</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="操作人权限" prop="operAuthType">
<dm-acc-group-select :etype.sync="ruleForm.operAuthType" :group-ids.sync="ruleForm.operAuth" />
</el-form-item>
<el-form-item>
<el-button type="primary" v-if="isAdd" @click="addForm">确认新建</el-button>
<el-button type="primary" :disabled="ruleForm.packageStock == info.packageStock" v-else @click="editForm">保存</el-button>
......@@ -113,6 +116,13 @@ export default {
}
callback();
};
const validateOperAuth = (rule, value, callback) => {
if (this.ruleForm.operAuthType == 2 && !this.ruleForm.operAuth.length) {
callback(new Error('请选择部分分组账号'));
return;
}
callback();
};
return {
loading: false,
cardLoading: false,
......@@ -127,6 +137,8 @@ export default {
endDate: '',
packageStock: undefined,
stockUseType: '', // 库存使用类型(0:占用,1:动态 , 2占用+动态)
operAuthType: 1, // 1所有账号2部分账号3仅创建人
operAuth: []
},
couponForm: {
couponId: '',
......@@ -140,7 +152,8 @@ export default {
remarkName: [ { required: true, message: '请输入备注名', trigger: 'change' } ],
packageStock: [ { required: true, message: '请输入卡券包库存', trigger: 'change' } ],
effectiveMode: [ { required: true, validator: validateSendType, trigger: 'change' } ],
cardIds: [ { required: true, validator: validateCardIds, message: '请选择卡券', trigger: 'change' } ]
cardIds: [ { required: true, validator: validateCardIds, message: '请选择卡券', trigger: 'change' } ],
operAuthType: [ { required: true, validator: validateOperAuth, trigger: 'change' } ],
},
pickerOptions: {
disabledDate(now) {
......@@ -208,13 +221,20 @@ export default {
this.loading = false;
const info = res.result.couponDetail || {};
this.info = info;
const exclude = [ 'operAuth' ]; // 不需要赋值的字段
Object.keys(this.ruleForm).map(v => {
this.ruleForm[v] = info[v];
if (v in info && !exclude.includes(v)) {
this.ruleForm[v] = info[v];
}
});
console.log(this.ruleForm);
// 库存使用类型(0:占用,1:动态 , 2占用+动态)
this.stockType = info.stockUseType == 2 ? [ 0, 1 ] : [ info.stockUseType ] ;
this.dateTime = [ info.beginDate, info.endDate ];
this.couponList = res.result.couponList || [];
if (info.operAuthType == 2) {
this.ruleForm1.operAuth = info.operAuth.split(',');
}
}).finally(() => {
this.loading = false;
});
......
......@@ -33,15 +33,15 @@
</template>
</el-table-column>
<el-table-column prop="packageLogId" label="外部单号" min-width="120px"></el-table-column>
<el-table-column prop="couponPackageName" label="卡券包名称" min-width="140px"></el-table-column>
<el-table-column prop="couponPackageName" label="卡券数量" min-width="130px">
<el-table-column prop="name" label="卡券包名称" min-width="140px"></el-table-column>
<el-table-column label="卡券数量" min-width="130px">
<template slot="header">
<el-tooltip placement="top" content="卡券包中会员真实领取的卡券数量" open-delay="200">
<span class="tooltip-icon">卡券数量</span>
</el-tooltip>
</template>
<template slot-scope="scope">
<el-button type="text" @click="showDetail(scope.row)">{{ scope.row.couponSize || 0 }}</el-button>
<el-button type="text" @click="showDetail(scope.row)">{{ scope.row.receiveCount || 0 }}</el-button>
</template>
</el-table-column>
<el-table-column label="来源" min-width="150px">
......
......@@ -148,7 +148,7 @@ import cardItem from './module/card-item';
import adjustStock from '@/components/libs/adjust-stock';
import syncStock from './module/sync-stock';
import api from '@/api/gic-card';
const { cardList, deleteCard, updateCardStock } = api;
const { cardList, deleteCard, updateCardStock, disableCard } = api;
export default {
name: 'CardList',
......@@ -338,10 +338,27 @@ export default {
this.$refs.adjust.close();
});
},
// 禁用卡券
// 单个禁用卡券
stopData(val) {
showConfirm('<div>禁用后卡券失效,确认禁止?</div>', () => {
// this.deleteCard(val);
showConfirm('<div>禁用后卡券不可找回,确认禁用该卡券?</div>', () => {
this.disableCard([ val ]);
});
},
// 批量禁用
mutiStop() {
showConfirm('<div>确认批量禁用选中数据?</div>', () => {
this.disableCard(this.multipleSelection.map(v => v.couponId));
});
},
// 禁用卡券
disableCard(couponIds) {
this.loading = true;
disableCard({ couponIds: couponIds.join(',') }).then(res => {
this.$tips({ type: 'success', message: '禁用成功!' });
this.loading = false;
this.getTableList();
}).finally(() => {
this.loading = false;
});
},
// 删除卡券
......
<template>
<div>
<el-form-item label="买家可选自提时间">
<el-switch v-model="ruleForm.chooseTimeFlag" :active-value="1" :inactive-value="0"></el-switch>
<p>开启表示买家可选择自提时间,商户需按约定时间备货完成</p>
</el-form-item>
<template v-if="ruleForm.chooseTimeFlag">
<el-form-item label="日期类型">
<el-radio v-model="ruleForm.dateType" :label="1">动态日期</el-radio>
<el-radio v-model="ruleForm.dateType" :label="2">固定日期</el-radio>
</el-form-item>
<el-form-item label="商品备货设置" v-if="ruleForm.dateType == 1">
<div class="mb5">
<el-radio v-model="ruleForm.dynamicType" :label="1">下单当天</el-radio>
<el-input-number class="w100 mr5" v-model="ruleForm.dynamicH" :min="1" :max="24" :controls="false" :precision="0"></el-input-number>小时,
<el-input-number class="w100 mr5" v-model="ruleForm.dynamicM" :max="60" :controls="false" :precision="0"></el-input-number>分钟后,买家可提货
</div>
<div>
<el-radio v-model="ruleForm.dynamicType" :label="2">下单&emsp;&emsp;</el-radio>
<el-input-number class="w100 mr5" v-model="ruleForm.dynamicD" :max="1000" :controls="false" :precision="0"></el-input-number>天后,买家可提货
</div>
</el-form-item>
<el-form-item label="提货有效期" v-if="ruleForm.dateType == 1">
<div class="mb5">
备货完成<el-input-number class="w100 mr5 ml5" v-model="ruleForm.dynamicStop" :min="2" :controls="false" :precision="0"></el-input-number>天后,停止自提
</div>
<div>
<el-radio v-model="ruleForm.dynamicType" :label="2">下单&emsp;&emsp;</el-radio>
<el-input-number class="w100 mr5" v-model="ruleForm.dynamicD" :controls="false"></el-input-number>天后,买家可提货
</div>
</el-form-item>
<el-form-item label="日期范围" v-if="ruleForm.dateType == 2">
<div class="mb10" v-for="(v, i) in ruleForm.fixedTime" :key="i" >
<el-date-picker v-model="v.dataRange" :picker-options="pickerOptionsEnd" is-range format="yy-MM-dd" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="value => limitDataSelect(i, value)"> </el-date-picker>
<el-button v-if="i" type="text" @click="deleteTime(v)" class="delete-btn ml10">删除</el-button>
</div>
<el-button type="text" @click="addTime" :disabled="ruleForm.fixedTime.length >= 5"> <i class="el-icon-plus"></i>添加时间</el-button>
</el-form-item>
<el-form-item label="超期发货单处理">
<div>
<el-radio v-model="ruleForm.timeoutDealType" :label="1">到期自动完成核销</el-radio>
</div>
<div>
<el-radio v-model="ruleForm.timeoutDealType" :label="2">到期自动关闭发货单,若为销售订单请至应用中查看退款情况</el-radio>
</div>
</el-form-item>
</template>
</div>
</template>
<script>
export default {
name: 'PickupFormContent',
props: {
ruleForm: {
type: Object,
default: () => {}
}
},
data() {
return {
// 限制开始时间
pickerOptionsEnd: {
disabledDate(time) {
return time.getTime() < new Date(new Date().toLocaleDateString()).getTime();
}
},
};
},
methods: {
addTime() {
this.ruleForm.fixedTime.push({ dataRange: '' });
},
deleteTime(i) {
this.ruleForm.fixedTime.splice(i, 1);
},
// 时间限制
limitDataSelect(index, val) {
let selectTime = new Date(val[0]).valueOf();
let selectTimeEnd = new Date(val[1]).valueOf();
const vTime = this.ruleForm.fixedTime;
if (index !== 0) {
// 不是第一个
// // 和前面的时间比较
for (let i = index - 1; i >= 0; i--) {
if (vTime[i].dataRange) {
let selectTimePrev = new Date(vTime[i].dataRange[1]).valueOf();
// 和前前一个的存在的结束时间比较
if (selectTime <= selectTimePrev) {
this.$message.error('日期不可重叠!');
vTime[index].dataRange = null;
}
}
}
// 和后面的时间比较
for (let j = index + 1; j < vTime.length; j++) {
if (vTime[j].dataRange) {
let selectTimeAfter = new Date(vTime[j].dataRange[0]).valueOf();
// 和后一个的存在的开始时间比较
if (selectTime >= selectTimeAfter || selectTimeEnd >= selectTimeAfter) {
this.$message.error('日期不可重叠!');
vTime[index].dataRange = null;
}
}
}
} else {
// 和后面的时间比较
for (let j = index + 1; j < vTime.length; j++) {
if (vTime[j].dataRange) {
let selectTimeAfter = new Date(vTime[j].dataRange[0]).valueOf();
// 和后一个的存在的开始时间比较
if (selectTime >= selectTimeAfter || selectTimeEnd >= selectTimeAfter) {
this.$message.error('日期不可重叠!');
vTime[index].dataRange = null;
}
}
}
}
},
}
};
</script>
<style style="scss" scoped>
.w-280 {
width: 280px;
}
</style>
\ No newline at end of file
......@@ -61,7 +61,7 @@ export default {
};
},
created() {
this.$emit('updateBread', [ { breadName: '福利中心' }, { breadName: '通用设置' }, { breadName: '地址库管理' } ]);
this.$emit('updateBread', [ { breadName: '福利中心' }, { breadName: '通用设置' }, { breadName: '自提点设置' } ]);
},
mounted() {
this.getTableList();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment