diff --git a/app-wx/config/params.php b/app-wx/config/params.php index 7602d2c..a44dba6 100644 --- a/app-wx/config/params.php +++ b/app-wx/config/params.php @@ -1,5 +1,5 @@ 'admin@example.com', - 'VERSION' => 'v0.1.0 build 4', // 当前发布版本号: v0.1.0 是版本号 | build 1 是编译次数 + 'VERSION' => 'v0.1.0 build 5', // 当前发布版本号: v0.1.0 是版本号 | build 1 是编译次数 ]; diff --git a/app-wx/modules/order/controllers/DefaultController.php b/app-wx/modules/order/controllers/DefaultController.php index fce9089..ffdedb0 100644 --- a/app-wx/modules/order/controllers/DefaultController.php +++ b/app-wx/modules/order/controllers/DefaultController.php @@ -42,4 +42,59 @@ class DefaultController extends BaseController $e->success = true; return $this->renderJson($e); } + + /** + * @return string + */ + public function actionOrderList() + { + $e = new stdClass(); + $e->success = false; + $e->page = null; + $e->page_count = null; + $e->items = []; + + $page = $this->request->get('page'); + $status = $this->request->get('status'); + + if (empty($page)) { + $page = 1; + } + $allItemList = [0, 0, 0]; + if ('working' == $status || '' == $status) { + $allItemList = $this->getOrderList($page, 1); + } else { + $allItemList = $this->getOrderList($page, 0); + } + + $e->page_count = $allItemList[1]; + $e->page = $page ; + $e->items = $allItemList[2]; + $e->success = true; + + return $this->renderJson($e); + } + + /** + * @param $page + * @param $status + */ + private function getOrderList($page, $status) + { + $pageSize = 5 ; + $pager_offset = ($page -1) * $pageSize; + $limitPage = $pageSize; + $count = 15; + $items = []; + $pageCount = ceil(($count*1) / $pageSize); + $carModelList = ['宝马X3','宝马X4','宝马X5','宝马X6','奔驰c200l','奔驰E260','奔驰E260','奔驰E300']; + $customerList = ['张先生','李先生','王先生','赵先生','刘先生','宝先生','好先生','费先生']; + for ($i = $pager_offset; $i < ($pager_offset+$limitPage); $i++ ) { + $carModel = $carModelList[mt_rand(0,7)]; + $customer = $customerList[mt_rand(0,7)]; + $items[] = ['id'=> $i ,'carNo' => 'XA'.mt_rand(10000,99999), 'carModel' => $carModel, 'status' => $status, 'customer' => $customer ,'createdTime' => date('Y-m-d H:i')]; + } + + return [$count, $pageCount, $items]; + } } \ No newline at end of file diff --git a/app-wx/modules/order/views/default/index.php b/app-wx/modules/order/views/default/index.php index 579bee1..edbb22e 100644 --- a/app-wx/modules/order/views/default/index.php +++ b/app-wx/modules/order/views/default/index.php @@ -21,7 +21,7 @@ function img($file, $path = '/i/') render('pages/index-template', ['asset' => $asset])?> -render('pages/rank-template', ['asset' => $asset])?> +render('pages/rate-template', ['asset' => $asset])?> render('pages/submit-template', ['asset' => $asset])?> render('pages/cost-list-template', ['asset' => $asset])?> render('pages/repairing-template', ['asset' => $asset])?> diff --git a/app-wx/modules/order/views/default/pages/index-template.php b/app-wx/modules/order/views/default/pages/index-template.php index 6f38635..37cdbf9 100644 --- a/app-wx/modules/order/views/default/pages/index-template.php +++ b/app-wx/modules/order/views/default/pages/index-template.php @@ -10,7 +10,7 @@ $baseUrl = Url::base(true); #index .navbar-cls{height: 46px;} #index .top-tab{width:100%;display:flex;justify-content: center;align-content: center;box-sizing: border-box;background: #FFFFFF;height:2.75rem;} #index .inner-plus {padding:0;background:initial;;box-shadow: 0 1px 2px 0 rgba(179,179,181,0.38);} - #index .top-tab .tab-cls{width:33%;display: inline-grid;text-align:center;color:#A9A9A9;position: relative; font-size: 1.06rem} + #index .top-tab .tab-cls{width:50%;display: inline-grid;text-align:center;color:#A9A9A9;position: relative; font-size: 1.06rem} #index .top-tab .tab-a{font-size: 0.88rem;line-height:0.88rem;padding:0.6875rem 0;box-sizing: border-box;display: flex;flex-direction: row;justify-content: center;font-weight: 400} #index .top-tab .active{color:#FF8728;position:relative; border-bottom: 0.19rem solid #ff8728; padding: 0 0 0.6875rem 0;} #index .tab-b { width: 100%; border-left: 2px solid #E4E7E9; border-right: 2px solid #E4E7E9;} @@ -22,120 +22,66 @@ $baseUrl = Url::base(true); #index .order-list{width:100%;margin-top:0;margin-bottom:5rem} #index .content-time { font-size:0.81rem;font-weight:400;color:rgba(146,146,146,1);line-height:0.75rem;} #index .order-done {font-size:1rem; font-weight:400; color:rgba(193,193,193,1); line-height:0.75rem; float: right} + #index .add-btn-cls{position: absolute;bottom:4rem;right:1rem;width:4rem;border-radius: 2rem;z-index:2} + \ No newline at end of file diff --git a/app-wx/modules/order/views/default/pages/rank-template.php b/app-wx/modules/order/views/default/pages/rank-template.php deleted file mode 100644 index 07f0013..0000000 --- a/app-wx/modules/order/views/default/pages/rank-template.php +++ /dev/null @@ -1,39 +0,0 @@ - - - diff --git a/app-wx/modules/order/views/default/pages/rate-template.php b/app-wx/modules/order/views/default/pages/rate-template.php new file mode 100644 index 0000000..883c002 --- /dev/null +++ b/app-wx/modules/order/views/default/pages/rate-template.php @@ -0,0 +1,39 @@ + + + diff --git a/web/dist/js/order-app.js b/web/dist/js/order-app.js index df76db8..e4a160b 100644 --- a/web/dist/js/order-app.js +++ b/web/dist/js/order-app.js @@ -1 +1 @@ -define("order-app",["mk7/app"],function(t){var n=Dom7,e=function(){var t=n(".ui-loading-block");0==t.length&&(n(".view-main").html('

