Ver Fonte

api接口

lyh há 1 ano atrás
pai
commit
e393265f16

+ 5 - 3
apps/customer/models.py

@@ -121,9 +121,11 @@ class CustomerVehicle(models.Model):
     customer = models.ForeignKey(Customer, verbose_name=u'客户', on_delete=models.PROTECT, editable=False)
     name = models.CharField(max_length=100, verbose_name=u"姓名")
     tel = models.CharField(max_length=50, verbose_name=u'电话')
-    vin = models.CharField(max_length=20)
-    number = models.CharField(max_length=20)
-    model = models.CharField(max_length=200)
+    vin = models.CharField(max_length=20, null=True, verbose_name=u'电话')
+    number = models.CharField(max_length=20, verbose_name=u'车牌号')
+    model = models.CharField(max_length=200, verbose_name=u'车型')
+    inspect_end_date = models.DateField(verbose_name=u'年检到期', null=True)
+    insure_end_date = models.DateField(verbose_name=u'保险到期', null=True)
     delete = models.BooleanField(verbose_name=u"删除", default=False)
 
     class Meta:

+ 13 - 1
apps/vehicle_order/filters.py

@@ -2,7 +2,7 @@
 
 import django_filters
 
-from .models import VehicleDriveReserve, VehicleInquiry, UsedVehicleInquiry, UsedVehicleEstimate
+from .models import VehicleDriveReserve, VehicleInquiry, UsedVehicleInquiry, UsedVehicleEstimate,InsurConsultation
 
 
 class VehicleDriveReserveFilter(django_filters.FilterSet):
@@ -57,4 +57,16 @@ class UsedVehicleEstimateFilter(django_filters.FilterSet):
         model = UsedVehicleEstimate
         fields = '__all__'
 
+class InsurConsultationFilter(django_filters.FilterSet):
+    name = django_filters.CharFilter(field_name='name', lookup_expr='icontains')
+    tel = django_filters.CharFilter(field_name='tel', lookup_expr='icontains')
+    shop = django_filters.CharFilter(field_name='shop')
+    status = django_filters.CharFilter(field_name='status')
+    id = django_filters.CharFilter(field_name='id')
+    customer = django_filters.CharFilter(field_name='customer')
+
+    class Meta:
+        model = InsurConsultation
+        fields = '__all__'
+
 

+ 24 - 0
apps/vehicle_order/models.py

@@ -101,6 +101,7 @@ class UsedVehicleEstimate(models.Model):
     create_time = models.DateTimeField(verbose_name=u"添加时间", auto_now_add=True, editable=False)
     status = models.PositiveSmallIntegerField(choices=STATUS_CHOICES, verbose_name=u'状态', default=WAIT_VISIT)
     customer = models.ForeignKey(Customer, verbose_name=u'客户', on_delete=models.PROTECT, editable=False)
+    tel = models.CharField(max_length=20, verbose_name=u'电话', null=True)
     model = models.CharField(max_length=100, verbose_name=u'车型', null=True)
     plate_date = models.DateField(verbose_name=u"上牌日期", blank=True, null=True)
     area = models.CharField(max_length=100, verbose_name=u'城市', null=True)
@@ -112,4 +113,27 @@ class UsedVehicleEstimate(models.Model):
         db_table = 'usedvehicle_estimate'
         verbose_name = u'二手车预估'
         ordering = ("-id",)
+        default_permissions = ()
+
+
+class InsurConsultation(models.Model):
+    WAIT_VISIT = 1
+    VISITED = 2
+    STATUS_CHOICES = (
+        (WAIT_VISIT, u'待回访'),
+        (VISITED, u'已回访'),
+    )
+    shop = models.ForeignKey(Shop, verbose_name=u'门店', on_delete=models.PROTECT)
+    create_time = models.DateTimeField(verbose_name=u"添加时间", auto_now_add=True, editable=False)
+    status = models.PositiveSmallIntegerField(choices=STATUS_CHOICES, verbose_name=u'状态', default=WAIT_VISIT)
+    customer = models.ForeignKey(Customer, verbose_name=u'客户', on_delete=models.PROTECT, editable=False)
+    name = models.CharField(max_length=100, verbose_name=u'名称', null=True)
+    tel = models.CharField(max_length=20, verbose_name=u'电话', null=True)
+    content = models.CharField(max_length=1000, verbose_name=u'内容', null=True)
+    delete = models.BooleanField(verbose_name=u'删除', default=False, editable=False)
+
+    class Meta:
+        db_table = 'insur_consultation'
+        verbose_name = u'续保咨询'
+        ordering = ("-id",)
         default_permissions = ()

