Browse Source

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	apps/customer/views.py
#	uis/views/customer/index.html
wushaodong 4 years ago
parent
commit
cdde744b71

+ 1 - 0
apps/customer/urls.py

@@ -7,6 +7,7 @@ from .views import *
 urlpatterns = [
     url(r'^dict/$', ReportCustomerDictView.as_view()),
     url(r'^get_user/$', UserDictView.as_view()),
+    url(r'^stage_count/$', StageCountView.as_view()),
 
 ]
 

+ 29 - 4
apps/customer/views.py

@@ -69,7 +69,6 @@ class ReportCustomerViewSet(CustomModelViewSet):
             instance.save()
             BizLog.objects.addnew(request.user, BizLog.INSERT,
                                   u'分配客户报备[%s],id=%d' % (instance.name,  instance.id))
-
             # 创建潜客跟踪表
             potential_level = Option.objects.filter(type=Option.POTENTIAL_LEVEL, enable=True).order_by('sort').first()
             stage_progress = Option.objects.filter(type=Option.STAGE_PROGRESS, enable=True).order_by('sort').first()
@@ -91,15 +90,15 @@ class ReportCustomerDictView(APIView):
     permission_classes = [isLogin]
 
     def get(self, request):
-        scouce = Option.objects.filter(type=Option.CUSTOMER_SOURCE, enable=True)
+        source = Option.objects.filter(type=Option.CUSTOMER_SOURCE, enable=True)
         project = Option.objects.filter(type=Option.CATEGORY, enable=True)
         level = Option.objects.filter(type=Option.POTENTIAL_LEVEL, enable=True)
-        serializer_scouce = OptionComboboxSerializer(scouce, many=True)
+        serializer_source = OptionComboboxSerializer(source, many=True)
         serializer_project = OptionComboboxSerializer(project, many=True)
         serializer_level = OptionComboboxSerializer(level, many=True)
 
         return response_ok({
-            'source': serializer_scouce.data,
+            'source': serializer_source.data,
             'project': serializer_project.data,
             'level': serializer_level.data,
         })
@@ -170,3 +169,29 @@ class NewCustomerViewSet(CustomModelViewSet):
         except Exception as e:
             return response_error(str(e))
         return response_ok()
+
+class StageCountView(APIView):
+    permission_classes = [isLogin]
+
+    def get(self,request):
+        data = []
+        stage_progress = Option.objects.filter(type=Option.STAGE_PROGRESS, enable=True).order_by('sort')
+        user = request.user
+        time_now = timezone.now().strftime('%Y-%m-%d')
+        for stage in stage_progress:
+            new_customers = NewCustomer.objects.filter(track_user=user, stage_progress=stage)
+            stage_count = {
+                'stage': stage.name,
+                'total': 0,
+                'today_count': 0,
+                'overdue_count': 0,
+            }
+            if new_customers:
+                stage_count = {
+                    'stage': stage.name,    # 阶段名称
+                    'total': new_customers.count(),   # 总人数
+                    'today_count': new_customers.filter(next_time=time_now).count(),  # 今日人数
+                    'overdue_count': new_customers.filter(next_time__lt=time_now).count()  # 逾期人数
+                }
+            data.append(stage_count)
+        return response_ok(data)

+ 11 - 0
uis/views/index.html

@@ -104,6 +104,17 @@
                             </dd>
                         </dl>
                     </li>
+                    <li data-name="set" class="layui-nav-item">
+                      <a href="javascript:;" lay-tips="订单作业" lay-direction="2">
+                          <i class="layui-icon layui-icon-set"></i>
+                          <cite>订单作业</cite>
+                      </a>
+                      <dl class="layui-nav-child">
+                          <dd data-name="nav" data-permission="customer.view_report_customer">
+                              <a lay-href="order/index.html">订单管理</a>
+                          </dd>
+                      </dl>
+                  </li>
                 </ul>
             </div>
         </div>

+ 134 - 0
uis/views/order/detail.html