'),window.waitingTime=1e4,window.loaderTimer&&clearTimeout(window.loaderTimer),window.loaderTimer=setTimeout(function(){var t=document.getElementById("loader-inner"),n=document.createElement("p");n.className="notice",t&&(n.innerHTML='加载速度太慢?试试重新加载',t.appendChild(n))},window.waitingTime))},i=!0;return t.name="order",t.routes={index:function(){return i=!1,e(),t.runController("index")},rank:function(){return i=!1,e(),t.runController("rank")},submit:function(){return i=!1,e(),t.runController("submit")},"*":function(){return t.runController("index")}},t}),define("order/cost-list-controller",["mk7/controller","mk7/url","mk7/utils"],function(t,n,e){var t=(Dom7,Template7,new t);return t.run=function(){var t=this;t.setPageTitle("费用列表"),t.render()},t.bindEvents=function(){console.log("bindEvents")},t}),define("order/index-controller",["mk7/controller","mk7/url","mk7/utils"],function(t,n,e){var t=(Dom7,Template7,new t);return t.run=function(){var t=this;t.setPageTitle("订单列表"),t.hideAllNonBaseMenuItem(window.$site),t.render()},t.bindEvents=function(){console.log("bindEvents")},t}),define("order/rank-controller",["mk7/controller","mk7/url","mk7/utils"],function(t,n,e){var t=(Dom7,Template7,new t);return t.run=function(){var t=this;t.setPageTitle("评价"),t.render()},t.bindEvents=function(){console.log("bindEvents")},t}),define("order/repairing-controller",["mk7/controller","mk7/url","mk7/utils"],function(t,n,e){var t=(Dom7,Template7,new t);return t.run=function(){var t=this;t.setPageTitle("维修单"),t.render()},t.bindEvents=function(){console.log("bindEvents")},t}),define("order/submit-controller",["mk7/controller","mk7/url","mk7/utils","mk7/uploadjs"],function(t,n,e,i){var r=Dom7,t=(Template7,new t),o="/user/default/upload-file",l="/order/default/submit",s=!0;return t.run=function(){var t=this;t.setPageTitle("录入维修单"),t.imgLimit=9,t.render()},t.bindEvents=function(){var t=this;console.log("bindEvents"),t.uploadImgEvent(),t.submitEvent()},t.uploadImgEvent=function(){var t=this;r("#submit #upload-btn").change(function(){if(""!=r(this).val()&&null!=r(this).val()){var l=r(this).parents("li");i.uploadFile({selector:"#upload-btn",url:n.to(o),processAppendTo:"#submit",success:function(n,i){try{if(n.success){var o=n.tmpUrl;r('
  • ').insertBefore(l),t.imgLimit==r("#submit #image-list").find(".up-img").length&&r("#submit .upload-btn-li").hide()}else e.toast({content:n.message,closeDelay:5e3})}catch(s){console.log(s),e.toast({content:"出错",closeDelay:5e3})}}})}}),r("#submit #image-list").on("click",".del-img",function(n){r(this).parent().remove(),t.imgLimit>=r("#submit #image-list").find(".up-img").length&&r("#submit .upload-btn-li").show()})},t.submitEvent=function(){var t=this;r("#submit .submit-btn-cls").click(function(i){var o=e.trim(r("#submit .carNo").val()),a=e.trim(r("#submit .carModel").val()),u=e.trim(r("#submit .customer").val()),c=e.trim(r("#submit .phone").val()),m=e.trim(r("#submit .preRepair").val()),d=e.trim(r("#submit .repairPrice").val()),v=e.trim(r("#submit .finishDate").val());if(0==s)return!1;if(""==o)return e.toast({content:"车牌号必填"}),!1;if(""==a)return e.toast({content:"车辆型号必填"}),!1;if(""==u)return e.toast({content:"客户名称必填"}),!1;if(""==c)return e.toast({content:"客联系电话必填"}),!1;if(!e.isMobile(c)&&!uitls.isTelephone(c))return e.toast({content:"客联系电话有误"}),!1;if(""==m)return e.toast({content:"预估维修内容必填"}),!1;if(""==d)return e.toast({content:"预估维修费用必填"}),!1;if(""==v)return e.toast({content:"预估完成时间必填"}),!1;var f=t.getUploadImgs();if(0==f.length)return e.toast({content:"请上传图片"}),!1;s=!1;var p=t.csrf({carNo:o,carModel:a,customer:u,phone:c,preRepair:m,repairPrice:d,finishDate:v,images:f});e.httpPost(l,p,function(t){return s=!0,t.success?void(window.location.href=n.to("/")):(e.toast({content:message}),!1)},!0)})},t.getUploadImgs=function(){var t=r("#submit #image-list").find(".up-img"),n=[];return 0==t.length?[]:(r.each(t,function(t,e){var i=r(e).find(".upload-item");n.push(i.attr("data"))}),n)},t}); \ No newline at end of file +define("order-app",["mk7/app"],function(t){var n=Dom7,e=function(){var t=n(".ui-loading-block");0==t.length&&(n(".view-main").html('

    '),window.waitingTime=1e4,window.loaderTimer&&clearTimeout(window.loaderTimer),window.loaderTimer=setTimeout(function(){var t=document.getElementById("loader-inner"),n=document.createElement("p");n.className="notice",t&&(n.innerHTML='加载速度太慢?试试重新加载',t.appendChild(n))},window.waitingTime))},i=!0;return t.name="order",t.routes={index:function(){return i=!1,e(),t.runController("index")},"index/:tab":function(n){i=!1,e();var r={tab:n};return t.runController("index",r)},rate:function(){return i=!1,e(),t.runController("rate")},submit:function(){return i=!1,e(),t.runController("submit")},"*":function(){return t.runController("index")}},t}),define("order/cost-list-controller",["mk7/controller","mk7/url","mk7/utils"],function(t,n,e){var t=(Dom7,Template7,new t);return t.run=function(){var t=this;t.setPageTitle("费用列表"),t.render()},t.bindEvents=function(){console.log("bindEvents")},t}),define("order/index-controller",["mk7/controller","mk7/url","mk7/utils"],function(t,n,e){var i=Dom7,r=Template7,t=new t,o="order/default/order-list";return t.run=function(){var t=this;t.setPageTitle("订单列表"),t.tab=t.params.tab,t.page=0,t.nodata="",t.loading=!1,t.pageCount=1,t.render({tab:t.tab}),t.loadPage()},t.bindEvents=function(){var t=this;console.log("bindEvents"),t.tabEvent(),t.bindScrollEvent(),t.addEvent()},t.tabEvent=function(){i(".tab-cls").click(function(t){var n=i(this).attr("data-href");window.location.replace(n)})},t.handleNodata=function(){var t=this;t.nodata="没有数据了";var n=i(".nodata");0==n.length&&i("#index .order-list").append('
    '+t.nodata+"
    "),t.app.detachInfiniteScroll(".infinite-scroll"),i("#index .infinite-scroll-preloader").remove()},t.loadPage=function(){var t=this;if(t.loading=!0,t.page>=t.pageCount)return void t.handleNodata();var r={status:t.tab};r.page=t.page+1,r=t.csrf(r),i.ajax({method:"GET",url:n.to(o),data:r,dataType:"json",beforeSend:function(){t.showIndicator()},success:function(n){1==n.success&&(e.isDefined(n.page)&&(t.page=parseInt(n.page)),e.isDefined(n.page_count)&&(t.pageCount=parseInt(n.page_count)),t.renderItems(n.items,!0))},error:function(t){},complete:function(n){t.hideIndicator(),t.loading=!1}})},t.bindScrollEvent=function(){var t=this;t.app.attachInfiniteScroll("#index .infinite-scroll"),i("#index .infinite-scroll").on("infinite",function(){t.loading||t.nodata||t.loadPage()})},t.renderItems=function(t,n){var e=i("#index .order-list"),o=i("script#order-item-template"),a=r.compile(o.html()),l=a({list:t});0==n&&(e.html(""),e.append(l)),e.append(l)},t.addEvent=function(){i("#index .add-btn-cls").click(function(t){window.location.href=n.to("order/#submit")})},t}),define("order/rate-controller",["mk7/controller","mk7/url","mk7/utils"],function(t,n,e){var t=(Dom7,Template7,new t);return t.run=function(){var t=this;t.setPageTitle("评价"),t.render()},t.bindEvents=function(){console.log("bindEvents")},t}),define("order/repairing-controller",["mk7/controller","mk7/url","mk7/utils"],function(t,n,e){var t=(Dom7,Template7,new t);return t.run=function(){var t=this;t.setPageTitle("维修单"),t.render()},t.bindEvents=function(){console.log("bindEvents")},t}),define("order/submit-controller",["mk7/controller","mk7/url","mk7/utils","mk7/uploadjs"],function(t,n,e,i){var r=Dom7,t=(Template7,new t),o="/user/default/upload-file",a="/order/default/submit",l=!0;return t.run=function(){var t=this;t.setPageTitle("录入维修单"),t.imgLimit=9,t.render()},t.bindEvents=function(){var t=this;console.log("bindEvents"),t.uploadImgEvent(),t.submitEvent()},t.uploadImgEvent=function(){var t=this;r("#submit #upload-btn").change(function(){if(""!=r(this).val()&&null!=r(this).val()){var a=r(this).parents("li");i.uploadFile({selector:"#upload-btn",url:n.to(o),processAppendTo:"#submit",success:function(n,i){try{if(n.success){var o=n.tmpUrl;r('
  • ').insertBefore(a),t.imgLimit==r("#submit #image-list").find(".up-img").length&&r("#submit .upload-btn-li").hide()}else e.toast({content:n.message,closeDelay:5e3})}catch(l){console.log(l),e.toast({content:"出错",closeDelay:5e3})}}})}}),r("#submit #image-list").on("click",".del-img",function(n){r(this).parent().remove(),t.imgLimit>=r("#submit #image-list").find(".up-img").length&&r("#submit .upload-btn-li").show()})},t.submitEvent=function(){var t=this;r("#submit .submit-btn-cls").click(function(i){var o=e.trim(r("#submit .carNo").val()),s=e.trim(r("#submit .carModel").val()),u=e.trim(r("#submit .customer").val()),d=e.trim(r("#submit .phone").val()),c=e.trim(r("#submit .preRepair").val()),m=e.trim(r("#submit .repairPrice").val()),f=e.trim(r("#submit .finishDate").val());if(0==l)return!1;if(""==o)return e.toast({content:"车牌号必填"}),!1;if(""==s)return e.toast({content:"车辆型号必填"}),!1;if(""==u)return e.toast({content:"客户名称必填"}),!1;if(""==d)return e.toast({content:"客联系电话必填"}),!1;if(!e.isMobile(d)&&!uitls.isTelephone(d))return e.toast({content:"客联系电话有误"}),!1;if(""==c)return e.toast({content:"预估维修内容必填"}),!1;if(""==m)return e.toast({content:"预估维修费用必填"}),!1;if(""==f)return e.toast({content:"预估完成时间必填"}),!1;var p=t.getUploadImgs();if(0==p.length)return e.toast({content:"请上传车损照"}),!1;l=!1;var v=t.csrf({carNo:o,carModel:s,customer:u,phone:d,preRepair:c,repairPrice:m,finishDate:f,images:p});e.httpPost(a,v,function(t){return l=!0,t.success?void(window.location.href=n.to("/")):(e.toast({content:message}),!1)},!0)})},t.getUploadImgs=function(){var t=r("#submit #image-list").find(".up-img"),n=[];return 0==t.length?[]:(r.each(t,function(t,e){var i=r(e).find(".upload-item");n.push(i.attr("data"))}),n)},t}); \ No newline at end of file diff --git a/web/i/order/rank/rank_no_select.png b/web/i/order/rank/rank_no_select.png deleted file mode 100644 index 9fea2be..0000000 Binary files a/web/i/order/rank/rank_no_select.png and /dev/null differ diff --git a/web/i/order/rank/rank_star.png b/web/i/order/rank/rank_star.png deleted file mode 100644 index 5aacced..0000000 Binary files a/web/i/order/rank/rank_star.png and /dev/null differ diff --git a/web/i/order/rate/rate_no_select.png b/web/i/order/rate/rate_no_select.png new file mode 100644 index 0000000..9fea2be Binary files /dev/null and b/web/i/order/rate/rate_no_select.png differ diff --git a/web/i/order/rate/rate_star.png b/web/i/order/rate/rate_star.png new file mode 100644 index 0000000..5aacced Binary files /dev/null and b/web/i/order/rate/rate_star.png differ diff --git a/web/src/js/order/app.js b/web/src/js/order/app.js index 1c1dfec..41514ca 100644 --- a/web/src/js/order/app.js +++ b/web/src/js/order/app.js @@ -39,10 +39,18 @@ define( _autoLoading(); return app.runController('index'); }, - 'rank': function () { + 'index/:tab': function (tab) { fromOutside = false; _autoLoading(); - return app.runController('rank'); + var params = { + tab:tab + } + return app.runController('index',params); + }, + 'rate': function () { + fromOutside = false; + _autoLoading(); + return app.runController('rate'); }, 'submit': function () { fromOutside = false; diff --git a/web/src/js/order/index-controller.js b/web/src/js/order/index-controller.js index b6d29e5..815507b 100644 --- a/web/src/js/order/index-controller.js +++ b/web/src/js/order/index-controller.js @@ -15,22 +15,115 @@ define( var t7 = Template7; var ctrl = new ctrl(); - + var pageURL = 'order/default/order-list'; ctrl.run = function () { var me = this; me.setPageTitle("订单列表"); - me.hideAllNonBaseMenuItem(window.$site); - - me.render(); - + me.tab = me.params.tab; + me.page = 0; + me.nodata = ''; + me.loading = false; + me.pageCount = 1; + me.render({tab:me.tab}); + me.loadPage() } ctrl.bindEvents = function () { var me = this; console.log("bindEvents"); + me.tabEvent(); + me.bindScrollEvent(); + me.addEvent(); + } + ctrl.tabEvent = function() { + $$('.tab-cls').click(function(e) { + var url = $$(this).attr('data-href'); + window.location.replace(url); + }) } + ctrl.handleNodata = function(){ + var me = this; + me.nodata = '没有数据了'; + var e = $$('.nodata'); + if(0 == e.length){ + $$('#index .order-list').append('
    '+me.nodata+'
    '); + } + me.app.detachInfiniteScroll('.infinite-scroll'); + $$('#index .infinite-scroll-preloader').remove(); + return; + } + ctrl.loadPage = function () { + var me = this; + me.loading = true; + if (me.page >= me.pageCount){ + me.handleNodata(); + return ; + } + var data = {status:me.tab} + data.page = me.page + 1; + data = me.csrf(data); + $$.ajax({ + method : "GET", + url: url.to(pageURL), + data : data, + dataType : "json", + beforeSend : function(){ + me.showIndicator(); + }, + success : function(e){ + if(true == e.success){ + if(utils.isDefined(e.page)){ + me.page = parseInt(e.page); + } + if(utils.isDefined(e.page_count)){ + me.pageCount = parseInt(e.page_count); + } + me.renderItems(e.items, true); + } + }, + error : function(e){}, + complete : function(e){ + me.hideIndicator(); + me.loading = false; + }, + }); + } + ctrl.bindScrollEvent = function() { + var me = this; + me.app.attachInfiniteScroll('#index .infinite-scroll'); + $$('#index .infinite-scroll').on('infinite', function () { + // 如果正在加载,则退出 + //console.log(me.loading); + if (me.loading) { + return; + } + if (me.nodata) { + + return; + } + me.loadPage(); + }); + } + ctrl.renderItems = function(items, append){ + var me = this; + var list = $$('#index .order-list'); + var ele = $$('script#order-item-template'); + var compiled = t7.compile(ele.html()); + + var doms = compiled({'list':items}); + if( false == append){//填充还是重置数据 + list.html(''); + list.append(doms); + } + list.append(doms); + } + ctrl.addEvent = function() { + $$('#index .add-btn-cls').click(function(e) { + window.location.href = url.to('order/#submit'); + }) + } return ctrl; } ); diff --git a/web/src/js/order/rank-controller.js b/web/src/js/order/rank-controller.js deleted file mode 100644 index 8eb9b64..0000000 --- a/web/src/js/order/rank-controller.js +++ /dev/null @@ -1,30 +0,0 @@ -/** - * 订单评价-首页 - */ -define( - "order/rank-controller", - [ - 'mk7/controller', - 'mk7/url', - 'mk7/utils', - ], - - function(ctrl, url, utils) { - - var $$ = Dom7; - var t7 = Template7; - var ctrl = new ctrl(); - - ctrl.run = function () { - var me = this; - me.setPageTitle("评价"); - me.render(); - } - ctrl.bindEvents = function () { - var me = this; - console.log("bindEvents"); - } - - return ctrl; - } -); diff --git a/web/src/js/order/rate-controller.js b/web/src/js/order/rate-controller.js new file mode 100644 index 0000000..eafd08a --- /dev/null +++ b/web/src/js/order/rate-controller.js @@ -0,0 +1,30 @@ +/** + * 订单评价-首页 + */ +define( + "order/rate-controller", + [ + 'mk7/controller', + 'mk7/url', + 'mk7/utils', + ], + + function(ctrl, url, utils) { + + var $$ = Dom7; + var t7 = Template7; + var ctrl = new ctrl(); + + ctrl.run = function () { + var me = this; + me.setPageTitle("评价"); + me.render(); + } + ctrl.bindEvents = function () { + var me = this; + console.log("bindEvents"); + } + + return ctrl; + } +); -- libgit2 0.21.0