+ 12 - 2
apps/vehicle_order/serializers.py

@@ -4,7 +4,7 @@ from django.conf import settings
 
 from rest_framework import serializers
 
-from .models import VehicleDriveReserve, VehicleInquiry, UsedVehicleInquiry, UsedVehicleEstimate
+from .models import VehicleDriveReserve, VehicleInquiry, UsedVehicleInquiry, UsedVehicleEstimate, InsurConsultation
 
 class VehicleDriveReserveSerializer(serializers.ModelSerializer):
     shop_name = serializers.CharField(source='shop.name', read_only=True)
@@ -56,7 +56,6 @@ class UsedVehicleEstimateSerializer(serializers.ModelSerializer):
     shop_name = serializers.CharField(source='shop.name', read_only=True)
     brand_name = serializers.CharField(source='brand.name', read_only=True)
     customer_name = serializers.CharField(source='customer.name', read_only=True)
-    customer_tel = serializers.CharField(source='customer.tel', read_only=True)
     status_text = serializers.CharField(source='get_status_display', read_only=True)
     create_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
     plate_date = serializers.DateField(format='%Y-%m-%d')
@@ -65,3 +64,14 @@ class UsedVehicleEstimateSerializer(serializers.ModelSerializer):
         model = UsedVehicleEstimate
         fields = '__all__'
 
+
+class InsurConsultationSerializer(serializers.ModelSerializer):
+    shop_name = serializers.CharField(source='shop.name', read_only=True)
+    customer_name = serializers.CharField(source='customer.name', read_only=True)
+    status_text = serializers.CharField(source='get_status_display', read_only=True)
+    create_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
+
+    class Meta:
+        model = InsurConsultation
+        fields = '__all__'
+

+ 1 - 0
apps/vehicle_order/urls.py

@@ -14,4 +14,5 @@ router.register(r'drive_reserve', VehicleDriveReserveViewSet)
 router.register(r'inquiry', VehicleInquiryViewSet)
 router.register(r'usedvehicle_inquiry', UsedVehicleInquiryViewSet)
 router.register(r'usedvehicle_estimate', UsedVehicleEstimateViewSet)
+router.register(r'insur_consultation', InsurConsultationViewSet)
 urlpatterns += router.urls

+ 20 - 0
apps/vehicle_order/views.py

@@ -92,4 +92,24 @@ class UsedVehicleEstimateViewSet(CustomModelViewSet):
             order.status = UsedVehicleEstimate.VISITED
             order.save()
             tenant_log(self.request.user, BizLog.UPDATE, u'二手车预估单回访,id=%d' % (order.id))
+        return response_ok()
+
+
+class InsurConsultationViewSet(CustomModelViewSet):
+    queryset = InsurConsultation.objects.filter(delete=False)
+    serializer_class = InsurConsultationSerializer
+
+    def filter_queryset(self, queryset):
+        f = InsurConsultationFilter(self.request.GET, queryset=queryset)
+        return f.qs
+
+    @action(methods=['post'], detail=True)
+    def visit(self, request, pk):
+        order = InsurConsultation.objects.filter(id=pk).first()
+        with transaction.atomic():
+            if order.status != InsurConsultation.WAIT_VISIT:
+                raise CustomError(u'当前状态不允许修改!')
+            order.status = InsurConsultation.VISITED
+            order.save()
+            tenant_log(self.request.user, BizLog.UPDATE, u'续保询价单回访,id=%d' % (order.id))
         return response_ok()

+ 1 - 1
apps/wechat/activity/serializers.py

@@ -23,7 +23,7 @@ class ActivitySerializer(serializers.ModelSerializer):
 
     def get_cover(self, obj):
         if obj.cover:
-            return {'width': obj.cover.width, 'height': obj.cover.height, 'url': obj.cover.get_path()}
+            return {'width': obj.cover.width, 'height': obj.cover.height, 'url': obj.cover.get_path(), 'id': obj.id}
         return ''
 
 

+ 1 - 0
apps/wechat/activity/urls.py

@@ -7,4 +7,5 @@ from .views import *
 
 urlpatterns = [
     url(r'^list/$', ActivityListViewSet.as_view()),
+    url(r'^detail/$', ActivityDetailView.as_view()),
 ]

+ 15 - 1
apps/wechat/activity/views.py