@@ -0,0 +1,134 @@
+<!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>
+        .input {
+            border-radius: 2px;
+            height: 38px;
+            border-width: 1px;
+            border-color: lightgray;
+            border-style: solid;
+            background-color: white;
+            padding-left: 3px;
+        }
+    </style>
+</head>
+<body>
+
+<div class="layui-fluid">
+    <div class="layui-row layui-col-space15">
+        <div class="layui-card">
+            <div class="layui-card-body" pad15>
+                <div id="tableDom"></div>
+                <h3 style="margin: 40px 0 10px 0">进度明细</h3>
+                <table class="layui-hide" id="customer_datagrid" lay-filter="customer-operate"></table>
+            </div>
+        </div>
+    </div>
+</div>
+
+<script type="text/html" id="customer-operate-bar">
+    <div class="layui-btn-group">
+        <a class="layui-btn layui-btn-xs" lay-event="order_detail"
+        >查看资料</a>
+    </div>
+</script>
+
+
+<script id="demo" type="text/html">
+    <table class="layui-table">
+          <tbody>
+            <tr>
+              <td style="background: #f8f8f8; width: 70px">单号:</td>
+              <td>{{ d.no }}</td>
+              <td style="background: #f8f8f8; width: 70px">下单时间:</td>
+              <td>{{ d.order_time }}</td>
+            </tr>
+            <tr>
+              <td style="background: #f8f8f8; width: 70px">客户名称:</td>
+              <td>{{ d.name }}</td>
+              <td style="background: #f8f8f8; width: 70px">客户电话:</td>
+              <td>{{ d.tel }}</td>
+            </tr>
+            <tr>
+              <td style="background: #f8f8f8; width: 70px">客户地址:</td>
+              <td>{{ d.address }}</td>
+              <td style="background: #f8f8f8; width: 70px">当前进度:</td>
+              <td>{{ d.current_process }}</td>
+            </tr>
+            <tr>
+              <td style="background: #f8f8f8; width: 70px">服务人员:</td>
+              <td>{{ d.current_user }}</td>
+              <td style="background: #f8f8f8; width: 70px">备注:</td>
+              <td>{{ d.notes }}</td>
+            </tr>
+          </tbody>
+        </table>
+</script>
+<script src="../../layuiadmin/layui/layui.js"></script>
+<script>
+    layui.link('../../../layuiadmin/style/autocomplete.css');
+    layui.config({
+        base: '../../../layuiadmin/' //静态资源所在路径
+        , autocomplete: 'autocomplete'
+    }).extend({
+        index: 'lib/index',
+        formSelects: 'formSelects-v4'
+    }).use(['index', 'table', 'form', 'autocomplete', 'formSelects', 'laytpl' ], function () {
+        var $ = layui.$
+            , table = layui.table
+            , admin = layui.admin
+            , laytpl = layui.laytpl
+            , formSelects = layui.formSelects
+            , form = layui.form;
+
+        editdata = JSON.parse(JSON.stringify(parent.layui.table.editdata)); // 框架有Bug所以这么转换
+        var data = editdata;
+        var getTpl = demo.innerHTML
+        ,tableDom = document.getElementById('tableDom');
+        laytpl(getTpl).render(data, function(html){
+          tableDom.innerHTML = html;
+        });
+        table.render({
+            elem: '#customer_datagrid'
+            , url: '/api/process.json'
+            , cols: [[
+                {field: 'time', title: '时间', width: 150}
+                , {field: 'process', title: "进度", width: 120}
+                , {field: 'notes', title: '备注', width: 200}
+                , {field: 'option_user', title: '操作人', width: 120}
+                , {width: 100, align: 'center', fixed: 'right', toolbar: '#customer-operate-bar'}
+            ]]
+            , page: true
+        });
+
+         //监听工具条
+        table.on('tool(customer-operate)', function (obj) {
+            var data = obj.data;
+            if (obj.event === 'order_detail') {
+                // 显示资料图片
+                layer.open({
+                    type: 2,
+                    title: '资料图片',
+                    area: ['100%', '70%'],
+                    btn: ['取消'],
+                    btn1: function (index, layero) {
+                        layer.close(index);//关闭当前按钮
+                    },
+                    content: 'imgsInfo.html'
+                });
+            }
+        });
+    });
+</script>
+</body>
+</html>

+ 85 - 0
uis/views/order/imgsInfo.html

