backlog.js 21.6 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409
var contracttotal=0,receivablestotal=0,invoicetotal=0;
define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {

    var Controller = {
        index: function () {
            // 初始化表格参数配置
            Table.api.init({
                extend: {
                    index_url: 'facrm/backlog/index',
                    add_url: '',
                    edit_url: '',
                    del_url: '',
                    multi_url: '',
                    table: '',
                }
            });
            //合同
            var table = $("#contract");
            //在普通搜索渲染后
            table.on('post-common-search.bs.table', function (event, table) {
                
            });
            // 初始化表格
            table.bootstrapTable({
                url: $.fn.bootstrapTable.defaults.extend.index_url+"/types/contract",
                pk: 'id',
                sortName: 'id',
				toolbar: '#toolbar1',
                columns: [
                    [
                        {field: 'id', title: 'ID'},
                        {field: 'number', title: __('合同编号'), operate: "LIKE",  align: 'left', formatter : function (value, row, index) {
                            return '<a href="javascript:void(0);" data-url="facrm/contract/index/detail/ids/' + row.id
                                +'" data-area="[&quot;98%&quot;,&quot;98%&quot;]" class="btn-dialog" data-title="'+ value+'">'+ value+'</a>';
                        }},
                        {field: 'name', title: __('合同名称'), operate: "LIKE"},
                        {field: 'customer_id', title: __('客户名称'),  align: 'left', formatter : function (value, row, index) {
                                if (!row.customer) return '-';
                                return '<a href="javascript:void(0);" data-url="facrm/customer/index/detail/ids/' + row.customer.id
                                    +'" data-area="[&quot;98%&quot;,&quot;98%&quot;]" class="btn-dialog" data-title="'+ row.customer.name+'">'+ row.customer.name+'('+row.customer_id+')'+'</a>';
                            },addclass: 'selectpage',
                            extend: 'data-source="facrm/customer/index?filter=%7B\"scene_id\"%3A\"1\"%7D" data-field="name" data-orderBy="id desc"'},
                        {field: 'money', title: __('合同金额'), operate: 'BETWEEN', sortable: true},
                        {field: 'total_price', title: __('产品价格'), operate: 'BETWEEN', sortable: true},

                        {field: 'remark', title: __('备注'), operate: 'LIKE'},
                        {
                            field: 'start_time',
                            title: __('开始时间'),
                            formatter: Table.api.formatter.datetime,
                            operate: 'RANGE',
                            addclass: 'datetimerange',
                            sortable: true,
							extend: 'autocomplete="off"'
                        },
                        {
                            field: 'end_time',
                            title: __('结束时间'),
                            formatter: Table.api.formatter.datetime,
                            operate: 'RANGE',
                            addclass: 'datetimerange',
                            sortable: true,
							extend: 'autocomplete="off"'
                        },
                        {field: 'create_user.nickname', title: __('创建人'), operate: false, search: false},
                        {field: 'create_user_id', title: __('创建人'), visible: false,addclass: 'selectpage',
							extend: 'data-source="facrm/common/selectpage/model/admin?type=all" data-field="nickname" data-orderBy="id desc"'},
                        {field: 'order_admin.nickname', title: __('签约人'), operate: false, search: false},
                        {field: 'order_admin_id', title: __('签约人'), visible: false,addclass: 'selectpage',
							extend: 'data-source="facrm/common/selectpage/model/admin?type=all" data-field="nickname" data-orderBy="id desc"'},
                        {
                            field: 'create_time',
                            title: __('创建时间'),
                            formatter: Table.api.formatter.datetime,
                            operate: 'RANGE',
                            addclass: 'datetimerange',
                            sortable: true,
							extend: 'autocomplete="off"'
                        },
                        {
                            field: 'check_status',
                            title: __('Status'),
                            formatter: Table.api.formatter.status,
                            searchList: {0: __('待审核'), 1: __('审核中'), 2: __('审核通过'),3: __('审核未通过')}
                        },
                        {
                            field: 'operate',
                            title: __('Operate'),
                            table: table,
                            events: Table.api.events.operate,
                            buttons: [
                                {
                                    name: 'verify',
                                    text: '审核',
                                    title: '合同审核',
                                    icon: 'fa fa-pencil',
                                    classname: 'btn btn-xs btn-success  btn-dialog',
                                    url: 'facrm/backlog/verify/types/contract',

                                },
                            ],
                            formatter: Table.api.formatter.operate,
                        }

                    ]
                ],
                onLoadSuccess: function (data) {
                    contracttotal=data.total;
                    Controller.api.sidebar(".contract",data.total);
                },
                //启用固定列
                fixedColumns: true,
                //固定右侧列数
                fixedRightNumber: 1,
            });
            // 为表格绑定事件
            Table.api.bindevent(table);

            //回款
            var receivables  = $("#receivables");
            receivables.bootstrapTable({
                url: $.fn.bootstrapTable.defaults.extend.index_url+"/types/receivables",
                pk: 'id',
                sortName: 'id',
                toolbar: '#toolbar2',
                queryParams: function (params) {
                    return params
                },
                columns: [
                    [
                        {field: 'id', title: 'ID'},
                        {field: 'number', title: __('回款编号'), operate: "LIKE",  align: 'left', formatter : function (value, row, index) {
                                return '<a href="javascript:void(0);" data-url="facrm/contract/receivables/detail/ids/' + row.id
                                    +'" data-area="[&quot;98%&quot;,&quot;98%&quot;]" class="btn-dialog" data-title="详情:'+ value+'">'+ value+'</a>';
                            }},
						{field: 'money', title: __('回款金额'), operate: 'BETWEEN', sortable: true},
                        {field: 'contract.number', title: __('合同编号'), operate: "LIKE",  align: 'left', formatter : function (value, row, index) {
                                if (!row.contract) return '-';
                                return '<a href="javascript:void(0);" data-url="facrm/contract/index/detail/ids/' + row.contract_id
                                    +'" data-area="[&quot;98%&quot;,&quot;98%&quot;]" class="btn-dialog" data-title="'+ row.contract.name+value+'">'+ value+'</a>';
                            }},

                        {field: 'contract.name', title: __('合同名称'),  align: 'left', formatter : function (value, row, index) {
                                if (!row.contract) return '-';
                                return '<a href="javascript:void(0);" data-url="facrm/contract/index/detail/ids/' + row.contract_id
                                    +'" data-area="[&quot;98%&quot;,&quot;98%&quot;]" class="btn-dialog" data-title="合同详情:'+  row.contract.name+'">'+ row.contract.name+'</a>';
                            }},




                        {field: 'customer_id', title: __('客户名称'),  align: 'left', formatter : function (value, row, index) {
                                if (!row.customer) return '-';
                                return '<a href="javascript:void(0);" data-url="facrm/customer/index/detail/ids/' + row.customer.id
                                    +'" data-area="[&quot;98%&quot;,&quot;98%&quot;]" class="btn-dialog" data-title="'+ row.customer.name+'">'+ row.customer.name+'('+row.customer_id+')'+'</a>';
                            },addclass: 'selectpage',
                            extend: 'data-source="facrm/customer/index?filter=%7B\"scene_id\"%3A\"1\"%7D" data-field="name" data-orderBy="id desc"'},

                       
                        {field: 'contract.money', title: __('合同金额'), operate: false},

                        {field: 'remark', title: __('备注'), operate: 'LIKE'},
      
                        {field: 'create_user.nickname', title: __('创建人'), operate: false, search: false},
                        {field: 'create_user_id', title: __('创建人'), visible: false,addclass: 'selectpage',
							extend: 'data-source="facrm/common/selectpage/model/admin?type=all" data-field="nickname" data-orderBy="id desc"'},
                        {field: 'order_admin.nickname', title: __('签约人'), operate: false, search: false},
                        {field: 'order_admin_id', title: __('签约人'), visible: false,addclass: 'selectpage',
							extend: 'data-source="facrm/common/selectpage/model/admin?type=all" data-field="nickname" data-orderBy="id desc"'},
                        {
                            field: 'create_time',
                            title: __('创建时间'),
                            formatter: Table.api.formatter.datetime,
                            operate: 'RANGE',
                            addclass: 'datetimerange',
                            sortable: true,
							extend: 'autocomplete="off"'
                        },
                        {
                            field: 'check_status',
                            title: __('Status'),
                            formatter: Table.api.formatter.status,
                            searchList: {0: __('待审核'), 1: __('审核中'), 2: __('审核通过'),3: __('审核未通过')}
                        },
                        {
                            field: 'operate',
                            title: __('Operate'),
                            table: receivables,
                            events: Table.api.events.operate,
                            buttons: [
                                {
                                    name: 'verify',
                                    text: '审核',
                                    title: '回款审核',
                                    icon: 'fa fa-pencil',
                                    classname: 'btn btn-xs btn-success  btn-dialog',
                                    url: 'facrm/backlog/verify/types/receivables',

                                },
                            ],
                            formatter: Table.api.formatter.operate,
                        }
                    ]
                ],
                onLoadSuccess: function (data) {
                    receivablestotal=data.total;
                    Controller.api.sidebar(".receivables",data.total);
                },
                //启用固定列
                fixedColumns: true,
                //固定右侧列数
                fixedRightNumber: 1,
            });
            // 初始化表格
            Table.api.bindevent(receivables);//当内容渲染完成后
			
			
			//发票
            var invoice  = $("#invoice");
            invoice.bootstrapTable({
                url: $.fn.bootstrapTable.defaults.extend.index_url+"/types/invoice",
                pk: 'id',
                sortName: 'id',
                toolbar: '#toolbar3',
                queryParams: function (params) {
                    return params
                },
                columns: [
                    [
                        {field: 'id', title: 'ID'},
                        {field: 'contract_id', title: __('合同编号'),  align: 'left', formatter : function (value, row, index) {
                                if (!row.contract) return '-';
                                return '<a href="javascript:void(0);" data-url="facrm/contract/index/detail/ids/' + row.contract_id
                                    +'" data-area="[&quot;98%&quot;,&quot;98%&quot;]" class="btn-dialog" data-title="合同详情:'+  row.contract.number+'">'+ row.contract.number+'</a>';
                            },
                            addclass: 'selectpage',
                            extend: 'data-source="facrm/contract/index/selectpage" data-field="name"'},
                        {field: 'contract.name', title: __('合同名称'),  align: 'left', formatter : function (value, row, index) {
                                if (!row.contract) return '-';
                                return '<a href="javascript:void(0);" data-url="facrm/contract/index/detail/ids/' + row.contract_id
                                    +'" data-area="[&quot;98%&quot;,&quot;98%&quot;]" class="btn-dialog" data-title="合同详情:'+  row.contract.name+'">'+ row.contract.name+'</a>';
                            }},

                        {field: 'customer_id', title: __('客户名称'),  align: 'left', formatter : function (value, row, index) {
                                if (!row.customer) return '-';
                                return '<a href="javascript:void(0);" data-url="facrm/customer/index/detail/ids/' + row.customer.id
                                    +'" data-area="[&quot;98%&quot;,&quot;98%&quot;]" class="btn-dialog" data-title="'+ row.customer.name+'">'+ row.customer.name+'('+row.customer_id+')'+'</a>';
                            },addclass: 'selectpage',
                            extend: 'data-source="facrm/customer/index?filter=%7B\"scene_id\"%3A\"1\"%7D" data-field="name" data-orderBy="id desc"'},

                        {field: 'money', title: __('发票金额'), operate: 'BETWEEN', sortable: true},
                        {field: 'invoice_body', title: __('开票主体'), operate: 'LIKE'},
                        {field: 'invoice_name', title: __('发票抬头'), operate: 'LIKE'},
                        {field: 'invoice_issue', title: __('抬头类型'),  formatter: Table.api.formatter.status, searchList: {1: __('企业'), 2: __('个人'), 3: __('事业单位')}},
                        {field: 'invoice_type', title: __('发票类型'),  formatter: Table.api.formatter.status, searchList: {1: __('增普'), 2: __('增专')}},
                        {field: 'register_no', title: __('统一社会信用代码'), operate: 'LIKE'},
                        {field: 'email', title: __('接收邮箱'), operate: 'LIKE'},
                        {field: 'user_name', title: __('收件人'), operate: 'LIKE'},
                        {field: 'user_phone', title: __('收件手机'), operate: 'LIKE'},
                        {field: 'user_address', title: __('邮寄地址'), operate: 'LIKE'},
                        {field: 'remarks', title: __('备注'), operate: 'LIKE'},

                        {field: 'create_user.nickname', title: __('创建人'), operate: false, search: false,
                            addclass: 'selectpage',
                            extend: 'data-source="facrm/common/selectpage/model/admin?type=all" data-field="nickname" data-orderBy="id desc"'},
                        {field: 'create_user_id', title: __('创建人'), visible: false,
                            addclass: 'selectpage',
                            extend: 'data-source="facrm/common/selectpage/model/admin?type=all" data-field="nickname" data-orderBy="id desc"'},
                        {
                            field: 'create_time',
                            title: __('创建时间'),
                            formatter: Table.api.formatter.datetime,
                            operate: 'RANGE',
                            addclass: 'datetimerange',
                            sortable: true,
                            extend: 'autocomplete="off"'

                        },

                        {
                            field: 'check_status',
                            title: __('审核状态'),
                            formatter: function (value, row, index) {
                                var check_status={0: __('待审核'), 1: __('审核中'), 2: __('审核通过'),3: __('审核未通过')};
                                var status={0:'未开票',1:'开票中',2:'已开票',3:'开票失败'};
                                retrunstr='';
                                if(row['check_status']==2){
                                    retrunstr='(在线'+status[row['status']]+')';
                                }
                                return check_status[row['check_status']]+retrunstr;
                            },
                            searchList: {0: __('待审核'), 1: __('审核中'), 2: __('审核通过'),3: __('审核未通过')}
                        },
                        {
                            field: 'status',
                            title: __('Status'),
                            visible: false,
                            searchList: {0:'未开票',1:'开票中',2:'已开票',3:'开票失败'}
                        },
                        {
                            field: 'operate',
                            title: __('Operate'),
                            table: invoice,
                            events: Table.api.events.operate,
                            buttons: [
                                {
                                    name: 'verify',
                                    text: '审核',
                                    title: '回款审核',
                                    icon: 'fa fa-pencil',
                                    classname: 'btn btn-xs btn-success  btn-dialog',
                                    url: 'facrm/backlog/verify/types/invoice',

                                },
                            ],
                            formatter: Table.api.formatter.operate,
                        }
                    ]
                ],
                onLoadSuccess: function (data) {
                    invoicetotal=data.total;
                    Controller.api.sidebar(".invoice",data.total);
                },
                //启用固定列
                fixedColumns: true,
                //固定右侧列数
                fixedRightNumber: 1,
            });
            // 初始化表格
            Table.api.bindevent(invoice);//当内容渲染完成后


        },
        add: function () {
            Controller.api.bindevent();
        },
        verify: function () {
            Controller.api.bindevent();

            $('#modelProduct').on('show.bs.modal', function (e) {
                var btn = $(e.relatedTarget)
            });
            //驳回
            $(document).on('click', ".btn-reject", function () {
                var that = this;
                Layer.prompt({title: __("输入驳回理由"), formType: 2}, function(text, index){
                    Fast.api.ajax({
                    url:'facrm/backlog/verify/ids/'+ids+"/types/"+types,
                    data:{type:'reject',ids:ids,remark:text}
                    }
                    , function () {
                            parent.$(".btn-refresh").trigger("click");
                            parent.Layer.closeAll();
                    }, function () {
                        alert(__("提交错误"));
                    });
                });
            });
            $(document).on('click', ".btn-success", function () {
                var that = this;
                var next_admin_id=$("#c-next_admin_id").val();
                Layer.confirm(
                    __('您确定要审批通过嘛?'),
                    {icon: 3, title: __('Warning'), shadeClose: true},
                    function (index) {
                        Fast.api.ajax({
                                url:'facrm/backlog/verify/ids/'+ids+"/types/"+types,
                                data:{type:'',ids:ids,next_admin_id:next_admin_id}
                            }
                            , function () {
                                parent.$(".btn-refresh").trigger("click");
                                parent.Layer.closeAll();
                            }, function () {

                            });

                    }
                );

            });
            Fast.api.ajax({
                type: 'GET',
                url: 'facrm/fields/get_fields_html',
                data: {source: types=="receivables"?'contract_receivables':types, 'id': ids}
            }, function (data) {
                $("#extend").html(data.html);
                Form.api.bindevent($("#extend"));
                return false;
            },function () {
                return false;
            });

        },
        
        api: {
            bindevent: function () {
                Form.api.bindevent($("form[role=form]"));
            },
            sidebar:function (type,total) {
                Backend.api.sidebar({
                    'facrm/backlog': receivablestotal+contracttotal+invoicetotal
                });
                $('.nav-tabs '+type+" small").html(total==0?'':total);
            }

        }
    };
    return Controller;
});