@@ -2,7 +2,7 @@
 
 from rest_framework import generics
 from utils.permission import IsCustomerUser
-
+from utils.exceptions import CustomError
 from utils import response_ok
 from .serializers import ActivitySerializer
 from apps.activity.models import Activity
@@ -24,3 +24,17 @@ class ActivityListViewSet(generics.ListAPIView):
         serializer = self.get_serializer(queryset, many=True)
         return response_ok(serializer.data)
 
+
+class ActivityDetailView(generics.RetrieveAPIView):
+    # permission_classes = [IsCustomerUser, ]
+    queryset = Activity.objects.filter(delete=False)
+    serializer_class = ActivitySerializer
+
+    def retrieve(self, request, *args, **kwargs):
+        id = request.GET.get('id')
+        instance = self.queryset.filter(id=id).first()
+        if not instance:
+            raise CustomError(u'未找到相应的活动!')
+        serializer = self.get_serializer(instance)
+        return response_ok(serializer.data)
+

+ 17 - 2
apps/wechat/customer/serializers.py

@@ -42,7 +42,6 @@ class CustomerAddressSerializer(serializers.ModelSerializer):
         return instance
 
 
-
 class ProductOrderSerializer(serializers.ModelSerializer):
     product_name = serializers.CharField(source='product.name', read_only=True)
     name = serializers.CharField(source='customer.name', read_only=True)
@@ -143,7 +142,6 @@ class UsedVehicleInquirySerializer(serializers.ModelSerializer):
 class UsedVehicleEstimateSerializer(serializers.ModelSerializer):
     brand_name = serializers.CharField(source='brand.name', read_only=True)
     customer_name = serializers.CharField(source='customer.name', read_only=True)
-    customer_tel = serializers.CharField(source='customer.tel', read_only=True)
     status_text = serializers.CharField(source='get_status_display', read_only=True)
     create_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
     plate_date = serializers.DateField(format='%Y-%m-%d')
@@ -159,6 +157,23 @@ class UsedVehicleEstimateSerializer(serializers.ModelSerializer):
         return instance
 
 
+class InsurConsultationSerializer(serializers.ModelSerializer):
+    brand_name = serializers.CharField(source='brand.name', read_only=True)
+    customer_name = serializers.CharField(source='customer.name', read_only=True)
+    status_text = serializers.CharField(source='get_status_display', read_only=True)
+    create_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
+
+    class Meta:
+        model = InsurConsultation
+        fields = '__all__'
+
+    def create(self, validated_data):
+        customer = self.context['request'].customer
+        validated_data['customer'] = customer
+        instance = super(InsurConsultationSerializer, self).create(validated_data)
+        return instance
+
+
 class MaintOrderReserveSerializer(serializers.ModelSerializer):
     shop_name = serializers.CharField(source='shop.name', read_only=True)
     model_name = serializers.CharField(source='vehicle.model', read_only=True)

+ 1 - 1
apps/wechat/customer/urls.py

@@ -10,13 +10,13 @@ urlpatterns = [
     url(r'^inquiry/$', VehicleInquiryViewSet.as_view()),
     url(r'^usedvehicle_inquiry/$', UsedVehicleInquiryViewSet.as_view()),
     url(r'^usedvehicle_estimate/$', UsedVehicleEstimateViewSet.as_view()),
+    url(r'^insur_consultation/$', InsurConsultationViewSet.as_view()),
     url(r'^product_order/$', ProductOrderViewSet.as_view()),
     url(r'^product_order/add/$', ProductOrderSaveViewSet.as_view()),
     url(r'^maint_reserve/$', MaintOrderReserveViewSet.as_view()),
     url(r'^maint_reserve/options/$', MaintReserveOptionsView.as_view()),
     url(r'^usedvehicle/brands/$', UsedVehicleBrandsView.as_view()),
     url(r'^plan_product_order/$', PlanProductOrderView.as_view()),
-    # url(r'^vehicle/$', CustomerVehicleViewSet.as_view()),
 ]
 
 router = SimpleRouter()

+ 53 - 1
apps/wechat/customer/views.py

@@ -4,7 +4,7 @@ from django.db import transaction
 from rest_framework.views import APIView
 from rest_framework.decorators import action
 from rest_framework import generics
-from utils import response_ok
+from utils import response_ok,response_error
 from apps.account import tenant_log
 from apps.foundation.models import BizLog
 from rest_framework.exceptions import NotFound