@@ -0,0 +1,85 @@
+<!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>
+        .input {
+            border-radius: 2px;
+            height: 38px;
+            border-width: 1px;
+            border-color: lightgray;
+            border-style: solid;
+            background-color: white;
+            padding-left: 3px;
+        }
+    </style>
+</head>
+<body>
+
+<div class="layui-fluid">
+    <div class="layui-row layui-col-space15">
+        <div class="layui-card">
+            <div class="layui-card-body" pad15>
+                <table class="layui-hide" id="customer_datagrid_imgs" lay-filter="customer-imgs-operate"></table>
+            </div>
+        </div>
+    </div>
+</div>
+
+<script type="text/html" id="customer-imgs-operate-bar">
+    <div class="layui-btn-group">
+        <a class="layui-btn layui-btn-xs" lay-event="order_search"
+        >查看</a>
+    </div>
+</script>
+
+<script src="../../layuiadmin/layui/layui.js"></script>
+<script>
+    layui.link('../../../layuiadmin/style/autocomplete.css');
+    layui.config({
+        base: '../../../layuiadmin/' //静态资源所在路径
+        , autocomplete: 'autocomplete'
+    }).extend({
+        index: 'lib/index',
+        formSelects: 'formSelects-v4'
+    }).use(['index', 'table', 'form', 'autocomplete', 'formSelects', 'laytpl' ], function () {
+        var $ = layui.$
+            , table = layui.table
+            , admin = layui.admin
+            , formSelects = layui.formSelects
+            , form = layui.form;
+
+        table.render({
+            elem: '#customer_datagrid_imgs'
+            , url: '/api/imgs.json'
+            , cols: [[
+                {field: 'sort', title: '类型', width: 100}
+                , {field: 'upload_time', title: "上传时间", width: 150}
+                , {field: 'notes', title: '备注', width: 200}
+                , {field: 'file_size', title: '文件大小', width: 120}
+                , {field: 'uploader', title: '上传人', width: 120}
+                , {width: 80, align: 'center', fixed: 'right', toolbar: '#customer-imgs-operate-bar'}
+            ]]
+            , page: true
+        });
+
+         //监听工具条
+        table.on('tool(customer-imgs-operate)', function (obj) {
+            var data = obj.data;
+            if (obj.event === 'order_search') {
+                // var newPage=window.open();
+                // newPage.document.write("<img src="+imgsList[index]+" />")
+            }
+        });
+    });
+</script>
+</body>
+</html>

+ 233 - 0
uis/views/order/index.html

@@ -0,0 +1,233 @@
+<!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=order-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">
+    <style type="text/css">
+        .seach_items {
+            float: right;
+            margin-left: 10px;
+        }
+    </style>
+    <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: 40px;
+        }
+
+        .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;
+        }
+
+        .tableContent{
+            width: 100%;
+            display: flex;
+            justify-content: space-between;
+            flex-direction: row;
+        }
+    </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;">
+                        <div style="float: left">
+                            <button class="layui-nav">
+                                <div class="layui-nav-item">
+                                    <a href="javascript:;" style="color:#fff;">导出</a>
+                                    <dl class="layui-nav-child">
+                                        <dd><a href="#" id="btn_list">列表</a></dd>
+                                        <dd><a href="#" id="btn_detail">明细</a></dd>
+                                    </dl>
+                                </div>
+                            </button>
+                        </div>
+                        <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="no" 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">
+                                <input type="text" name="tel" autocomplete="off" class="layui-input"
+                                       placeholder="客户电话"/>
+                            </div>
+                        </form>
+                        <div style="clear: both;"></div>
+                    </div>
+
+                    <table class="layui-hide" id="order_datagrid" lay-filter="order-operate"></table>
+
+
+                    <script type="text/html" id="order-operate-bar">
+                        <div class="layui-btn-group">
+                            <a class="layui-btn layui-btn-xs" lay-event="order_search"
+                            >查看</a>
+                        </div>
+                        <div class="layui-btn-group">
+                            <a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="order_update"
+                            >更新进度</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' //主入口模块
+    }).use(['index', 'table', 'form',], function () {
+        var $ = layui.$;
+        var table = layui.table
+            , form = layui.form
+            , admin = layui.admin;
+
+        table.render({
+            elem: '#order_datagrid'
+            , url: '/api/order.json'
+            , cols: [[
+                {field: 'no', title: '单号', width: 110}
+                , {field: 'order_time', title: "下单时间", width: 150}
+                , {field: 'name', title: '客户名称', width: 110}
+                , {field: 'tel', title: '客户电话', width: 120}
+                , {field: 'project', title: '项目', width: 120}
+                , {field: 'address', title: '客户地址', width: 200}
+                , {field: 'notes', title: '备注', width: 200}
+                , {field: 'current_process', title: '当前进度', width: 100}
+                , {field: 'update_time', title: '更新时间', width: 150}
+                , {field: 'current_user', title: '当前服务人员', width: 150}
+                , {width: 150, align: 'center', fixed: 'right', toolbar: '#order-operate-bar'}
+            ]]
+            , page: true
+            , height: 'full-108'
+        });
+        //导出列表
+        var _params1 = {};
+        $('#btn_list').on('click', function () {
+            $.get({
+                url: '/order/?export=true',
+                dataType: 'json',
+                data: _params1,
+                success: function (res) {
+                    if (res.code === 1) {
+                        layer.msg(res.msg);
+                        return;
+                    }
+                    table.exportFile('datagrid', res,)
+                }
+            })
+        });
+        //导出明细
+        var _params2 = {};
+        $('#btn_detail').on('click', function () {
+            $.get({
+                url: '/order/?export=true',
+                dataType: 'json',
+                data: _params2,
+                success: function (res) {
+                    if (res.code === 1) {
+                        layer.msg(res.msg);
+                        return;
+                    }
+                    table.exportFile('datagrid', res,)
+                }
+            })
+        });
+        //监听工具条
+        table.on('tool(order-operate)', function (obj) {
+            var data = obj.data;
+            if (obj.event === 'order_search') {
+               table.editdata = data;
+               layer.open({
+                type: 2,
+                title: '查看详情',
+                area: ['45%', '80%'],
+                btn: ['取消'],
+                btn1: function (index, layero) {
+                    layer.close(index);//关闭当前按钮
+                },
+                content: 'detail.html'
+            });
+            }else if(obj.event === "order_update"){
+                // 更新进度
+                layer.open({
+                    type: 2,
+                    title: '更新进度',
+                    area: ['45%', '80%'],
+                    btn: ['保存','取消'],
+                    yes: function (index, dom) {
+                        layui.onSubmitChild = function (res) {
+                            if (res.code === 0) {
+                                layer.msg('更新成功!', {icon: 1})
+                            }
+                            layer.close(index);
+                            table.reload('order_datagrid', {});
+                        };
+                        layui.submitChild();
+                    },
+                    btn2: function (index, layero) {
+                        layer.close(index);//关闭当前按钮
+                    },
+                    content: 'update.html?id=' + data.id
+                });
+            }
+        });
+
+        form.on('submit(query-form-element)', function (data) {
+            table.reload('order_datagrid', {
+                where: data.field
+                , page: {curr: 1}
+            });
+            layer.closeAll();
+            return false
+        });
+    });
+
+</script>
+</body>
+</html>

