Commit e007fb32 authored by liwenhong's avatar liwenhong

Merge branch 'master' into lwh/head-distribution

# Conflicts:
#	server/utils/request.js
#	src/pages/Activity/ActivityDetail/index.vue
#	src/pages/Activity/releaseProduc/components/addProduc.vue
#	src/pages/Activity/releaseProduc/components/infoEditing.vue
#	src/pages/Activity/releaseProduc/components/myMap.vue
#	src/pages/Activity/releaseProduc/index.vue
#	src/pages/Goods/Detail/index.vue
#	src/utils/util.js
parents c3a373c3 e0d63de7
This diff is collapsed.
...@@ -16,6 +16,8 @@ ...@@ -16,6 +16,8 @@
<% for (let i in htmlWebpackPlugin.options.cdn && htmlWebpackPlugin.options.cdn.js) { %> <% for (let i in htmlWebpackPlugin.options.cdn && htmlWebpackPlugin.options.cdn.js) { %>
<script src="<%= htmlWebpackPlugin.options.cdn.js[i] %>"></script> <script src="<%= htmlWebpackPlugin.options.cdn.js[i] %>"></script>
<% } %> <% } %>
<script src="//webapi.amap.com/maps?v=1.3&key=bb057625545d8cf77df1379e7aaae0b5"></script>
<script src="//webapi.amap.com/ui/1.0/main.js"></script>
<title><%= htmlWebpackPlugin.options.title %></title> <title><%= htmlWebpackPlugin.options.title %></title>
</head> </head>
......
const fs = require("fs");
const API_INTERNAL_URI = require("../config.js").API_INTERNAL_URI;
const reqOther = require("../utils/request").httpReqOther;
const FormData = require("form-data");
const http = require("http");
const GROUPMEAL_URI = require("../config.js").GROUPMEAL_URI;
exports.uploadPic = async (ctx, next) => {
const url = `${API_INTERNAL_URI}/ksy/ks3apiunencrypt/ks3api_upload`;
const {
body: { type },
files,
} = ctx.request;
console.log("type", type);
const filePath = files.file.path;
const file = fs.createReadStream(filePath);
const form = new FormData();
form.append("file", file);
form.append("type", type);
const opts = {
method: "post",
url: url,
body: form,
headers: form.getHeaders(),
};
ctx.body = await reqOther(opts);
};
exports.oldOrderExport = async (ctx) => {
const { marketing_id, type } = ctx.query;
// `${ENV}order/oldbackground/order_export?marketing_id=${eventId}&type=${type}`;
const url = `${GROUPMEAL_URI}/order/oldbackground/order_export?marketing_id=${marketing_id}&type=${type}`;
console.log("url", url);
const options = new URL(url);
let { buffer, res } = await requestPromise(options);
const fileName = res.headers["content-disposition"].split("=")[1];
ctx.set("Content-Type", "application/octet-stream");
ctx.set("Content-Disposition", `attachment; filename=${fileName}`);
ctx.body = buffer;
};
exports.orderExport = async (ctx) => {
const { marketing_id, type } = ctx.query;
const url = `${GROUPMEAL_URI}/order/background/order_export?marketing_id=${marketing_id}&type=${type}`;
console.log("url", url);
const options = new URL(url);
let { buffer, res } = await requestPromise(options);
const fileName = res.headers["content-disposition"].split("=")[1];
ctx.set("Content-Type", "application/octet-stream");
ctx.set("Content-Disposition", `attachment; filename=${fileName}`);
ctx.body = buffer;
};
function requestPromise(options) {
return new Promise(function (resolve, reject) {
const req = http.request(options, function (res) {
let { statusCode } = res;
//返回不是200
if (statusCode !== 200) {
return reject(new Error("error"));
}
let arr = [];
let len = 0;
res.on("data", (chunk) => {
len += chunk.length;
arr.push(Buffer.from(chunk));
});
res.on("end", () => {
//正确 success
return resolve({
buffer: Buffer.concat(arr, len),
res,
});
});
});
//请求出错
req.on("error", (err) => {
return reject(err);
});
req.end();
});
}
...@@ -10,6 +10,7 @@ const activity = require("./controllers/activity"); ...@@ -10,6 +10,7 @@ const activity = require("./controllers/activity");
const withdrawal = require("./controllers/withdrawal"); const withdrawal = require("./controllers/withdrawal");
const groupmeal = require("./controllers/groupmeal"); const groupmeal = require("./controllers/groupmeal");
const qr_code = require("./controllers/qr-code"); const qr_code = require("./controllers/qr-code");
const relay = require("./controllers/relay");
const router = Router(); const router = Router();
const API_VERSION = "/api/v1"; const API_VERSION = "/api/v1";
...@@ -143,4 +144,9 @@ router.post(`${API_VERSION}/get_reblack_list`, withdrawal.getReblackList); ...@@ -143,4 +144,9 @@ router.post(`${API_VERSION}/get_reblack_list`, withdrawal.getReblackList);
router.get(`${API_VERSION}/get_wallet_account_status`, withdrawal.getWalletAccountStatus); router.get(`${API_VERSION}/get_wallet_account_status`, withdrawal.getWalletAccountStatus);
router.post(`${API_VERSION}/reset_wallet_account_status`, withdrawal.resetAccountStatus); router.post(`${API_VERSION}/reset_wallet_account_status`, withdrawal.resetAccountStatus);
// 图片上传
router.post(`${API_VERSION}/relay/ks3api_upload`, relay.uploadPic);
router.get(`${API_VERSION}/relay/order_export`, relay.orderExport);
router.get(`${API_VERSION}/relay/old_order_export`, relay.oldOrderExport);
module.exports = router; module.exports = router;
...@@ -28,3 +28,17 @@ exports.httpReq = (ctx, opts) => { ...@@ -28,3 +28,17 @@ exports.httpReq = (ctx, opts) => {
}); });
}); });
}; };
exports.httpReqOther = (opts) => {
opts.timeout = opts.timeout || 10000;
return new Promise((resolve, reject) => {
request(opts, (err, res, body) => {
if (!err) {
resolve(body);
} else {
reject(err);
console.error(opts.url, err);
}
});
});
};
...@@ -188,9 +188,8 @@ ...@@ -188,9 +188,8 @@
</template> </template>
<script> <script>
import { GOODS_URI } from "../../../../../server/config";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import { getCookie } from "@/utils/util"; import { getCookie, UploadPicUrl } from "@/utils/util";
import { addGoods, getBusinessList, pindanGoods, markGoodsInfo, editGoods } from "../../../../service/Activity/index"; import { addGoods, getBusinessList, pindanGoods, markGoodsInfo, editGoods } from "../../../../service/Activity/index";
// 当选择(每人最多买时 添加验证(非空)) // 当选择(每人最多买时 添加验证(非空))
...@@ -249,7 +248,7 @@ ...@@ -249,7 +248,7 @@
picUrlList: [], picUrlList: [],
picUploadList: [], // 上传详情图片列表 picUploadList: [], // 上传详情图片列表
isShowPopver: false, // 是否展示图片框 isShowPopver: false, // 是否展示图片框
uploadUrl: `${GOODS_URI}/ksy/ks3apiunencrypt/ks3api_upload`, // 金山云上传地址 uploadUrl: UploadPicUrl, // 金山云上传地址
hideUpload: false, hideUpload: false,
limitCount: 1, limitCount: 1,
......
...@@ -37,7 +37,8 @@ ...@@ -37,7 +37,8 @@
</template> </template>
<script> <script>
import { GOODS_URI } from "../../../../../server/config"; import { UploadPicUrl } from "@/utils/util";
export default { export default {
props: { props: {
infoEditArr: { infoEditArr: {
...@@ -61,7 +62,7 @@ ...@@ -61,7 +62,7 @@
picSubmitList: [], // 发布功能需要的图片列表 picSubmitList: [], // 发布功能需要的图片列表
propData: {}, propData: {},
isShowPopver: false, // 是否展示图片框 isShowPopver: false, // 是否展示图片框
uploadUrl: `${GOODS_URI}/ksy/ks3apiunencrypt/ks3api_upload`, // 金山云上传地址 uploadUrl: UploadPicUrl, // 金山云上传地址
hideUpload: false, hideUpload: false,
limitCount: 9, limitCount: 9,
}; };
......
...@@ -108,6 +108,7 @@ ...@@ -108,6 +108,7 @@
mapConfig.center = [this.lng, this.lat]; mapConfig.center = [this.lng, this.lat];
} }
let map = new AMap.Map("js-container", mapConfig); let map = new AMap.Map("js-container", mapConfig);
let _this = this;
// 加载地图搜索插件 // 加载地图搜索插件
AMap.service("AMap.PlaceSearch", () => { AMap.service("AMap.PlaceSearch", () => {
...@@ -119,6 +120,22 @@ ...@@ -119,6 +120,22 @@
map: map, map: map,
panel: "js-result", panel: "js-result",
}); });
this.placeSearch.on("selectChanged", function ({ selected }) {
console.log(selected);
const { address, location, pname, cityname, adname } = selected.data;
_this.dragData = {
lng: location.lng,
lat: location.lat,
address: address,
province: pname,
city: cityname,
area: adname,
};
_this.searchKey = "";
});
}); });
// 启用工具条 // 启用工具条
......
...@@ -153,6 +153,7 @@ ...@@ -153,6 +153,7 @@
for (var i in this.addProducArr) { for (var i in this.addProducArr) {
this.goodsSkuIDArr.push(this.addProducArr[i].goods_sku_id); this.goodsSkuIDArr.push(this.addProducArr[i].goods_sku_id);
} }
this.goodsSkuIDArr = [...new Set(this.goodsSkuIDArr)];
this.startDate = this.$refs.spellOrderSet.startDate; this.startDate = this.$refs.spellOrderSet.startDate;
this.endDate = this.$refs.spellOrderSet.endDate; this.endDate = this.$refs.spellOrderSet.endDate;
let params = { let params = {
......
...@@ -458,7 +458,7 @@ ...@@ -458,7 +458,7 @@
editGoods, editGoods,
} from "@/service/Goods/goods"; } from "@/service/Goods/goods";
import { GOODS_URI } from "../../../../server/config.js"; import { UploadPicUrl } from "@/utils/util";
import filterInput from "../utils/filterInput"; import filterInput from "../utils/filterInput";
...@@ -608,7 +608,7 @@ ...@@ -608,7 +608,7 @@
activeStartTime: "", // 活动开始时间 activeStartTime: "", // 活动开始时间
activeEndTime: "", // 活动结束时间 activeEndTime: "", // 活动结束时间
uploadUrl: `${GOODS_URI}/ksy/ks3apiunencrypt/ks3api_upload`, // 金山云上传地址 uploadUrl: UploadPicUrl, // 金山云上传地址
addShopShow: false, // 添加门店弹框显示 addShopShow: false, // 添加门店弹框显示
......
...@@ -21,15 +21,26 @@ ...@@ -21,15 +21,26 @@
<!-- <el-button type="primary" size="small">审核</el-button> --> <!-- <el-button type="primary" size="small">审核</el-button> -->
<template #default="scope"> <template #default="scope">
<!-- v-if="scope.row.audit_status == 0" --> <!-- v-if="scope.row.audit_status == 0" -->
<el-button type="primary" size="mini" @click="apply(scope.row)">审核</el-button> <el-button type="primary" size="mini" @click="handleApplyItem(scope.row)">审核</el-button>
<el-button type="text" size="small" v-if="scope.row.audit_status == 1">通过</el-button> <el-button type="text" size="small" v-if="scope.row.audit_status == 1">通过</el-button>
<el-button type="primary" size="small" @click="addPoint(scope.row.colonel_apply_id)">添加自提点</el-button> <el-button type="primary" size="small" v-if="scope.row.take_place_status == 1" @click="addPoint(scope.row.colonel_apply_id)">
添加自提点
</el-button>
<!-- v-if="scope.row.take_place_status==1" --> <!-- v-if="scope.row.take_place_status==1" -->
<el-button type="text" size="small" v-if="scope.row.audit_status == 2">拒绝</el-button> <el-button type="text" size="small" v-if="scope.row.audit_status == 2">拒绝</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<el-dialog title="团长审核" v-model="dialogFormVisible">
您确认通过{{ applyItem.contact_name }}的团长申请吗
<template #footer>
<span class="dialog-footer">
<el-button @click="apply(applyItem, 2)">拒绝申请</el-button>
<el-button type="primary" @click="apply(applyItem, 1)">通过申请</el-button>
</span>
</template>
</el-dialog>
<el-dialog title="添加自提点" v-model="showAddPointDialog" width="50%" top="2%"> <el-dialog title="添加自提点" v-model="showAddPointDialog" width="50%" top="2%">
<el-form :model="pointObj"> <el-form :model="pointObj">
<el-form-item label="联系人姓名"> <el-form-item label="联系人姓名">
...@@ -78,6 +89,7 @@ ...@@ -78,6 +89,7 @@
</span> </span>
</template> </template>
</el-dialog> </el-dialog>
<div class="marketing"> <div class="marketing">
<!-- 表头 --> <!-- 表头 -->
<div class="header"> <div class="header">
...@@ -126,6 +138,8 @@ ...@@ -126,6 +138,8 @@
fileList: [], fileList: [],
uploadUrl: `${GOODS_URI}/ksy/ks3apiunencrypt/ks3api_upload`, // 金山云上传地址 uploadUrl: `${GOODS_URI}/ksy/ks3apiunencrypt/ks3api_upload`, // 金山云上传地址
pickStation: {}, pickStation: {},
dialogFormVisible: false,
applyItem: {},
}; };
}, },
async created() { async created() {
...@@ -133,6 +147,10 @@ ...@@ -133,6 +147,10 @@
await this.getColoneApplyList(); await this.getColoneApplyList();
}, },
methods: { methods: {
handleApplyItem(item) {
this.applyItem = item;
this.dialogFormVisible = true;
},
handleDetailSuccess(res) { handleDetailSuccess(res) {
this.pointObj.take_place_pic = res.result.url; this.pointObj.take_place_pic = res.result.url;
}, },
...@@ -142,25 +160,12 @@ ...@@ -142,25 +160,12 @@
if (res.code !== 0) return this.$message.error(res.reason); if (res.code !== 0) return this.$message.error(res.reason);
else return this.$message.success("添加成功"); else return this.$message.success("添加成功");
}, },
apply(item) { async apply(item, type) {
// this.applyPopTitle = `您确认通过(${name})的团长申请吗` let res = await colonelAudit({ colonel_apply_id: item.colonel_apply_id, audit_status: type });
this.$confirm(`您确认${item.audit_status == 2 ? "通过" : "驳回"}(${item.contact_name})的团长申请吗`, "团长审核", {
confirmButtonText: "确定",
cancelButtonText: "拒绝",
center: true,
})
.then(async () => {
let res = await colonelAudit({ colonel_apply_id: item.colonel_apply_id, audit_status: 1 });
await this.getColoneApplyList(); await this.getColoneApplyList();
this.dialogFormVisible = false;
if (res.code !== 0) return this.$message.error(res.reason); if (res.code !== 0) return this.$message.error(res.reason);
else this.$message.success("操作成功"); else this.$message.success("操作成功");
})
.catch(async (err) => {
let res = await colonelAudit({ colonel_apply_id: item.colonel_apply_id, audit_status: 2 });
await this.getColoneApplyList();
if (res.code !== 0) return this.$message.error(res.reason);
else this.$message.success("操作成功");
});
}, },
async addPoint(id) { async addPoint(id) {
let res = await colonelApplyPoint({ colonel_apply_id: id }); let res = await colonelApplyPoint({ colonel_apply_id: id });
......
...@@ -112,15 +112,21 @@ export async function orderRefundReject(params) { ...@@ -112,15 +112,21 @@ export async function orderRefundReject(params) {
// 导出订单 // 导出订单
export function getOrderExportURL(eventId, type) { export function getOrderExportURL(eventId, type) {
var ENV; // var ENV;
if (process.env.NODE_ENV == "development") { // if(process.env.NODE_ENV == "development"){
ENV = "http://bp-dev.ini.yidian-inc.com/"; // ENV = "http://bp-dev.ini.yidian-inc.com/"
} else if (process.env.NODE_ENV == "test") { // }else if(process.env.NODE_ENV == "test"){
ENV = "http://bp-test.ini.yidian-inc.com/"; // ENV = "http://bp-test.ini.yidian-inc.com/"
// }else{
// ENV = "http://bp.int.yidian-inc.com/"
// }
// return `${ENV}order/oldbackground/order_export?marketing_id=${eventId}&type=${type}`;
if (process.env.NODE_ENV === "development") {
return `http://127.0.0.1:8055/api/v1/relay/old_order_export?marketing_id=${eventId}&type=${type}`;
} else { } else {
ENV = "http://bp.int.yidian-inc.com/"; return `/api/v1/relay/old_order_export?marketing_id=${eventId}&type=${type}`;
} }
return `${ENV}order/oldbackground/order_export?marketing_id=${eventId}&type=${type}`;
} }
// 新订单管理 // 新订单管理
...@@ -191,13 +197,10 @@ export async function newOrderRefundReject(params) { ...@@ -191,13 +197,10 @@ export async function newOrderRefundReject(params) {
// 导出订单 // 导出订单
export function newGetOrderExportURL(eventId, type) { export function newGetOrderExportURL(eventId, type) {
var ENV; if (process.env.NODE_ENV === "development") {
if (process.env.NODE_ENV == "development") { return `http://127.0.0.1:8055/api/v1/relay/order_export?marketing_id=${eventId}&type=${type}`;
ENV = "http://bp-dev.ini.yidian-inc.com/";
} else if (process.env.NODE_ENV == "test") {
ENV = "http://bp-test.ini.yidian-inc.com/";
} else { } else {
ENV = "http://bp.int.yidian-inc.com/"; return `/api/v1/relay/order_export?marketing_id=${eventId}&type=${type}`;
} }
return `${ENV}order/background/order_export?marketing_id=${eventId}&type=${type}`; // return `/api/v1/relay/order_export?marketing_id=${eventId}&type=${type}`;
} }
...@@ -67,3 +67,6 @@ export function delCookie() { ...@@ -67,3 +67,6 @@ export function delCookie() {
} }
} }
} }
export const UploadPicUrl =
process.env.NODE_ENV === "development" ? `http://127.0.0.1:8055/api/v1/relay/ks3api_upload` : "/api/v1/relay/ks3api_upload";
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