@@ -159,6 +159,43 @@ class UsedVehicleEstimateViewSet(generics.ListCreateAPIView):
         return response_ok()
 
 
+class InsurConsultationViewSet(generics.ListCreateAPIView):
+    permission_classes = [IsCustomerUser, ]
+    queryset = InsurConsultation.objects.filter(delete=False)
+    serializer_class = InsurConsultationSerializer
+
+    def filter_queryset(self, queryset):
+        queryset = queryset.filter(customer=self.request.customer)
+        f = InsurConsultationFilter(self.request.GET, queryset=queryset)
+        return f.qs
+
+    def list(self, request, *args, **kwargs):
+        try:
+            data = super(InsurConsultationViewSet, self).list(request)
+        except NotFound:
+            return response_ok([])
+        return data
+
+    def create(self, request, *args, **kwargs):
+        with transaction.atomic():
+            serializer = self.get_serializer(data=request.data)
+            serializer.is_valid(raise_exception=True)
+            serializer.save()
+            instance = serializer.instance
+            validated_data = serializer.validated_data
+
+            # 同步销管佳
+            abutment_xgj = Config.getConfigValue(Config.KEY_ABUTMENT_XGJ) or ''
+            if abutment_xgj and abutment_xgj == 'true':
+                try:
+                    XGJ.insur_consultation(instance)
+                except Exception as e:
+                    tenant_log(instance.customer.user, BizLog.INSERT, u'续保咨询同步销管佳失败[%s],id=%d' % (str(e), instance.id))
+            tenant_log(instance.customer.user, BizLog.INSERT, u'客户添加续保咨询,id=%d' % instance.id, validated_data)
+
+        return response_ok()
+
+
 class MaintOrderReserveViewSet(generics.ListCreateAPIView):
     permission_classes = [IsCustomerUser, ]
     queryset = MaintOrderReserve.objects.filter(delete=False)
@@ -230,6 +267,21 @@ class ProductOrderSaveViewSet(generics.CreateAPIView):
         return response_ok()
 
 
+class GetMaintOrder(APIView):
+    permission_classes = [IsCustomerUser, ]
+
+    def get(self, request):
+        id = request.GET.get('id')
+        abutment_xgj = Config.getConfigValue(Config.KEY_ABUTMENT_XGJ) or ''
+        if abutment_xgj and abutment_xgj == 'true':
+            try:
+                res = XGJ.get_order(id)
+            except Exception as e:
+                return response_error(str(e))
+            return response_ok(res)
+        return response_ok([])
+
+
 class CustomerVehicleViewSet(CustomModelViewSet):
     permission_classes = [IsCustomerUser, ]
     queryset = CustomerVehicle.objects.filter()

+ 51 - 1
apps/wechat/customer/xgj.py

@@ -13,6 +13,7 @@ from rest_framework import generics
 from utils import response_ok
 from apps.account import tenant_log
 from apps.foundation.models import BizLog, Config
+from apps.customer.models import CustomerVehicle
 from rest_framework.exceptions import NotFound
 from utils.format import *
 
@@ -152,4 +153,53 @@ class XGJ():
             else:
                 tenant_log(instance.customer.user, BizLog.INSERT, u'售后预约同步销管佳成功,id=%d' % (instance.id))
         else:
-            tenant_log(instance.customer.user, BizLog.INSERT, u'售后预约同步销管佳失败,没有设置销管佳地址或密钥,id=%d' % (instance.id))
+            tenant_log(instance.customer.user, BizLog.INSERT, u'售后预约同步销管佳失败,没有设置销管佳地址或密钥,id=%d' % (instance.id))
+
+    @staticmethod
+    def insur_consultation(instance):  # 续保咨询
+        xgj_ip = Config.getConfigValue(Config.KEY_XGJ_IP)
+        xgj_session_key = Config.getConfigValue(Config.KEY_XGJ_SESSION_KEY)
+
+        if xgj_ip and xgj_session_key:
+            ts, sign = gender_sign(xgj_session_key)
+            url = xgj_ip + 'api/wechat_applet/insur_consultation_add/?ts=' + ts + '&sign=' + sign
+
+            param = {
+                'company': instance.shop.xgj_id,
+                'tel': instance.tel,
+                'name': instance.name,
+                'content': instance.content
+            }
+            result = requests.post(url=url, data=json.dumps(param))
+            result = result.json()
+
+            if not result['success']:
+                if 'errors' in result:
+                    tenant_log(instance.customer.user, BizLog.INSERT,
+                               u'续保咨询同步销管佳失败[%s],id=%d' % (str(result['errors']), instance.id))
+                else:
+                    tenant_log(instance.customer.user, BizLog.INSERT, u'续保咨询同步销管佳失败,id=%d' % (instance.id))
+            else:
+                tenant_log(instance.customer.user, BizLog.INSERT, u'续保咨询同步销管佳成功,id=%d' % (instance.id))
+        else:
+            tenant_log(instance.customer.user, BizLog.INSERT, u'续保咨询同步销管佳失败,没有设置销管佳地址或密钥,id=%d' % (instance.id))
+
+    @staticmethod
+    def get_order(id):  # 售后工单
+        vehicle = CustomerVehicle.objects.filter(id=id).first()
+        xgj_ip = Config.getConfigValue(Config.KEY_XGJ_IP)
+        xgj_session_key = Config.getConfigValue(Config.KEY_XGJ_SESSION_KEY)
+
+        if xgj_ip and xgj_session_key:
+            ts, sign = gender_sign(xgj_session_key)
+            url = xgj_ip + 'api/wechat_applet/maint_order/list/?ts=' + ts + '&sign=' + sign
+
+            param = {
+                'tel': vehicle.tel,
+                'number': vehicle.number,
+            }
+            result = requests.post(url=url, data=json.dumps(param))
+            result = result.json()
+
+            return result
+        return {'data': []}

+ 3 - 3
uis/views/customer/index.html

@@ -128,10 +128,10 @@
       }else if(obj.event === 'vehicle'){
             layer.open({
               type: 2,
-              title: data.name + '的车辆信息',
+              title: data.name + '的车辆',
               shadeClose: false,
-              area: ['60%', '80%'],
-              content: 'customer_vehicle.html?id='+data.id
+              area: ['80%', '80%'],
+              content: 'vehicles.html?id='+data.id
             });
         }
     });

+ 5 - 3
uis/views/customer/customer_vehicle.html → uis/views/customer/vehicles.html

@@ -51,11 +51,13 @@
       ,url: '/customer/vehicle/?customer=' + id
       ,id: 'datagrid_customer_vehicle'
       ,cols: [[
-        {field:'name', title:'姓名',width: 150}
-       ,{field:'tel', title:'电话',width: 150}
-       ,{field:'number', title:'车牌号',width: 150}
+        {field:'name', title:'姓名',width: 100}
+       ,{field:'tel', title:'电话',width: 120}
+       ,{field:'number', title:'车牌号',width: 120}
        ,{field:'vin', title:'车架号',width: 200}
        ,{field:'model', title:'车型',width: 150}
+       ,{field:'inspect_end_date', title:'年检到期',width: 120}
+       ,{field:'insure_end_date', title:'保险到期',width: 120}
       ]]
       ,page:true
       ,height: 'full-108'

+ 3 - 0
uis/views/index.html

@@ -75,6 +75,9 @@
                 <dd data-name="button">
                   <a lay-href="vehicle_order/drive_reserve.html">试驾预约</a>
                 </dd>
+                <dd data-name="button">
+                  <a lay-href="vehicle_order/insur_consultation.html">续保咨询</a>
+                </dd>
               </dl>
             </li>
             <li data-name="set" class="layui-nav-item">

+ 136 - 0
uis/views/vehicle_order/insur_consultation.html

