Zory 4 روز پیش
والد
کامیت
d736757c03
2فایلهای تغییر یافته به همراه129 افزوده شده و 75 حذف شده
  1. 75 56
      src/components/imFloat/imFloat.vue
  2. 54 19
      src/views/manage/shop/index/components/form.vue

+ 75 - 56
src/components/imFloat/imFloat.vue

@@ -25,23 +25,31 @@
             <el-main class="nopadding">
                 <el-container>
                     <el-aside width="300px" v-loading="loadMsg">
-                      <div class="chat-contact">
-                        <div :class="checkChat==index?'contact-item active':'contact-item'" v-for="(item,index) in chatContact" :key="index" @click="checkChatItem(index)">
-                          <div class="img"><el-image :src="item.avatar" fit="contain" style="width: 40px; height: 40px"></el-image></div>
-                          <div class="kefu-store">
-                            <div class="name">{{item.user.nickname}} <span v-if="item.last.num > 0">{{item.last.num}}</span></div>
-                            <div class="desc" v-if="item.last.type=='text'">{{item.last.content}}</div>
-                            <div class="desc" v-if="item.last.type=='order'">[订单消息]</div>
-                            <div class="desc" v-if="item.last.type=='image'">[图片消息]</div>
-                            <div class="desc" v-if="item.last.type=='video'">[视频消息]</div>
-                            <div class="desc" v-if="item.last.type=='pay'">[支付消息]</div>
-                            <div class="desc" v-if="item.last.type=='address'">[收集地址]</div>
-                          </div>
-                          <div class="time">
-                            {{item.last.create_at}}
-                          </div>
-                        </div>
-                      </div>
+                        <el-container class="flex-column">
+                            <div class="aside-tabs bg">
+                                <div :class="orderData.tab=='user'?'aside-tab-items active':'aside-tab-items'" @click="handleClick('user')">当前咨询</div>
+                                <div :class="orderData.tab=='order'?'aside-tab-items active':'aside-tab-items'" @click="handleClick('order')">历史咨询</div>
+                            </div>
+                            <el-main class="nopadding">
+                                <div class="chat-contact">
+                                    <div :class="checkChat==index?'contact-item active':'contact-item'" v-for="(item,index) in chatContact" :key="index" @click="checkChatItem(index)">
+                                            <div class="img"><el-image :src="item.user.avatar" fit="contain" style="width: 40px; height: 40px"></el-image></div>
+                                            <div class="kefu-store">
+                                            <div class="name">{{item.user.nickname}} <span v-if="item.last.num > 0">{{item.last.num}}</span></div>
+                                            <div class="desc" v-if="item.last.type=='text'">{{item.last.content}}</div>
+                                            <div class="desc" v-if="item.last.type=='order'">[订单消息]</div>
+                                            <div class="desc" v-if="item.last.type=='image'">[图片消息]</div>
+                                            <div class="desc" v-if="item.last.type=='video'">[视频消息]</div>
+                                            <div class="desc" v-if="item.last.type=='pay'">[支付消息]</div>
+                                            <div class="desc" v-if="item.last.type=='address'">[收集地址]</div>
+                                        </div>
+                                        <div class="time">
+                                            {{item.last.create_at}}
+                                        </div>
+                                    </div>
+                                </div>
+                            </el-main>
+                        </el-container>
                     </el-aside>
                     <el-container v-if="chatItem">
                         <el-header><div class="msg-title">与{{ chatItem.user.nickname }}的对话</div></el-header>
@@ -143,31 +151,6 @@
                                                 </div>
                                             </el-popover>
                                         </div>
-                                        <!-- <div class="emoji-item">
-                                            <el-popover placement="top" :width="300" trigger="click">
-                                                <template #reference>
-                                                    <div class="item-btn">
-                                                        <el-image style="width:26px;height:26px;" src="https://jymini.oss-cn-guangzhou.aliyuncs.com/pc/money.svg"></el-image>
-                                                        <div class="name">补差价</div>
-                                                    </div>
-                                                </template>
-                                                <el-form :model="priceForm" :rules="rules" ref="priceForm" label-position="top">
-                                                    <el-form-item label="名称" prop="name" class="label-item">
-                                                        <el-input v-model="priceForm.name" placeholder="请输入" clearable />
-                                                        <div class="el-form-item-msg"></div>
-                                                    </el-form-item>
-                                                    <el-form-item label="差价金额" prop="price" class="label-item">
-                                                        <el-input v-model="priceForm.price" placeholder="请输入" clearable>
-                                                            <template #append>元</template>
-                                                        </el-input>
-                                                        <div class="el-form-item-msg"></div>
-                                                    </el-form-item>
-                                                    <el-form-item>
-                                                        <el-button type="primary" :loading="isSaveing" @click="submitPrice()">确定发送</el-button>
-                                                    </el-form-item>
-                                                </el-form>
-                                            </el-popover>
-                                        </div> -->
                                     </div>
                                     <el-input
                                         type="textarea"
