Commit 19a1ec5f authored by lihui's avatar lihui

Merge branch 'feature/activity' into test

parents 9ed2e448 49660a39
...@@ -96,6 +96,15 @@ ...@@ -96,6 +96,15 @@
</el-card> </el-card>
</section> </section>
</div> </div>
<div class="button-close">
<el-button
class="button-block"
size="medium"
type="primary"
@click="closePage"
> </el-button
>
</div>
</div> </div>
</template> </template>
...@@ -105,7 +114,6 @@ import { ElMessage } from "element-plus"; ...@@ -105,7 +114,6 @@ import { ElMessage } from "element-plus";
import dayJs from "dayjs"; import dayJs from "dayjs";
export default { export default {
components: {},
props: {}, props: {},
data() { data() {
return { return {
...@@ -132,10 +140,6 @@ export default { ...@@ -132,10 +140,6 @@ export default {
marketing_id: this.$route.query.marketing_id marketing_id: this.$route.query.marketing_id
}) })
]); ]);
// let data = await ActivityService.checkActivityDetail({
// marketing_id: this.$route.query.marketing_id,
// marketing_type: this.$route.query.marketing_type
// });
this.pageLoading = false; this.pageLoading = false;
this.goodsList = dataArr[0].result.goods_list; this.goodsList = dataArr[0].result.goods_list;
...@@ -171,6 +175,8 @@ export default { ...@@ -171,6 +175,8 @@ export default {
this.showTimer = "已结束"; this.showTimer = "已结束";
} }
}, },
// 定时器
myTimer() { myTimer() {
let dateNow = dayJs(); let dateNow = dayJs();
this.timer = setInterval(() => { this.timer = setInterval(() => {
...@@ -181,6 +187,10 @@ export default { ...@@ -181,6 +187,10 @@ export default {
clearInterval(this.timer); clearInterval(this.timer);
} }
}, 1000); }, 1000);
},
closePage() {
this.$router.go(-1);
} }
}, },
async created() { async created() {
...@@ -196,6 +206,7 @@ export default { ...@@ -196,6 +206,7 @@ export default {
.wrapper { .wrapper {
height: 100%; height: 100%;
display: flex; display: flex;
overflow-y: scroll;
flex-direction: column; flex-direction: column;
justify-content: flex-start; justify-content: flex-start;
align-items: center; align-items: center;
...@@ -287,5 +298,11 @@ export default { ...@@ -287,5 +298,11 @@ export default {
} }
} }
} }
.button-close {
margin: 10px 0 30px;
.button-block {
width: 200px;
}
}
} }
</style> </style>
...@@ -228,7 +228,10 @@ export default { ...@@ -228,7 +228,10 @@ export default {
if (dateNow.diff(dayJs(item.start_time)) < 0) { if (dateNow.diff(dayJs(item.start_time)) < 0) {
// 开始时间大于当前时间 return 未开始 // 开始时间大于当前时间 return 未开始
activityStatusText = "未开始"; activityStatusText = "未开始";
} else if (dayJs(item.end_time).diff(dayJs(item.start_time)) > 0) { } else if (
dateNow.diff(dayJs(item.start_time)) > 0 &&
dateNow.diff(dayJs(item.end_time)) < 0
) {
// 结束时间大于开始时间 return 进行中 // 结束时间大于开始时间 return 进行中
activityStatusText = "进行中"; activityStatusText = "进行中";
} else if (dateNow.diff(dayJs(item.end_time)) > 0) { } else if (dateNow.diff(dayJs(item.end_time)) > 0) {
...@@ -255,7 +258,6 @@ export default { ...@@ -255,7 +258,6 @@ export default {
// 点击活动标题 // 点击活动标题
async handleHeadline(val) { async handleHeadline(val) {
console.log(val);
this.$router.push({ this.$router.push({
name: "ActivityDetail", name: "ActivityDetail",
query: { query: {
...@@ -282,7 +284,8 @@ export default { ...@@ -282,7 +284,8 @@ export default {
handleEnd(val) { handleEnd(val) {
this.storeQuery = { this.storeQuery = {
marketing_id: val.activiteId, marketing_id: val.activiteId,
online_status: 2 // 1 启用 2 关闭 online_status: 2, // 1 启用 2 关闭
end_time: dayJs().format("YYYY-MM-DD HH:mm:ss")
}; };
}, },
// 开始 // 开始
......
...@@ -131,7 +131,11 @@ ...@@ -131,7 +131,11 @@
剩余库存:<span>{{ inventoryRest }}</span> 剩余库存:<span>{{ inventoryRest }}</span>
</div> </div>
<br /> <br />
<el-form-item label="商家"> <el-form-item
label="商家"
prop="business1"
:rules="[{ required: true, message: '请选择商家' }]"
>
<el-select v-model="commodityForm.business1" placeholder="请选择"> <el-select v-model="commodityForm.business1" placeholder="请选择">
<el-option <el-option
v-for="item in businessOpt" v-for="item in businessOpt"
...@@ -390,6 +394,19 @@ export default { ...@@ -390,6 +394,19 @@ export default {
type: "success", type: "success",
}); });
this.pindanGoodsMet(); this.pindanGoodsMet();
setTimeout(() => {
for (var i in this.comTableData) {
if (this.comTableData[i].goods_sku_id == goodsSkuID) {
this.comTableData.splice(i, 1);
}
}
for (var j in this.comLibTableData) {
if (this.comLibTableData[j].goods_sku_id == goodsSkuID) {
this.comTableData.push(this.comLibTableData[j]);
}
}
},500);
this.addCommodityPopup = false; this.addCommodityPopup = false;
} else { } else {
ElMessage.error(res.reason); ElMessage.error(res.reason);
...@@ -436,7 +453,6 @@ export default { ...@@ -436,7 +453,6 @@ export default {
message: "添加商品成功", message: "添加商品成功",
type: "success", type: "success",
}); });
// [res.result.goods_info, ...this.multipleSelection];
this.comTableData.push(res.result.goods_info); this.comTableData.push(res.result.goods_info);
this.addCommodityPopup = false; this.addCommodityPopup = false;
} else { } else {
...@@ -491,17 +507,18 @@ export default { ...@@ -491,17 +507,18 @@ export default {
if (this.comTableData.length == 0) { if (this.comTableData.length == 0) {
this.comTableData.push(...this.multipleSelection); this.comTableData.push(...this.multipleSelection);
} else { } else {
for (var i in this.comTableData) { this.multipleSelection.forEach((item) => {
for(var j in this.multipleSelection) let num = 0;
if ( this.comTableData.some((val) => {
this.comTableData[i].goods_sku_id != num++;
this.multipleSelection[j].goods_sku_id if (val.goods_sku_id === item.goods_sku_id) {
) { val.goods_sku_id = item.goods_sku_id;
continue; return true;
} else { } else if (num === this.comTableData.length) {
this.comTableData.push(this.multipleSelection[j]); this.comTableData.push(Object.assign({}, item));
} }
} });
});
} }
}, },
......
<template> <template>
<div id="map" class="mapContainer"> <div id="map" class="mapContainer">
<!-- map -->
<div class="mapWrapper"> <div class="mapWrapper">
<div class="search"> <div class="search">
<el-form-item label-position="left"> <el-form ref="form" label-width="80px">
<el-button @click="handleSearch">搜索</el-button> <el-form-item label-position="left">
<el-input <el-button @click="handleSearch">搜索</el-button>
class="dialog-input" <el-input
v-model="searchKey" class="dialog-input"
placeholder="请输入关键字" v-model="searchKey"
autocomplete="off" placeholder="请输入关键字"
></el-input> autocomplete="on"
</el-form-item> >
<template #suffix>
<i
@click="searchKey = ''"
class="el-input__icon el-icon-close"
></i>
</template>
</el-input>
</el-form-item>
</el-form>
<div id="js-result" v-show="searchKey" class="result"></div> <div id="js-result" v-show="searchKey" class="result"></div>
</div> </div>
<div id="js-container" class="myMap"> <div id="js-container" class="myMap">
正在加载数据 ... 正在加载数据 ...
</div> </div>
</div> </div>
<!-- info -->
<div class="mapInfo"> <div class="mapInfo">
<!-- <div class="search" v-if="placeSearch">
<input type="text" placeholder="请输入关键字" v-model="searchKey" />
<button type="button" @click="handleSearch">搜索</button>
<div id="js-result" v-show="searchKey" class="result"></div>
</div> -->
<h3 class="title">拖拽选址</h3> <h3 class="title">拖拽选址</h3>
<ul class="info"> <ul class="info">
<li><span>经度:</span>{{ dragData.lng }}</li> <li><span>经度:</span>{{ dragData.lng }}</li>
...@@ -34,6 +35,10 @@ ...@@ -34,6 +35,10 @@
<li><span>地址:</span>{{ dragData.address }}</li> <li><span>地址:</span>{{ dragData.address }}</li>
</ul> </ul>
</div> </div>
<div class="confirmButton">
<el-button @click="cancel">取 消</el-button>
<el-button type="primary" @click="confirm">确 定</el-button>
</div>
</div> </div>
</template> </template>
...@@ -43,6 +48,7 @@ export default { ...@@ -43,6 +48,7 @@ export default {
name: "app", name: "app",
data() { data() {
return { return {
dialogVisible: true,
MapCityName: "北京", MapCityName: "北京",
searchKey: "", searchKey: "",
dragData: { dragData: {
...@@ -56,6 +62,15 @@ export default { ...@@ -56,6 +62,15 @@ export default {
}; };
}, },
methods: { methods: {
// 取消
cancel() {
this.$emit("hideMapDialog", false);
},
// 确认
confirm() {
this.$emit("getMapInfo", this.dragData);
this.$emit("hideMapDialog", false);
},
// 搜索 // 搜索
handleSearch() { handleSearch() {
if (this.searchKey) { if (this.searchKey) {
...@@ -75,7 +90,6 @@ export default { ...@@ -75,7 +90,6 @@ export default {
// 初始化地图 // 初始化地图
initMap() { initMap() {
let that = this;
// 加载PositionPicker,loadUI的路径参数为模块名中 'ui/' 之后的部分 // 加载PositionPicker,loadUI的路径参数为模块名中 'ui/' 之后的部分
let AMapUI = (this.AMapUI = window.AMapUI); let AMapUI = (this.AMapUI = window.AMapUI);
let AMap = (this.AMap = window.AMap); let AMap = (this.AMap = window.AMap);
...@@ -144,18 +158,18 @@ export default { ...@@ -144,18 +158,18 @@ export default {
// 创建地图拖拽 // 创建地图拖拽
let positionPicker = new PositionPicker({ let positionPicker = new PositionPicker({
mode: "dragMap", // 设定为拖拽地图模式,可选'dragMap'、'dragMarker',默认为'dragMap' mode: "dragMap", // 设定为拖拽地图模式,可选'dragMap'、'dragMarker',默认为'dragMap'
map: map // 依赖地图对象 map: map, // 依赖地图对象
iconStyle: {
//自定义外观
url: "//webapi.amap.com/ui/1.0/assets/position-picker2.png", //图片地址
size: [50, 50], //要显示的点大小,将缩放图片
ancher: [24, 40] //锚点的位置,即被size缩放之后,图片的什么位置作为选中的位置
}
}); });
// 拖拽完成发送自定义 drag 事件 // 拖拽完成发送自定义 drag 事件
positionPicker.on("success", positionResult => { positionPicker.on("success", positionResult => {
// 过滤掉初始化地图后的第一次默认拖放 this.dragMap(positionResult);
if (!this.dragStatus) {
this.dragStatus = true;
} else {
this.dragMap(positionResult);
that.$emit("getMapInfo", this.dragData);
}
}); });
// 启动拖放 // 启动拖放
positionPicker.start(); positionPicker.start();
...@@ -179,6 +193,15 @@ export default { ...@@ -179,6 +193,15 @@ export default {
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.mapDialog {
margin-top: 11vh !important;
display: flex !important;
flex-direction: column !important;
background: red !important;
/deep/ .el-dialog__body {
height: 90%;
}
}
.mapContainer { .mapContainer {
height: 100%; height: 100%;
width: 100%; width: 100%;
...@@ -199,7 +222,7 @@ export default { ...@@ -199,7 +222,7 @@ export default {
} }
.myMap { .myMap {
height: 100%; height: 100%;
height: 500px; height: 100%;
} }
} }
.mapInfo { .mapInfo {
...@@ -213,6 +236,11 @@ export default { ...@@ -213,6 +236,11 @@ export default {
text-align: left; text-align: left;
} }
} }
.confirmButton {
position: absolute;
bottom: 100px;
right: 100px;
}
} }
.m-map .search { .m-map .search {
position: absolute; position: absolute;
...@@ -228,66 +256,4 @@ export default { ...@@ -228,66 +256,4 @@ export default {
padding: 5px; padding: 5px;
outline: none; outline: none;
} }
// .g-wraper {
// width: 1000px;
// margin: 0 auto;
// color: #666;
// font-size: 16px;
// line-height: 30px;
// }
// .m-part {
// margin-bottom: 30px;
// }
// .m-part::after {
// content: "";
// display: block;
// clear: both;
// }
// .m-part .title {
// font-size: 30px;
// line-height: 60px;
// margin-bottom: 10px;
// color: #333;
// }
// .m-part .mapbox {
// width: 600px;
// height: 400px;
// margin-bottom: 20px;
// float: left;
// }
// .m-part .info {
// margin: 0;
// padding: 0;
// list-style: none;
// line-height: 30px;
// margin-left: 620px;
// }
// .m-part .info span {
// display: block;
// color: #999;
// }
// .m-part ol {
// line-height: 40px;
// margin-left: 0;
// padding-left: 0;
// }
// .m-part pre {
// padding: 10px 20px;
// line-height: 30px;
// border-radius: 3px;
// box-shadow: 0 0 15px rgba(0, 0, 0, 0.5);
// }
// .m-footer {
// background: #eee;
// line-height: 60px;
// text-align: center;
// color: #999;
// font-size: 12px;
// }
// .m-footer a {
// margin: 0 5px;
// color: #999;
// text-decoration: none;
// }
</style> </style>
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
> >
<el-card class="card-block"> <el-card class="card-block">
<p>自提点设置</p> <p>自提点设置</p>
<el-form ref="form" :model="selfLiftingPoint" label-width="80px"> <el-form ref="form" label-width="80px">
<el-form-item> <el-form-item>
<el-input <el-input
class="set" class="set"
...@@ -166,11 +166,8 @@ ...@@ -166,11 +166,8 @@
placeholder="" placeholder=""
:disabled="true" :disabled="true"
></el-input> ></el-input>
<a <el-button type="primary" @click="mapDialogVisible = true"
href="javascript:;" >从高德获取坐标</el-button
style="margin-left: 30px"
@click="mapDialogVisible = true"
>从高德获取坐标</a
> >
</el-form-item> </el-form-item>
<p class="location">{{ form.location }}</p> <p class="location">{{ form.location }}</p>
...@@ -212,13 +209,11 @@ ...@@ -212,13 +209,11 @@
<!-- 地图 dialog --> <!-- 地图 dialog -->
<el-dialog custom-class="mapDialog" v-model="mapDialogVisible" width="100%"> <el-dialog custom-class="mapDialog" v-model="mapDialogVisible" width="100%">
<my-map class="my-map" @getMapInfo="getMapInfo" /> <my-map
<div class="confirmButton"> class="my-map"
<el-button @click="mapDialogVisible = false"> </el-button> @getMapInfo="getMapInfo"
<el-button type="primary" @click="mapDialogVisible = false" @hideMapDialog="mapDialogVisible = false"
> </el-button />
>
</div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
...@@ -242,12 +237,13 @@ let checkphone = (rule, value, callback) => { ...@@ -242,12 +237,13 @@ let checkphone = (rule, value, callback) => {
export default { export default {
data() { data() {
return { return {
startDate: dayJs(), //开始时间 startDate: dayJs().format("YYYY-MM-DDTHH:mm:ss"), //开始时间
endDate: dayJs().add(7, "day"), // 结束时间 endDate: dayJs()
.add(7, "day")
.format("YYYY-MM-DDTHH:mm:ss"), // 结束时间
pickerOptions: { pickerOptions: {
disabledDateStart(time) { disabledDateStart(time) {
let _now = Date.now(); let _now = Date.now();
// let three = 3 * 24 * 60 * 60 * 1000;
let threeDays = _now + 3 * 24 * 60 * 60 * 1000; let threeDays = _now + 3 * 24 * 60 * 60 * 1000;
return time.getTime() < _now || time.getTime() > threeDays; //大于当前的禁止,小于3天前的禁止 return time.getTime() < _now || time.getTime() > threeDays; //大于当前的禁止,小于3天前的禁止
}, },
...@@ -311,11 +307,11 @@ export default { ...@@ -311,11 +307,11 @@ export default {
type: Array, type: Array,
default: () => [] default: () => []
}, },
startTime1: { startTime: {
type: String, type: String,
default: "" default: ""
}, },
endTime1: { endTime: {
type: String, type: String,
default: "" default: ""
} }
...@@ -334,8 +330,8 @@ export default { ...@@ -334,8 +330,8 @@ export default {
if (this.$route.query.marketing_id) { if (this.$route.query.marketing_id) {
await this.getPlaceList(); await this.getPlaceList();
// 时间赋值 // 时间赋值
this.startDate = this.startTime1; this.startDate = this.startTime;
this.endDate = this.endTime1; this.endDate = this.endTime;
this.checkedTakePlacelist = this.setTableListData( this.checkedTakePlacelist = this.setTableListData(
this.spellOrderSetArr this.spellOrderSetArr
); // 选中的自提点列表 ); // 选中的自提点列表
...@@ -409,6 +405,7 @@ export default { ...@@ -409,6 +405,7 @@ export default {
try { try {
this.pageLoading = true; this.pageLoading = true;
await ActivityService.addPlace(params); await ActivityService.addPlace(params);
await this.getPlaceList();
this.pageLoading = false; this.pageLoading = false;
} catch { } catch {
this.pageLoading = false; this.pageLoading = false;
...@@ -421,7 +418,7 @@ export default { ...@@ -421,7 +418,7 @@ export default {
let result = data.map(item => { let result = data.map(item => {
return { return {
name: item.take_place_name, name: item.take_place_name,
location: item.province + item.city + item.area, // p + c + a location: item.location, // p + c + a
address: item.address, address: item.address,
contactor: item.contact_name, contactor: item.contact_name,
id: item.take_place_id id: item.take_place_id
...@@ -571,17 +568,14 @@ export default { ...@@ -571,17 +568,14 @@ export default {
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
// mapDialog
.mapDialog { .mapDialog {
height: 80%; height: 80%;
margin-top: 10vh !important; margin-top: 10vh !important;
.my-map { .el-dialog__body {
height: 10%; height: 85% !important;
} }
.confirmButton { .my-map {
position: absolute; height: 100%;
bottom: 100px;
right: 100px;
} }
} }
</style> </style>
...@@ -28,8 +28,8 @@ ...@@ -28,8 +28,8 @@
ref="spellOrderSet" ref="spellOrderSet"
v-show="active === 3" v-show="active === 3"
:spellOrderSetArr="spellOrderSetArr" :spellOrderSetArr="spellOrderSetArr"
:startTime1="startTime" :startTime="startTime"
:endTime1="endTime" :endTime="endTime"
@getTakeTakePlaceListFromChild="getTakeTakePlaceListFromChild" @getTakeTakePlaceListFromChild="getTakeTakePlaceListFromChild"
/> />
</div> </div>
...@@ -74,7 +74,9 @@ export default { ...@@ -74,7 +74,9 @@ export default {
spellOrderSetArr: [], spellOrderSetArr: [],
startDate: "", // 开始时间 startDate: "", // 开始时间
endDate: "", // 结束时间 endDate: "", // 结束时间
takePlaceIDArr: [] takePlaceIDArr: [],
startTime: "",
endTime: ""
}; };
}, },
......
...@@ -105,11 +105,10 @@ const routes = [ ...@@ -105,11 +105,10 @@ const routes = [
// 团餐运营 // 团餐运营
...groupmealRouters ...groupmealRouters
]; ];
console.log(routes);
const router = createRouter({ const router = createRouter({
history: createWebHistory(), history: createWebHistory(),
routes routes
}); });
export default router; export default router;
\ No newline at end of file
...@@ -25,8 +25,6 @@ export default createStore({ ...@@ -25,8 +25,6 @@ export default createStore({
actions: { actions: {
async updateUserPermission({ commit }, payload) { async updateUserPermission({ commit }, payload) {
const { permissions = [] } = await getPermissions(payload.email); const { permissions = [] } = await getPermissions(payload.email);
console.log("VUEX action updateUserPermission::", permissions);
commit("updateUserPermission", permissions); commit("updateUserPermission", permissions);
}, },
async fetchPermission({ commit }, { email, appId }) { async fetchPermission({ commit }, { email, appId }) {
......
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