+ 227 - 0
uis/views/order/update.html

@@ -0,0 +1,227 @@
+<!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">
+    <style>
+        .input {
+            border-radius: 2px;
+            height: 38px;
+            border-width: 1px;
+            border-color: lightgray;
+            border-style: solid;
+            background-color: white;
+            padding-left: 3px;
+        }
+        .processText{
+            margin-top: 6px;
+        }
+
+        .layui-upload-drag {
+            padding: 10px;
+            margin-right: 15px;
+        }
+        .imgsContent{
+            display: flex;
+            justify-content: flex-start;
+            flex-direction: row;
+            flex-wrap: wrap;
+        }
+
+        .image {
+            width: 150px;
+            height: auto;
+        }
+        .imgItem{
+            margin: 0 10px;
+        }
+
+         .option {
+            display: flex;
+            justify-content: space-between;
+            flex-direction: row;
+        }
+
+        .optionItem {
+            padding: 0 13px;
+            margin: 10px;
+            border: 1px solid rgba(0, 0, 0, 0.1);
+            background: #009688;
+            color: #ffffff;
+        }
+
+    </style>
+</head>
+<body>
+
+<div class="layui-fluid">
+    <div class="layui-row layui-col-space15">
+        <div class="layui-card">
+
+            <div class="layui-card-body" pad15>
+                <form class="layui-form" action="" lay-filter="component-form-element">
+                    <div class="layui-row layui-col-space10 layui-form-item">
+                        <div>
+                            <label class="layui-form-label"><font color='red' size="4">*</font>终止:</label>
+                            <div class="layui-input-block">
+                                <input type="checkbox" name="end" lay-skin="switch" lay-text="是|否" checked=""
+                                       value="1">
+                            </div>
+                        </div>
+                        <div>
+                            <label class="layui-form-label">当前进度:</label>
+                            <div class="layui-input-block processText" id="current_process"></div>
+                        </div>
+                        <div>
+                            <label class="layui-form-label">下一进度:</label>
+                            <div class="layui-input-block processText" id="next_process"></div>
+                        </div>
+                        <div>
+                            <label class="layui-form-label">备注:</label>
+                            <div class="layui-input-block">
+                                <textarea type="text" name="notes" class="layui-textarea" placeholder="请输入备注"/></textarea>
+                            </div>
+                        </div>
+                        <div>
+                           <label class="layui-form-label"><font color='red' size="4">*</font>上传图片:</label>
+                           <div class="imgsContent">
+                                <div class="layui-upload-drag" id="upload_img">
+                                    <div id="upload_img">
+                                        <p style="padding-bottom: 10px">多选,最多选6张</p>
+                                        <i class="layui-icon"></i>
+                                        <p>点击上传,或将图片拖到此处</p>
+                                    </div>
+                                </div>
+                                <div id="imgsList" class="imgsContent"></div>
+                            </div>
+                        </div>
+
+                        <button id="id_save" class="layui-btn" lay-submit lay-filter="component-form-element"
+                                style="display: none">保存
+                        </button>
+                    </div>
+                </form>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="../../layuiadmin/layui/layui.js"></script>
+<script>
+    //即将上传的文件数组
+    var filesList = [];
+    //渲染的图片列表
+    var imgsList = [];
+
+    //渲染待上传的图片列表
+    var renderImgsList = function(list){
+        var html = "";
+        list.forEach((item, index)=>{
+            html += "<div class='imgItem'>\n";
+            html += "<img src='" + item + "' class='image'>\n";
+            html += '<div class="option">\n';
+            html += '<div onclick="showImg(' + index + ')" class="optionItem">查看</div>\n';
+            html += '<div onclick="deleteImg(' + index + ')" class="optionItem">删除</div>\n';
+            html += '</div>\n';
+            html += '</div>\n';
+        })
+        layui.$('#imgsList').html(html);
+    }
+
+    var showImg = function (index) {
+        var newPage=window.open();
+        newPage.document.write("<img src="+imgsList[index]+" />")
+    };
+
+    var deleteImg = function(index){
+        filesList.splice(index, 1);
+        imgsList.splice(index, 1);
+        renderImgsList(imgsList);
+    };
+
+    layui.link('../../../layuiadmin/style/autocomplete.css');
+    layui.config({
+        base: '../../../layuiadmin/' //静态资源所在路径
+        , autocomplete: 'autocomplete'
+    }).extend({
+        index: 'lib/index',
+    }).use(['index', 'form', 'autocomplete', 'upload'], function () {
+        var $ = layui.$
+            , admin = layui.admin
+            , upload = layui.upload
+            , form = layui.form;
+        var id = layui.view.getParameterByName('id');
+        //form.render(null, 'component-form-element');
+
+        //当前进度
+        $('#current_process').append('<span>已约量房</span>')
+        //下一进度
+        $('#next_process').append('<span>方案设计</span>');
+
+        //拖拽上传
+        upload.render({
+            elem: '#upload_img'
+            , accept: 'file'
+            , exts: 'jpg|png|jpeg|bmp'
+            , acceptMime: '.jpg,.png,.jpeg,.bmp'
+            , data: {}
+            , multiple: true
+            , number: 6
+            , auto: false
+            , choose: function(obj) {
+                if(imgsList.length >= 6){
+                    layer.msg("图片最多只允许上传6张", {icon: 2});
+                    return
+                }
+              //预读本地文件,如果是多文件,则会遍历。(不支持ie8/9)
+              obj.preview(function(index, file, result){
+                  filesList.push(file);
+                  imgsList.push(result);
+                  // 有图片列表的话渲染图片
+                  if(imgsList.length > 0){
+                      renderImgsList(imgsList)
+                  }
+
+              });
+            }
+        });
+
+
+        form.on('submit(component-form-element)', function (data) {
+            if(filesList.length === 0) {
+                layer.msg("请先选择图片!", {icon: 2});
+                return false
+            }
+            var formData = new FormData();
+            formData.append("end", data.field.end);
+            formData.append("notes", data.field.notes);
+            filesList.forEach((item, index)=>{
+                formData.append(`file${index}`, item)
+            });
+            var url = '/agent/agent/' + id + '/';
+            admin.req({
+                url: url
+                , data: formData
+                , contentType: false
+                , processData: false
+                , type: 'post'
+                , done: function (res) {
+                    parent.layui.onSubmitChild(res);
+                }
+            });
+
+            return false;
+        });
+
+        parent.layui.submitChild = function () {
+            $("#id_save").click();
+        };
+    });
+</script>
+</body>
+</html>