@@ -224,9 +207,13 @@
                                             <div class="m-order-item">
                                                 <div class="order-img"><el-image style="width: 80px;height: 80px;" :src="msgOrder.img" fit="fit"></el-image></div>
                                                 <div class="order-info">
-                                                    <div class="title">{{msgOrder.product.product_name}}</div>
+                                                    <div class="title" style="padding: 0;">{{msgOrder.product.product_name}}</div>
+                                                    <div class="desc" v-if="msgOrder.sku_name">规格:{{msgOrder.sku_name}}</div>
                                                     <div class="desc">{{msgOrder.order_sn}}</div>
-                                                    <div class="price">{{this.$TOOL.money(msgOrder.price)}}</div>
+                                                    <div class="price">
+                                                        {{$TOOL.money(msgOrder.price)}}
+                                                        <text v-if="msgOrder.custom_price > 0">差价:{{$TOOL.money(msgOrder.custom_price)}}</text>
+                                                    </div>
                                                 </div>
                                                 <div class="order-status-btn">
                                                     <div class="status info" v-if="msgOrder.status=='0'">未支付</div>
@@ -235,12 +222,15 @@
                                                     <div class="status danger" v-if="msgOrder.status=='3'">已退款</div>
                                                     <div class="status warn" v-if="msgOrder.status=='4'">退款中</div>
                                                     <div class="status warn" v-if="msgOrder.status=='5'">已关闭</div>
+                                                    <div class="status success" v-if="msgOrder.product.product_type==11 && msgOrder.custom_price > 0 && msgOrder.custom_status ==1">差价已付</div>
+                                                    <div class="status danger" v-if="msgOrder.product.product_type==11 && msgOrder.custom_price > 0 && msgOrder.custom_status ==0">差价未付</div>
                                                 </div>
                                             </div>
                                             <div class="order-btn-group">
                                                 <div class="status info cus" @click="viewOrder(msgOrder)">查看详情</div>
                                                 <div class="status primary cus" @click="sendAddress(msgOrder)">收集地址</div>
-                                                <div class="status warn cus" v-if="msgOrder.product.product_type==11" @click="submitPrice(msgOrder)">补差价</div>
+                                                <div class="status warn cus" v-if="msgOrder.product.product_type==11 && msgOrder.custom_price > 0 && msgOrder.custom_status ==0" @click="submitPrice(msgOrder)">补差价</div>
+                                                <div class="status danger cus" v-if="msgOrder.product.product_type==11 && msgOrder.custom_price > 0 && msgOrder.custom_status ==0" @click="submitPrice(msgOrder)">改差价</div>
                                                 <div class="status danger cus" @click="sendOrder(msgOrder)">发送订单</div>
                                             </div>
                                         </div>
@@ -250,8 +240,8 @@
                                     <el-container>
                                         <el-header>
                                             <div class="order-search-input">
-                                                <el-input v-model="orderData.order" placeholder="搜索订单编号..." style="width: 100%;" />
-                                                <el-button>搜索</el-button>
+                                                <el-input v-model="priceData.order" placeholder="搜索订单编号..." style="width: 100%;" />
+                                                <el-button @click="searchPrice">搜索</el-button>
                                             </div>
                                         </el-header>
                                         <el-main>
@@ -268,7 +258,7 @@
                                         <el-header>
                                             <div class="order-search-input">
                                                 <el-input v-model="orderData.order" placeholder="搜索订单编号..." style="width: 100%;" />
-                                                <el-button>搜索</el-button>
+                                                <el-button @click="searchOrder">搜索</el-button>
                                             </div>
                                         </el-header>
                                         <el-main>
@@ -278,8 +268,12 @@
                                                         <div class="order-img"><el-image style="width: 80px;height: 80px;" :src="item.img" fit="fit"></el-image></div>
                                                         <div class="order-info">
                                                             <div class="title">{{item.product.product_name}}</div>
