Commit c181d928 by chenyu

update: update

parent 4bd4df27
......@@ -35,8 +35,8 @@
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="cancel"> </el-button>
<el-button type="primary" :loading="btnLoading" @click="submit"> </el-button>
<el-button @click="cancel">取消</el-button>
<el-button type="primary" :loading="btnLoading" @click="submit">确定</el-button>
</span>
</el-dialog>
</div>
......
......@@ -21,8 +21,8 @@
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="cancel"> </el-button>
<el-button type="primary" :loading="btnLoading" @click="submit"> </el-button>
<el-button @click="cancel">取消</el-button>
<el-button type="primary" :loading="btnLoading" @click="submit">确定</el-button>
</span>
</el-dialog>
</div>
......
<template>
<div>
<el-dialog title="订单详情" custom-class="customer-dailog" :visible.sync="dialogVisible"
:close-on-click-modal="false" @close="cancel" width="600px">
<div class="record-dilog" style="width: 560px;">
<div class="table-content">
<el-table :data="orderData" tooltip-effect="dark" ref="orderTable">
<el-table-column prop="productName" label="商品信息" width="200px">
<template slot-scope="scope">
<div class="record-info">
<div class="record-infoimg"><img width="60" height="60"
:src="scope.row.imageUrl ? scope.row.imageUrl : './static/img/default.png'"
alt=""></div>
<div class="record-infocontent">
<div>{{ scope.row.productName }}</div>
<div>{{ scope.row.productCode }}</div>
<div style="color: #c0c4cc;">
<span v-for="(item, index) in scope.row.attrColorSize" :key="index">
{{item.key}}:{{item.value}}
</span>
</div>
<div></div>
</div>
</div>
</template>
</el-table-column>
<el-table-column prop="number" label="数量" width="120px"></el-table-column>
<el-table-column prop="payPrice" label="成交价">
<template slot-scope="scope">
<p>{{ scope.row.unitPrice }}</p>
<p>{{ scope.row.payPrice }}</p>
</template>
</el-table-column>
</el-table>
<div class="record-border">
<div class="record-countwrap">
<p><span class="record-count">商品总价</span><span
class="record-countvalue">{{ orderInfo.totalAmount }}</span></p>
<p><span class="record-count">优惠活动</span><span
class="record-countvalue">{{ orderInfo.promotionAmount }}</span></p>
<p><span class="record-count">应付金额</span><span
class="record-countvalue">{{ orderInfo.paidAmount }}</span></p>
</div>
</div>
<div class="record-border">
<div class="record-countwrap">
<p v-for="(item, index) in payInfo" :key="index"><span
class="record-count">{{ item.name }}</span><span
class="record-countvalue">{{ item.value }}</span></p>
</div>
</div>
<div class="record-border">
<div class="record-countwrap">
<p><span class="record-count">订单总额</span><span
class="record-countvalue">{{ orderInfo.paidAmount }}</span></p>
</div>
</div>
</div>
<div class="evaluate-box" v-if="evaluateData.length">
<div class="evaluate-con">
<div class="item" v-for="(item, index) in evaluateData" :key="index">
{{item.ruleName}}
<div class="evaluate-star">
<el-rate disabled v-model="item.evaluateScore"
:colors="['#99A9BF', '#F7BA2A', '#FF9900']"></el-rate>
</div>
</div>
</div>
<div class="e-txt">
<div class="e-con">
<p>买家评语</p>
<p>{{evaluate.evaluateContent}}</p>
</div>
<span class="e-time">
{{evaluate.createTime}}
</span>
</div>
<div class="r-txt" v-if="evaluate.replyContent">
<div class="e-con">
<p>商家回复</p>
<p>{{evaluate.replyContent}}</p>
</div>
<span class="e-time">
{{evaluate.replayDate}}
</span>
</div>
<div style="text-align: center" v-if="!evaluate.replyContent">
<el-button @click="replayFast">立即回复</el-button>
</div>
</div>
</div>
<el-dialog title="回复" :visible.sync="replayVisable" width="30%" append-to-body>
<div class="">
<el-input type="textarea" :rows="2" placeholder="请输入回复内容" v-model="textarea">
</el-input>
</div>
<span slot="footer" class="dilog-footer">
<el-button @click="replayVisable = false">取 消</el-button>
<el-button type="primary" @click="confirmReplay">确 定</el-button>
</span>
</el-dialog>
<span slot="footer" class="dialog-footer">
<el-button @click="cancel">关闭</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { doFetch, doFetchqs, doFetchGet } from "../../axios/api";
import url from "../../axios/url";
import { mapState } from "vuex";
import { checkFalse, checkStatus, checkSuccess } from "../../../../static/js/checkStatus";
export default {
name: "customermainstoreDialog",
props: {
dialogVisible: {
type: Boolean,
default: false
},
obj: {
type: Object,
default: () => {
return {};
}
}
},
data() {
return {
evaluateId:'',
orderId:'',
orderInfo: {},
orderData: [],
evaluateData: [],
payInfo: [],
textarea: '',
replayVisable: false,
btnLoading: false,
};
},
computed: {
...mapState([ "showEditClique" ])
},
methods: {
cancel() {
this.$emit('update:dialogVisible', false);
},
getOrderDetail(orderId) {
this.orderData = [];
this.orderInfo = "";
this.orderId = orderId;
this.payInfo = [];
doFetch(url.orderDetail, {
memberId: this.memberId,
orderId: orderId
})
.then(res => {
if (res.data.errorCode === 0) {
this.orderInfo = res.data.result.orderInfo;
// 组装一下商品的属性 方便遍历
console.log(res.data.result.orderInfo.list)
this.orderData = res.data.result.orderInfo.list.map(ele => ({
...ele,
attrColorSize: JSON.parse(ele.attrColorSize)
}));
if (this.orderInfo.payInfo) {
this.payInfo = JSON.parse(this.orderInfo.payInfo);
}
// 评价数据
const data = res.data.result.orderInfo.evaluate;
if (!data) {
this.evaluateData = [];
} else {
this.evaluateId = data.evaluateId;
this.evaluate = {
...data,
createTime:
data.createTime != -1
? formatLongTime(data.createTime, 1)
: "--",
replayDate:
data.replayDate != -1
? formatLongTime(data.replayDate, 1)
: "--"
};
this.evaluateData = data.scoresList.map(ele => ({
...ele,
evaluateScore: ele.evaluateScore / 2
}));
}
} else {
checkFalse(res.data.message);
}
})
.catch(err => {
checkStatus(err);
});
},
confirmReplay() {
if (!this.textarea) {
return;
}
doFetch("/api-member/evalaute_recover", {
evaluateId: this.evaluateId,
replyContent: this.textarea
}).then(res => {
if (res.data.errorCode === 0) {
this.getOrderDetail(this.orderId);
this.replayVisable = false;
}
});
}
},
watch: {
dialogVisible(n, o) {
if (n) {
console.log(obj);
// const { memberId, mainStoreName, mainStoreId, mainClerkId } = this.obj;
// this.form = Object.assign({}, this.form, { memberId, mainStoreId, mainClerkId, mainStoreIdBak: mainStoreId });
// this.getOrderDetail();
}
}
}
};
</script>
<style lang="less">
// 去除dailog-footer上边框
.customer-dailog .el-dialog__footer {
padding-top: 0;
padding-bottom: 20px;
border-top: none !important;
}
.customer-dailog .el-dialog__body {
padding-bottom: 0;
}
</style>
\ No newline at end of file
......@@ -19,8 +19,8 @@
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="cancel"> </el-button>
<el-button type="primary" :loading="btnLoading" @click="submit"> </el-button>
<el-button @click="cancel">取消</el-button>
<el-button type="primary" :loading="btnLoading" @click="submit">确定</el-button>
</span>
</el-dialog>
</div>
......
......@@ -49,8 +49,8 @@
</template>
</el-tabs>
<span slot="footer" class="dialog-footer">
<el-button @click="cancel"> </el-button>
<el-button type="primary" :loading="btnLoading" @click="submit"> </el-button>
<el-button @click="cancel">取消</el-button>
<el-button type="primary" :loading="btnLoading" @click="submit">确定</el-button>
</span>
</el-dialog>
</div>
......@@ -240,7 +240,7 @@ export default {
}
.label-dailog {
.el-tabs__header {
margin-bottom: 37px;
margin-bottom: 29px;
}
.el-dialog__body {
padding-top: 0;
......@@ -250,12 +250,10 @@ export default {
padding-left: 20px;
overflow-y: scroll;
.tag-item {
display: flex;
.tag-group-name {
flex-shrink: 0;
margin-right: 10px;
margin-bottom: 10px;
font-size: 14px;
color: #303133;
color: #909399;
line-height: 20px;
}
.tag-style {
......
......@@ -23,8 +23,8 @@
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="cancel"> </el-button>
<el-button type="primary" :loading="btnLoading" @click="submit"> </el-button>
<el-button @click="cancel">取消</el-button>
<el-button type="primary" :loading="btnLoading" @click="submit">确定</el-button>
</span>
</el-dialog>
</div>
......@@ -41,18 +41,12 @@ export default {
type: Boolean,
default: false
},
mainStoreName: {
type: String,
default: ''
},
mainStoreId: {
type: String,
default: ''
},
mainClerkId: {
type: String,
default: ''
},
obj: {
type: Object,
default: () => {
return {};
}
}
},
data() {
return {
......@@ -123,7 +117,7 @@ export default {
this.$refs[ 'form' ].validate(valid => {
if (valid) {
this.btnLoading = true;
doFetchGet(url.updateMemberStore, Object.assign({}, this.form))
doFetch(url.updateMemberStore, Object.assign({}, this.form))
.then(res => {
if (res.data.errorCode === 0) {
setTimeout(() => {
......@@ -151,9 +145,10 @@ export default {
watch: {
dialogVisible(n, o) {
if (n) {
this.form = Object.assign({}, this.form, { mainStoreIdBak: this.mainStoreId, mainStoreId: this.mainStoreId, mainClerkId: this.mainClerkId });
this.getMainStoreCodeName(this.mainStoreName);
this.getClerckList(this.mainStoreId, true);
const { memberId, mainStoreName, mainStoreId, mainClerkId } = this.obj;
this.form = Object.assign({}, this.form, { memberId, mainStoreId, mainClerkId, mainStoreIdBak: mainStoreId });
this.getMainStoreCodeName(mainStoreName);
this.getClerckList(mainStoreId, true);
}
}
}
......
......@@ -21,14 +21,14 @@
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="cancel"> </el-button>
<el-button type="primary" :loading="btnLoading" @click="submit"> </el-button>
<el-button @click="cancel">取消</el-button>
<el-button type="primary" :loading="btnLoading" @click="submit">确定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { doFetchqs, doFetchGet } from "../../axios/api";
import { doFetchqs, doFetch } from "../../axios/api";
import url from "../../axios/url";
import { mapState } from "vuex";
import { checkFalse, checkStatus, checkSuccess } from "../../../../static/js/checkStatus";
......@@ -39,16 +39,17 @@ export default {
type: Boolean,
default: false
},
subStoreList: {
type: Array,
obj: {
type: Object,
default: () => {
return [];
return {};
}
},
}
},
data() {
return {
form: {
memberId: '',
subStoreIdsBak: '', // 修改前的协管门店id
storeIds: [],
remark: '',
......@@ -110,7 +111,7 @@ export default {
this.$refs[ 'form' ].validate(valid => {
if (valid) {
this.btnLoading = true;
doFetchGet(url.updateMemberStore, Object.assign({}, this.form, { storeIds: this.form.storeIds.join(',') }))
doFetch(url.updateMemberStore, Object.assign({}, this.form, { storeIds: this.form.storeIds.join(',') }))
.then(res => {
if (res.data.errorCode === 0) {
setTimeout(() => {
......@@ -138,8 +139,10 @@ export default {
watch: {
dialogVisible(n, o) {
if (n) {
let storeIds = this.subStoreList.map(item => item.storeId);
this.form = Object.assign({}, this.form, { storeIds, subStoreIdsBak: storeIds.join(',') });
const { shopNames, memberId } = this.obj;
let storeIds = shopNames.map(item => item.storeId);
this.subStoreList=[].concat(shopNames)
this.form = Object.assign({}, this.form, { memberId, storeIds, subStoreIdsBak: storeIds.join(',') });
}
}
}
......
......@@ -31,8 +31,8 @@
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="cancel"> </el-button>
<el-button type="primary" :loading="btnLoading" @click="submit"> </el-button>
<el-button @click="cancel">取消</el-button>
<el-button type="primary" :loading="btnLoading" @click="submit">确定</el-button>
</span>
</el-dialog>
</div>
......
......@@ -19,8 +19,8 @@
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="cancel"> </el-button>
<el-button type="primary" :loading="btnLoading" @click="submit"> </el-button>
<el-button @click="cancel">取消</el-button>
<el-button type="primary" :loading="btnLoading" @click="submit">确定</el-button>
</span>
</el-dialog>
</div>
......
......@@ -31,8 +31,8 @@
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="cancel"> </el-button>
<el-button type="primary" :loading="btnLoading" @click="submit"> </el-button>
<el-button @click="cancel">取消</el-button>
<el-button type="primary" :loading="btnLoading" @click="submit">确定</el-button>
</span>
</el-dialog>
</div>
......
......@@ -9,8 +9,8 @@
:label="item.code" :disabled="item.code==='name'">{{item.name}}</el-checkbox>
</el-checkbox-group>
<span slot="footer" class="dialog-footer">
<el-button @click="cancel"> </el-button>
<el-button type="primary" @click="submitFields"> </el-button>
<el-button @click="cancel">取消</el-button>
<el-button type="primary" @click="submitFields">确定</el-button>
</span>
</el-dialog>
</div>
......
......@@ -459,22 +459,45 @@
}
.dictFigure-wrap {
display: flex;
gap: 32px;
gap: 39px;
.dictFigure-item {
width: 68px;
display: flex;
width: 134px;
height: 68px;
background: #f5f7fa;
text-align: center;
img{
.img-wrap {
width: 68px;
height: 68px;
margin-right: 9px;
background: #f5f7fa;
text-align: center;
}
img {
height: 100%;
}
.right {
display: flex;
flex-direction: column;
justify-content: center;
p {
margin: 0;
font-size: 14px;
line-height: 20px;
}
.dict-name {
margin-bottom: 10px;
color: #909399;
}
.dictFigure-name {
color: #303133;
}
}
}
}
}
}
}
// 日志
.log-info-contain{
.log-info-contain {
padding-top: 20px;
}
}
......
......@@ -290,11 +290,15 @@
<el-tab-pane label="身形字段" name="dictFigureList">
<ul v-if="tagAndRemarkInfo.dictFigureList.length" class="dictFigure-wrap">
<template v-for="item in tagAndRemarkInfo.dictFigureList">
<li v-if="item.imageUrl" :key="item" class="dictFigure-item">
<img
:src="require(`../../../static/img/body-shape-${member.memberGender===2?'woman':'man'}/${item.imageUrl}`)"
:alt="item.dictName">
<p>{{ item.dictName }}{{item.dictFigureName}}</p>
<li :key="item" class="dictFigure-item">
<div v-if="item.imageUrl" class="img-wrap">
<img :alt="item.dictName"
:src="require(`../../../static/img/body-shape-${member.memberGender===2?'woman':'man'}/${item.imageUrl}`)">
</div>
<div class="right">
<p class="dict-name">{{ item.dictName }}</p>
<p class="dictFigure-name">{{item.dictFigureName}}</p>
</div>
</li>
</template>
</ul>
......@@ -344,12 +348,11 @@
<customergrade-dialog :dialogVisible.sync="gradeDialogVisible" :memberId="memberId"
:gradeId="memberInfo.gradeId" :gradeList="gradeList" @refresh="initData" />
<!-- 服务门店、专属导购修改弹窗 -->
<customermainstore-dialog :dialogVisible.sync="mainStoreDialogVisible" :memberId="memberId"
:mainStoreName="member.mainStoreName" :mainStoreId="member.mainStoreId"
:mainClerkId="member.mainClerkId" @refresh="initData" />
<customermainstore-dialog :dialogVisible.sync="mainStoreDialogVisible" @refresh="initData"
:obj="{...member}" />
<!-- 协管门店修改弹窗 -->
<customersubstore-dialog :dialogVisible.sync="subStoreDialogVisible" :memberId="memberId"
:subStoreList="member.shopNames" @refresh="initData" />
<customersubstore-dialog :dialogVisible.sync="subStoreDialogVisible" @refresh="initData"
:obj="{...member}" />
<!-- 手工标签修改弹窗 -->
<customerlabel-dialog :dialogVisible.sync="labelDialogVisible" :memberId="memberId"
@refresh="initData" />
......
......@@ -407,7 +407,7 @@ export default {
linkDetail(memberId) {
this.$router.push({
path: "/customerDetail",
query: { id: memberId }
query: { memberId }
});
},
getEnterpriseInfo() {
......
......@@ -132,7 +132,7 @@ export default {
label: "门店消费",
icon: "icon-mendianbaojiadan",
key: "numOfSale",
path: "/ajaxmembersinfo"
path: "/consumption"
},
{
label: "达摩商城",
......@@ -219,8 +219,8 @@ export default {
...mapState(["showEditClique"])
},
created() {
this.$store.commit("mutations-slide", false);
this.memberId = this.$route.query.id;
this.$store.commit("mutations-slide", true);
this.memberId = this.$route.query.memberId;
},
mounted() {
this.initData();
......
......@@ -442,13 +442,12 @@ export default {
path: ""
},
{
name: "微信会员",
path: "/wechatmembers"
name: "客户列表",
path: "/allCustomers"
},
{
name: "会员详情",
path:
"/wechatmemberDetail?memberId=" + this.$route.query.memberId || ""
path: "/customerDetail?memberId=" + this.$route.query.memberId || ""
},
{
name: "会员门店消费",
......@@ -617,7 +616,7 @@ export default {
},
goback() {
this.$router.push({
path: "wechatmemberDetail",
path: "customerDetail",
query: { memberId: this.memberId }
});
},
......
......@@ -326,13 +326,12 @@ export default {
path: ""
},
{
name: "微信会员",
path: "/wechatmembers"
name: "客户列表",
path: "/allCustomers"
},
{
name: "会员详情",
path:
"/wechatmemberDetail?memberId=" + this.$route.query.memberId || ""
path: "/customerDetail?memberId=" + this.$route.query.memberId || ""
},
{
name: "会员卡券",
......@@ -474,7 +473,7 @@ export default {
},
goback() {
this.$router.push({
path: "wechatmemberDetail",
path: "customerDetail",
query: { memberId: this.memberId }
});
},
......
......@@ -187,13 +187,12 @@ export default {
path: ""
},
{
name: "微信会员",
path: "/wechatmembers"
name: "客户列表",
path: "/allCustomers"
},
{
name: "会员详情",
path:
"/wechatmemberDetail?memberId=" + this.$route.query.memberId || ""
path: "/customerDetail?memberId=" + this.$route.query.memberId || ""
},
{
name: "微信商城消费",
......@@ -304,7 +303,7 @@ export default {
},
goback() {
this.$router.push({
path: "wechatmemberDetail",
path: "customerDetail",
query: { memberId: this.memberId }
});
}
......
......@@ -248,8 +248,12 @@ export default {
path: "/"
},
{
name: "客户列表",
path: "/allCustomers"
},
{
name: "会员详情",
path:"/wechatmemberDetail?memberId=" + this.$route.query.memberId || ""
path:"/customerDetail?memberId=" + this.$route.query.memberId || ""
},
{
name: "会员积分明细",
......
......@@ -318,12 +318,12 @@ export default {
path: ""
},
{
name: "微信会员",
path: "/wechatmembers"
name: "客户列表",
path: "/allCustomers"
},
{
name: "会员详情",
path: "/wechatmemberDetail?memberId=" + this.$route.query.memberId
path: "/customerDetail?memberId=" + this.$route.query.memberId
},
{
name: "积分明细",
......
......@@ -118,12 +118,12 @@ export default ({
path: ""
},
{
name: "微信会员",
path: "/wechatmembers"
name: "客户列表",
path: "/allCustomers"
},
{
name: "会员详情",
path: "/wechatmemberDetail?memberId=" + this.$route.query.memberId
path: "/customerDetail?memberId=" + this.$route.query.memberId
},
{
name: "储值明细",
......
......@@ -219,12 +219,12 @@ export default {
path: ""
},
{
name: "微信会员",
path: "/wechatmembers"
name: "客户列表",
path: "/allCustomers"
},
{
name: "会员详情",
path: "/wechatmemberDetail?memberId=" + this.$route.query.memberId
path: "/customerDetail?memberId=" + this.$route.query.memberId
},
{
name: "通话记录",
......@@ -268,7 +268,7 @@ export default {
},
goback() {
this.$router.push({
path: "wechatmemberDetail",
path: "customerDetail",
query: { memberId: this.memberId }
});
},
......
......@@ -708,7 +708,7 @@
</el-dialog>
<!--修改导购备注-end-->
<ModifyGuide :dialogVisible.sync="modifyClerkDialog" :memberId="memberbaseinfo.memberId" :mainStoreId="memberbaseinfo.mainStoreId" @getList="getBaseDetail" />
<vue-gic-footer></vue-gic-footer>
<!-- <vue-gic-footer></vue-gic-footer> -->
</div>
</template>
......
......@@ -156,13 +156,12 @@ export default {
path: ""
},
{
name: "微信会员",
path: "/wechatmembers"
name: "客户列表",
path: "/allCustomers"
},
{
name: "会员详情",
path:
"/wechatmemberDetail?memberId=" + this.$route.query.memberId || ""
path: "/customerDetail?memberId=" + this.$route.query.memberId || ""
},
{
name: "微盟订单",
......@@ -239,7 +238,7 @@ export default {
},
goback() {
this.$router.push({
path: "wechatmemberDetail",
path: "customerDetail",
query: { memberId: this.memberId }
});
},
......
......@@ -57,6 +57,13 @@ export const constantRouterMap = [
}
},
{
path: "/consumption",
component: _import("allCustomers", "consumption"),
meta: {
title: "会员门店消费",
}
},
{
path: "/wechattotal",
component: _import("wechatmembers", "wechat-total"),
meta: {
......
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