@@ -0,0 +1,136 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="utf-8">
+  <title>活动管理</title>
+  <meta name="renderer" content="webkit">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+  <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
+  <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
+  <link rel="stylesheet" type="text/css" href="../../layuiadmin/style/formSelects-v4.css"/>
+    <style type="text/css">
+    .LAY-btns .layui-nav {padding-left:0;padding-right:10px;top:-4px;margin: 0 10px;border: 0;background-color: #009688;}
+    .LAY-btns .layui-nav .layui-nav-item{line-height: 30px;}
+    .LAY-btns .layui-nav .layui-nav-child{top:34px;}
+    .LAY-btns .layui-nav .layui-nav-bar{display: none;}
+    .LAY-btns .layui-nav .layui-nav-child dd.layui-this a{color:#333;background-color:#fff;}
+    .LAY-btns .layui-nav .layui-nav-child dd.layui-this a:hover {background-color: #f2f2f2;color: #000;}
+    .seach_items {float:right;margin-left: 10px;}
+  </style>
+</head>
+<body>
+
+  <div class="layui-fluid">
+    <div class="layui-card">
+        <div class="layui-card-body" pad15>
+        <div class="layui-row layui-col-space15">
+          <div class="layui-col-md12">
+            <div class="LAY-btns" style="margin-bottom: 10px;">
+
+                <form class="layui-form" lay-filter="query-form-element">
+                    <div class="seach_items">
+                        <button class="layui-btn" lay-submit lay-filter="query-form-element"><i class="layui-icon layui-icon-search"></i>查询</button>
+                    </div>
+                    <div class="seach_items">
+                        <input type="text"  name="tel" autocomplete="off" class="layui-input" placeholder="电话"/>
+                    </div>
+
+                    <div class="seach_items">
+                        <input type="text"  name="name" autocomplete="off" class="layui-input" placeholder="询价人"/>
+                    </div>
+                    <div class="seach_items">
+                       <select  name="status">
+                            <option value="">状态</option>
+                            <option value="1">待回访</option>
+                            <option value="2">已回访</option>
+                        </select>
+                    </div>
+
+                </form>
+                <div style="clear: both;"></div>
+            </div>
+            <table class="layui-hide" id="datagrid" lay-filter="datagrid-operate"></table>
+
+            <script type="text/html" id="datagrid-operate-bar">
+                <div class="layui-btn-group">
+                    <a class="layui-btn layui-btn-xs" lay-event="visit">回访</a>
+                </div>
+            </script>
+          </div>
+        </div>
+        </div>
+    </div>
+  </div>
+
+  <script src="../../layuiadmin/layui/layui.js?t=1"></script>
+  <script>
+  layui.config({
+    base: '../../../layuiadmin/' //静态资源所在路径
+  }).extend({
+    index: 'lib/index' //主入口模块
+     ,formSelects: 'formSelects-v4'
+  }).use(['index', 'table', 'form', 'formSelects'], function(){
+    var $ = layui.$
+        ,table = layui.table
+        ,admin = layui.admin
+        ,form = layui.form;
+
+    table.render({
+      elem: '#datagrid'
+      ,url: '/vehicle_order/insur_consultation/'
+      ,cols: [[
+        {field:'shop_name', title:'门店',width: 200}
+       ,{field:'status_text', title:'状态',width: 100}
+       ,{field:'customer_name', title:'客户',width: 120}
+       ,{field:'name', title:'咨询人',width: 120}
+       ,{field:'tel', title:'电话',width: 120}
+       ,{field:'content', title:'内容',width: 300}
+       ,{field:'create_time', title:'创建时间',width: 150}
+        ,{width:80, align:'center', fixed: 'right', toolbar: '#datagrid-operate-bar'}
+      ]]
+      ,page: true
+      ,height: 'full-108'
+      , done: function () {
+        layui.index.removeNoPermButtons()
+      }
+    });
+    form.on('submit(query-form-element)', function(data){
+      //layer.msg(JSON.stringify(data.field));
+      table.reload('datagrid', {
+          where: data.field
+          ,page:{curr:1}
+      });
+      layer.closeAll();
+      return false;
+    });
+    //监听工具条
+    table.on('tool(datagrid-operate)', function(obj){
+      var data = obj.data;
+      table.editdata = data;
+        if(obj.event === 'visit'){
+            if (data.status !== 1){
+                 layer.msg('该询价已回访');
+                return;
+            }
+         layer.confirm('确定询价已回访吗?', function(index){
+             layer.close(index);
+            admin.req({
+                url: '/vehicle_order/insur_consultation/'+data.id + '/visit/'
+                ,type: 'post'
+                ,done: function(res){
+                    if(res.code === 1){
+                        layer.msg(res.msg);
+                        return;
+                    }
+                    table.reload('datagrid',{});
+                }
+            });
+        });
+      }
+    });
+  });
+  </script>
+</body>
+</html>
+

+ 1 - 1
uis/views/vehicle_order/usedvehicle_estimate.html

@@ -104,7 +104,7 @@
        ,{field:'model', title:'车型',width: 150}
        ,{field:'status_text', title:'状态',width: 100}
        ,{field:'customer_name', title:'客户',width: 120}
-       ,{field:'customer_tel', title:'电话',width: 120}
+       ,{field:'tel', title:'电话',width: 120}
        ,{field:'plate_date', title:'上牌日期',width: 120}
        ,{field:'area', title:'地区',width: 200}
        ,{field:'mileage', title:'里程',width: 150}