+                                                            <div class="desc" v-if="item.sku_name">规格:{{item.sku_name}}</div>
                                                             <div class="desc">{{item.order_sn}}</div>
-                                                            <div class="price">{{this.$TOOL.money(item.price)}}</div>
+                                                            <div class="price">
+                                                                {{$TOOL.money(item.price)}}
+                                                                <text v-if="item.custom_price > 0">差价:{{$TOOL.money(item.custom_price)}}</text>
+                                                            </div>
                                                         </div>
                                                         <div class="order-status-btn">
                                                             <div class="status info" v-if="item.status=='0'">未支付</div>
@@ -288,12 +282,15 @@
                                                             <div class="status danger" v-if="item.status=='3'">已退款</div>
                                                             <div class="status warn" v-if="item.status=='4'">退款中</div>
                                                             <div class="status warn" v-if="item.status=='5'">已关闭</div>
+                                                            <div class="status success" v-if="item.product.product_type==11 && item.custom_price > 0 && item.custom_status ==1">差价已付</div>
+                                                            <div class="status danger" v-if="item.product.product_type==11 && item.custom_price > 0 && item.custom_status ==0">差价未付</div>
                                                         </div>
                                                     </div>
                                                     <div class="order-btn-group">
                                                         <div class="status info cus" @click="viewOrder(item)">查看详情</div>
                                                         <div class="status primary cus" @click="sendAddress(item)">收集地址</div>
-                                                        <div class="status warn cus" v-if="item.product.product_type==11" @click="submitPrice(item)">补差价</div>
+                                                        <div class="status warn cus" v-if="item.product.product_type==11 && item.custom_price > 0 && item.custom_status ==0" @click="submitPrice(item)">补差价</div>
+                                                        <div class="status danger cus" v-if="item.product.product_type==11 && item.custom_price > 0 && item.custom_status ==0" @click="submitPrice(item)">改差价</div>
                                                         <div class="status danger cus" @click="sendOrder(item)">发送订单</div>
                                                     </div>
                                                 </div>
@@ -406,7 +403,8 @@ export default {
                 list:[],
                 loading:false,
                 total:0,
-                tab:"user"
+                tab:"user",
+                order:""
             },
             priceData:{
                 page:1,
@@ -414,6 +412,7 @@ export default {
                 list:[],
                 loading:false,
                 total:0,
+                order:""
             }
         }
     },
@@ -470,8 +469,24 @@ export default {
                     this.getOrderList();
                     break;
                 case "price":
+                    this.priceData.page = 1;
+                    this.priceData.list = [];
+                    this.getOrderPrice();
                     break;
             }
+        },
+        searchOrder(){
+            this.orderData.page = 1;
+            this.orderData.list = [];
+            this.getOrderList();
+        },
+        searchPrice(){
+            this.priceData.page = 1;
+            this.priceData.list = [];
+            this.getOrderPrice();
+        },
+        getOrderPrice(){
+
         },
         viewOrder(data){
             data.order = data.out_order_no;
@@ -505,11 +520,14 @@ export default {
                     break;
             }
         },
-        async submitPrice(){
+        async submitPrice(data){
             var { priceForm,$message } = this;
-            var validate = await this.$refs.priceForm.validate().catch(()=>{});
-            if(!validate){ return false }
+            if (data.custom_status == 1) return $message.error("该订单差价已完成支付")
+            // var validate = await this.$refs.priceForm.validate().catch(()=>{});
+            // if(!validate){ return false }
             this.isSaveing = true;
+            priceForm.name = "订单差额补款";
+            priceForm.price = parseInt(data.custom_price) / 100;
             priceForm.type = "pay";
             priceForm.groupId = this.chatItem.poi_id
             priceForm.openid = this.chatItem.openid
@@ -752,10 +770,11 @@ export default {
 					thumbnail: item.content
 				};
 			}
+            console.log("item",item)
 			const message = {
 				groupId: item.poi_id,
 				senderData: {
-					avatar:item.avatar,
+					avatar:item.source==2?item.avatar:item.user.avatar,
 					name:item.source==2?item.nick.truename:item.user.nickname
 				},
 				senderId: (item.source==1?item.openid:item.service_id),
@@ -916,7 +935,7 @@ export default {
         },
         async getOrderList(){
             this.orderData.loading = true;
-            var resp = await this.$API.order.list.get({"page":this.orderData.page,"pageSize":this.orderData.size,"openid":this.chatItem.openid});
+            var resp = await this.$API.order.list.get({"page":this.orderData.page,"pageSize":this.orderData.size,"order":this.orderData.order,"openid":this.chatItem.openid});
             this.orderData.loading = false;
             if (resp.code == 0) {
                 return ;

+ 54 - 19
src/views/manage/shop/index/components/form.vue

@@ -1,14 +1,21 @@
 <template>
-    <el-dialog :title="titleMap[mode]" v-model="visible" :width="500" destroy-on-close @closed="$emit('closed')">
+    <el-dialog :title="titleMap[mode]" v-model="visible" :width="800" destroy-on-close @closed="$emit('closed')">
         <el-form ref="dialogForm" :model="formData" :rules="rules" label-width="100px" label-position="top">
-            <el-form-item label="店铺名称" prop="poi_name">
-                <el-input v-model="formData.poi_name" disabled readonly clearable placeholder="请输入"></el-input>
-                <div class="el-form-item-msg"></div>
-            </el-form-item>
-            <el-form-item label="客服电话" prop="service_mobile">
-                <el-input v-model="formData.service_mobile" clearable placeholder="请输入"></el-input>
-                <div class="el-form-item-msg">小程序中展现</div>
-            </el-form-item>
+            
+            <el-row :gutter="10">
+                <el-col :span="12">
+                    <el-form-item label="店铺名称" prop="poi_name">
+                        <el-input v-model="formData.poi_name" disabled readonly clearable placeholder="请输入"></el-input>
+                        <div class="el-form-item-msg"></div>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                    <el-form-item label="客服电话" prop="service_mobile">
+                        <el-input v-model="formData.service_mobile" clearable placeholder="请输入"></el-input>
+                        <div class="el-form-item-msg"></div>
+                    </el-form-item>
+                </el-col>
+            </el-row>
             <el-form-item label="营业时间">
                 <el-row :gutter="10">
                     <el-col :span="11">
@@ -29,16 +36,38 @@
                 </el-checkbox-group>
                 <div class="el-form-item-msg"></div>
             </el-form-item>
-            <el-form-item label="到期时间" prop="vip_end">
-                <el-date-picker v-model="formData.vip_end" :style="{width: '100%'}" placeholder="请选择" />
-            </el-form-item>
-            <el-form-item label="状态" prop="status">
-                <el-radio-group v-model="formData.status">
-                    <el-radio-button border label="1">开启</el-radio-button>
-                    <el-radio-button border label="2">关店</el-radio-button>
-                </el-radio-group>
-                <div class="el-form-item-msg"></div>
-            </el-form-item>
+            <el-row :gutter="10">
+                <el-col :span="12">
+                    <el-form-item label="团购结算费率" prop="life_rate">
+                        <el-input v-model="formData.life_rate" clearable placeholder="请输入">
+                            <template #append>%</template>
+                        </el-input>
+                        <div class="el-form-item-msg">来客结算费率</div>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                    <el-form-item label="补差价结算费率" prop="mini_rate">
+                        <el-input v-model="formData.mini_rate" clearable placeholder="请输入">
+                            <template #append>%</template>
+                        </el-input>
+                        <div class="el-form-item-msg">小程序结算费率</div>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                    <el-form-item label="到期时间" prop="vip_end">
+                        <el-date-picker v-model="formData.vip_end" :style="{width: '100%'}" placeholder="请选择" />
+                    </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                    <el-form-item label="状态" prop="status">
+                        <el-radio-group v-model="formData.status">
+                            <el-radio-button border label="1">开启</el-radio-button>
+                            <el-radio-button border label="2">关店</el-radio-button>
+                        </el-radio-group>
+                        <div class="el-form-item-msg"></div>
+                    </el-form-item>
+                </el-col>
+            </el-row>
         </el-form>
 		<template #footer>
             <el-button @click="visible=false" size="large">取 消</el-button>
@@ -67,6 +96,12 @@ export default {
                 service_mobile: [
                     {required: true, message: '请输入'}
                 ],
+                life_rate: [
+                    {required: true, message: '请输入'}
+                ],
+                mini_rate: [
+                    {required: true, message: '请输入'}
+                ],
                 start_at: [
                     {required: true, message: '请选择'}
                 ],