|
@ -0,0 +1,30 @@
|
|||
test.php
|
||||
/backstage/uploadfiles/
|
||||
/backstage/outputExcel/
|
||||
/backstage/application/logs/
|
||||
/backstage/application/logs/api/logs/
|
||||
/backstage/application/backstage/logs/
|
||||
/backstage/application/api/logs/
|
||||
/m/img/
|
||||
/m2/
|
||||
/touch/*.ttf
|
||||
/touch/*.eot
|
||||
/touch/*.woff
|
||||
/touch/*.svg
|
||||
/touch2/
|
||||
/show/run/
|
||||
/show/wap/
|
||||
/show/images/thumb/
|
||||
/.idea
|
||||
*.xls
|
||||
*.xlsx
|
||||
*.doc
|
||||
*.docx
|
||||
*.bat
|
||||
web.config
|
||||
android_yzf_update.php
|
||||
*.apk
|
||||
# 验证码图片
|
||||
/backstage/captcha
|
||||
|
||||
.htaccess
|
|
@ -0,0 +1,201 @@
|
|||
<div class="modal-dialog modal-primary modal-lg">
|
||||
<div class="modal-content">
|
||||
<form id="submitForm">
|
||||
<div class="modal-header">
|
||||
<button aria-label="Close" data-dismiss="modal" class="close" type="button"><span aria-hidden="true">×</span></button>
|
||||
<h4 class="modal-title">添加菜谱类型</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div id="alert"></div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="box box-solid bg-teal-gradient">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">菜谱信息录入</h3>
|
||||
<div class="box-tools pull-right">
|
||||
<button class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
|
||||
</div>
|
||||
</div><!-- /.box-header -->
|
||||
<div class="box-body">
|
||||
<div class="row col-md-12">
|
||||
<div class="box-body">
|
||||
<div class="row margin-bottom">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2">类型名称</label>
|
||||
<div class="col-md-10">
|
||||
<div class="col-md-12">
|
||||
<input name="name" type="text" class="form-control" value="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row margin-bottom">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2">类型</label>
|
||||
<div class="col-md-10">
|
||||
<div class="col-md-12">
|
||||
<select name="mealtype" class="form-control select2">
|
||||
<option value="1">堂食</option>
|
||||
<option value="2">外带</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row margin-bottom">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2">取餐开始时间</label>
|
||||
<div class="col-md-10">
|
||||
<div class="col-md-6">
|
||||
<div class="input-group">
|
||||
<input name="start_time" class="form-control form-date form-date-hour" value="00:00" readonly type="text">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row margin-bottom">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2">取餐结束时间</label>
|
||||
<div class="col-md-10">
|
||||
<div class="col-md-3">
|
||||
<select name="end_time_type" class="form-control">
|
||||
<option value="1">当天</option>
|
||||
<option value="2">第二天</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="input-group">
|
||||
<input name="end_time" class="form-control form-date form-date-hour" value="23:00" readonly type="text">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row margin-bottom">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<?foreach($userTypeTimeList as $k => $v) {?>
|
||||
<?
|
||||
$endTimeType = 1;
|
||||
$arr = explode(':',$v['user_end_time']);
|
||||
if(intval($arr[0]) > 24){
|
||||
$endTimeType = 2;
|
||||
$arr = explode(':',$v['user_end_time']);
|
||||
$hour = $arr[0];
|
||||
$minute = $arr[1];
|
||||
$hour = intval($hour) - 24;
|
||||
$v['user_end_time'] = "{$hour}:{$minute}";
|
||||
}
|
||||
?>
|
||||
<label class="control-label col-md-2"><?=$v['user_type_name']?>取餐时间限制</label>
|
||||
<div class="col-md-10 no-margin form-group ">
|
||||
<div class="col-md-3">
|
||||
开始 <input name="start_time_<?=$v['id']?>" class="form-control form-date form-date-hour" readonly type="text" value="<?=$v['user_start_time']?>">
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
结束
|
||||
<select name="end_time_type_<?=$v['id']?>" class="form-control">
|
||||
<option value="1" <?=($endTimeType==1)?"selected":""?>>当天</option>
|
||||
<option value="2" <?=($endTimeType==2)?"selected":""?>>第二天</option>
|
||||
</select>
|
||||
<input name="end_time_<?=$v['id']?>" class="form-control form-date form-date-hour" readonly type="text" value="<?=$v['user_end_time']?>">
|
||||
</div>
|
||||
</div>
|
||||
<?}?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row margin-bottom">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2">开放用户类型</label>
|
||||
<div class="col-md-10 no-margin form-group ">
|
||||
<?php foreach($userTypeList as $type):?>
|
||||
<div class="col-md-3">
|
||||
<input name="user_type_ids[]" type="checkbox" value="<?=$type['id']?>" checked> <?=$type['name']?>
|
||||
</div>
|
||||
<?php endforeach;?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row margin-bottom">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2">开放食堂</label>
|
||||
<div class="col-md-10 no-margin form-group ">
|
||||
<?php foreach($hallList as $hall):?>
|
||||
<div class="col-md-3">
|
||||
<input name="dining_hall_ids[]" type="checkbox" value="<?=$hall['id']?>" checked> <?=$hall['name']?>
|
||||
</div>
|
||||
<?php endforeach;?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- /.box-body -->
|
||||
</div><!-- /.row -->
|
||||
</div><!-- ./box-body -->
|
||||
</div><!-- /.box -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button data-dismiss="modal" class="btn btn-default" type="button">关闭</button>
|
||||
<button id="submitBtn" type="submit" name="doSubmit" class="btn btn-primary">确认</button>
|
||||
</div>
|
||||
</form>
|
||||
</div><!-- /.modal-content -->
|
||||
</div>
|
||||
<script>
|
||||
$(function () {
|
||||
$(".form-date-hour").datetimepicker({
|
||||
language: "zh-CN",
|
||||
weekStart: 1,
|
||||
todayBtn: 1,
|
||||
autoclose: 1,
|
||||
todayHighlight: 1,
|
||||
startView: 1,
|
||||
minView: 0,
|
||||
maxView: 1,
|
||||
forceParse: 0,
|
||||
format: 'hh:ii:00'
|
||||
});
|
||||
|
||||
var submitForm = $('#submitForm');
|
||||
var validator = submitForm.validate({
|
||||
rules: {
|
||||
name: {
|
||||
required: true
|
||||
},
|
||||
start_time: {
|
||||
required: true
|
||||
},
|
||||
end_time: {
|
||||
required: true
|
||||
}
|
||||
},
|
||||
submitHandler: function (form) {
|
||||
cancelClick("submitBtn");
|
||||
submitForm.ajaxSubmit({
|
||||
url: "<?=site_url('meal/add')?>",
|
||||
type: 'post',
|
||||
success: function(data){
|
||||
var data = JSON.parse(data);
|
||||
$.zui.messager.show(data.msg);
|
||||
if(data.success)getListByPage(1);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1 @@
|
|||
body,html{width:100%;height:100%}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#2c3e50;height:100%}
|
|
@ -0,0 +1 @@
|
|||
table[data-v-01053884]{margin:0 auto;width:85%;font-size:2.8rem}.take-result-head[data-v-025465d3]{display:flex;position:relative;padding:0 4rem 1rem 4rem}.take-result-head .take-result-head-img[data-v-025465d3]{height:10rem}.take-result-head .take-result-head-img img[data-v-025465d3]{max-height:100%}.take-result-user-info[data-v-025465d3]{display:flex;align-items:flex-end;margin-left:2rem}.take-result-table table{width:100%}.pay-result[data-v-b5cfdd84]{display:flex}.pay-result-img[data-v-b5cfdd84]{height:100%;width:30rem}.pay-result-img img[data-v-b5cfdd84]{max-height:100%;max-width:100%}.pay-result-user-info[data-v-b5cfdd84]{margin:0 4rem}.outside-content[data-v-4791d6a4]{text-align:left;padding:0 5rem}.outside-index[data-v-4791d6a4]{font-size:2rem}.outside-pay[data-v-4791d6a4],.outside-take[data-v-4791d6a4]{text-align:center}.outside-title[data-v-4791d6a4]{font-size:3rem}.outside-title h2[data-v-4791d6a4]{margin:0}.outside-result-content[data-v-4791d6a4]{margin-top:1rem;font-size:2rem;height:34rem}
|
|
@ -0,0 +1 @@
|
|||
table[data-v-01053884]{margin:0 auto;width:85%;font-size:2.8rem}.wrapper[data-v-4b5daafa]{display:flex;align-items:center;justify-content:center;height:100%}.block[data-v-4b5daafa]{width:60rem;height:30rem;font-size:4rem;background-color:#fff}.dialog-center[data-v-4b5daafa]{background:#ccc}.dialog-center[data-v-4b5daafa],.wrapper[data-v-0d956876]{height:100%;display:flex;justify-content:center;align-items:center}.block[data-v-0d956876]{width:60rem;height:30rem;font-size:4rem;background-color:#fff}.dialog-center[data-v-0d956876]{height:100%;background:#ccc}.result-img[data-v-0d956876]{width:20rem;margin:1rem;height:94%;overflow:hidden}.result-img img[data-v-0d956876]{max-width:100%;max-height:85%}.dialog-title[data-v-0d956876]{text-align:left;padding-left:1rem;padding-top:.5rem;font-size:2rem}.result-content[data-v-0d956876]{display:flex;position:relative;color:#000;height:100%}.result-content .result-user-info[data-v-0d956876]{position:absolute;padding:3rem;font-size:2rem;text-align:left}.result-user-info p[data-v-0d956876]{padding:0;margin:0}.result-content-title[data-v-0d956876]{margin:3rem;font-size:4rem}.meal-pay-content[data-v-3d548ea4]{padding:1rem 5rem}.meal-pay-content .meal-pay-input[data-v-3d548ea4]{padding:0;display:flex;justify-content:space-between;height:5rem}.meal-pay-content .meal-pay-input input[data-v-3d548ea4]{width:78%;font-size:2rem;padding:1rem}.meal-pay-content .meal-pay-click[data-v-3d548ea4]{text-align:left}.meal-pay-content .meal-pay-click p[data-v-3d548ea4]{font-size:2rem}.meal-pay-content .meal-pay-click .meal-tag[data-v-3d548ea4]{display:inline-block;padding:1.5rem 1rem;margin:.5rem .5rem;font-size:2rem;width:7rem;text-align:center}.tabel-compontent[data-v-618df8b8]{position:relative}.tabel-compontent .tabel-res-message[data-v-618df8b8]{position:absolute;width:85%;height:100%;display:flex;align-items:center;justify-content:flex-end;color:red;font-size:4rem;font-weight:550;left:7.5%}.tabel-compontent .tabel-res-message span[data-v-618df8b8]{border:.5rem solid red;margin-right:1rem}.inside-notice-bar .van-notice-bar{font-size:25px}.inside-notice-bar .van-notice-bar .van-notice-bar__content{margin:5px}.notice-swipe{height:40px;line-height:40px}.title[data-v-ac3bed18]{display:flex;justify-content:space-between;align-items:center;padding:0 5rem}.title .titlte-content[data-v-ac3bed18]{display:flex;font-size:2.5rem}.title .title-btn .title-btn-all[data-v-ac3bed18]{margin:.5rem;border-radius:10px;height:4rem}.outside-take[data-v-ac3bed18]{font-size:3rem}.inside-table[data-v-ac3bed18]{padding:1rem 0}.inside-footer[data-v-ac3bed18]{padding:0 5rem;text-align:left;position:absolute;bottom:1rem;width:85%}.inside-footer h4[data-v-ac3bed18]{font-size:3rem;margin:.5rem 0}.wrapper-loading[data-v-ac3bed18]{height:100%}.wrapper-loading .van-loading[data-v-ac3bed18]{top:50%}.keypad_type[data-v-ac3bed18]{font-size:2rem}.keypad_type button[data-v-ac3bed18]{font-size:1.1rem}.consume_list[data-v-ac3bed18]{width:80%;height:60vh;overflow-y:scroll}.consume_list table[data-v-ac3bed18]{width:80%;margin-left:10%}.consume_list table thead th[data-v-ac3bed18]{font-size:1.8rem;text-align:center;margin-top:1.5rem;line-height:3rem}.consume_list table tr[data-v-ac3bed18]{line-height:3rem}.user_info_table[data-v-ac3bed18]{width:80%;height:60vh;margin:auto}.user_info_table table[data-v-ac3bed18]{width:60%;margin-left:25%}.user_info_table table tr[data-v-ac3bed18]{line-height:5rem}.user_info_table table td[data-v-ac3bed18]{font-size:2.5rem;text-align:center;font-weight:400}.title .title-btn .van-button--normal{font-size:2.5rem}.consume_list table tr{line-height:3rem}.consume_list table td{font-size:1.8rem;text-align:center;font-weight:400}
|
|
@ -0,0 +1 @@
|
|||
.home .home-button[data-v-526c0f6c]{margin:5px}
|
After Width: | Height: | Size: 4.2 KiB |
|
@ -0,0 +1 @@
|
|||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>size_5</title><link href="css/chunk-296cdd04.39f281fd.css" rel="prefetch"><link href="css/chunk-6a439183.699eaaff.css" rel="prefetch"><link href="css/chunk-a1d14294.98c7db21.css" rel="prefetch"><link href="js/chunk-296cdd04.5f1e0a4d.js" rel="prefetch"><link href="js/chunk-6a439183.b46ca093.js" rel="prefetch"><link href="js/chunk-a1d14294.e4571292.js" rel="prefetch"><link href="css/app.4f3e354c.css" rel="preload" as="style"><link href="css/chunk-vendors.3b0bce19.css" rel="preload" as="style"><link href="js/app.540645c1.js" rel="preload" as="script"><link href="js/chunk-vendors.5361a069.js" rel="preload" as="script"><link href="css/chunk-vendors.3b0bce19.css" rel="stylesheet"><link href="css/app.4f3e354c.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but size_5 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="js/chunk-vendors.5361a069.js"></script><script src="js/app.540645c1.js"></script></body></html>
|
|
@ -0,0 +1,2 @@
|
|||
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-296cdd04"],{"0117":function(t,e,s){"use strict";s("a530")},1543:function(t,e,s){"use strict";s("6c0b")},"5f58":function(t,e,s){},"6c0b":function(t,e,s){},"865c":function(t,e,s){},8830:function(t,e,s){"use strict";var n=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",[s("table",{attrs:{border:"1",cellspacing:"0",cellpadding:"3"}},[t._m(0),s("tbody",t._l(t.userMealInfo,(function(e,n){return s("tr",{key:n},[s("td",[t._v(t._s(e.meal_name))]),s("td",[t._v(t._s(e.dish_name))]),s("td",[t._v(t._s(e.dish_price)+"元")]),s("td",[t._v(t._s(e.dish_amount))])])})),0)])])},a=[function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("thead",[s("tr",[s("th",[t._v("类型")]),s("th",[t._v("菜名")]),s("th",[t._v("价格")]),s("th",[t._v("份数")])])])}],c={props:{userMealInfo:{type:Array}}},i=c,r=(s("9c3a"),s("2877")),u=Object(r["a"])(i,n,a,!1,null,"01053884",null);e["a"]=u.exports},"9c3a":function(t,e,s){"use strict";s("5f58")},a530:function(t,e,s){},bed2:function(t,e,s){"use strict";s.r(e);var n=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"outside-content"},[t._m(0),s("div",{staticClass:"outside-index"},[t._m(1),t._m(2)])])},a=[function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"outside-title"},[s("h2",[t._v("XX饭堂 XX窗口")])])},function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"outside-pay"},[s("h2",[t._v("请刷卡\\刷脸\\刷付款码支付10元")])])},function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"outside-take"},[s("h2",[t._v("请刷卡\\刷脸\\刷付款码取餐")])])}],c=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"take-result"},[t._m(0),s("div",{staticClass:"take-result-table"},[s("my-table")],1)])},i=[function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"take-result-head"},[s("div",{staticClass:"take-result-head-img"}),s("span",{staticClass:"take-result-user-info"},[t._v("XX年级李四")])])}],r=s("8830"),u={components:{myTable:r["a"]},data:function(){return{}}},l=u,o=(s("cac3"),s("1543"),s("2877")),_=Object(o["a"])(l,c,i,!1,null,"025465d3",null),d=_.exports,f=function(){var t=this,e=t.$createElement;t._self._c;return t._m(0)},v=[function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"pay-result"},[s("div",{staticClass:"pay-result-img"}),s("div",{staticClass:"pay-result-user-info"},[s("p",[t._v("XX年级李四")]),s("h2",[t._v("支付10元成功")]),s("h2",[t._v("余额:10元")])])])}],h={data:function(){return{}}},m=h,p=(s("0117"),Object(o["a"])(m,f,v,!1,null,"b5cfdd84",null)),b=p.exports,C={components:{takeResult:d,payResult:b},data:function(){return{}},methods:{}},k=C,y=(s("e5d1"),Object(o["a"])(k,n,a,!1,null,"4791d6a4",null));e["default"]=y.exports},c33b:function(t,e,s){},cac3:function(t,e,s){"use strict";s("865c")},e5d1:function(t,e,s){"use strict";s("c33b")}}]);
|
||||
//# sourceMappingURL=chunk-296cdd04.5f1e0a4d.js.map
|
|
@ -0,0 +1,2 @@
|
|||
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-a1d14294"],{4978:function(t,n,o){"use strict";o("a847")},a411:function(t,n,o){"use strict";o.r(n);var e=function(){var t=this,n=t.$createElement,o=t._self._c||n;return o("div",{staticClass:"home"},[o("router-link",{attrs:{to:"/inside?channel_id=1"}},[o("van-button",[t._v("Go to inside")])],1),o("router-link",{attrs:{to:"/outside"}},[o("van-button",[t._v("Go to outside")])],1)],1)},i=[],s={},a=s,u=(o("4978"),o("2877")),c=Object(u["a"])(a,e,i,!1,null,"526c0f6c",null);n["default"]=c.exports},a847:function(t,n,o){}}]);
|
||||
//# sourceMappingURL=chunk-a1d14294.e4571292.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"sources":["webpack:///./src/view/home/index.vue?d182","webpack:///./src/view/home/index.vue?cc32","webpack:///src/view/home/index.vue","webpack:///./src/view/home/index.vue?5bd3","webpack:///./src/view/home/index.vue"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","_v","staticRenderFns","component"],"mappings":"gHAAA,W,yCCAA,IAAIA,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,QAAQ,CAACF,EAAG,cAAc,CAACG,MAAM,CAAC,GAAK,yBAAyB,CAACH,EAAG,aAAa,CAACJ,EAAIQ,GAAG,mBAAmB,GAAGJ,EAAG,cAAc,CAACG,MAAM,CAAC,GAAK,aAAa,CAACH,EAAG,aAAa,CAACJ,EAAIQ,GAAG,oBAAoB,IAAI,IAC7TC,EAAkB,GCWtB,KCZ8V,I,wBCQ1VC,EAAY,eACd,EACAX,EACAU,GACA,EACA,KACA,WACA,MAIa,aAAAC,E","file":"js/chunk-a1d14294.e4571292.js","sourcesContent":["export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=526c0f6c&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"home\"},[_c('router-link',{attrs:{\"to\":\"/inside?channel_id=1\"}},[_c('van-button',[_vm._v(\"Go to inside\")])],1),_c('router-link',{attrs:{\"to\":\"/outside\"}},[_c('van-button',[_vm._v(\"Go to outside\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"home\">\r\n <router-link to=\"/inside?channel_id=1\">\r\n <van-button>Go to inside</van-button>\r\n </router-link>\r\n <router-link to=\"/outside\">\r\n <van-button>Go to outside</van-button>\r\n </router-link>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nexport default {};\r\n</script>\r\n<style scoped>\r\n.home .home-button {\r\n margin: 5px;\r\n}\r\n</style>","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=526c0f6c&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=526c0f6c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"526c0f6c\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}
|
After Width: | Height: | Size: 4.2 KiB |
|
@ -0,0 +1 @@
|
|||
<!DOCTYPE html><html lang="zh-cn"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,viewport-fit=cover,user-scalable=no"><link rel="icon" href="favicon.ico"><title>饭堂取餐机</title><link href="static/css/chunk-0f20ec37.8c6f8961.css" rel="prefetch"><link href="static/css/chunk-2af52825.dcb52ef6.css" rel="prefetch"><link href="static/css/chunk-494fc044.e81471d3.css" rel="prefetch"><link href="static/css/chunk-65274dfe.ad1b4d1d.css" rel="prefetch"><link href="static/css/chunk-f8a4d762.11f28699.css" rel="prefetch"><link href="static/js/chunk-0f20ec37.c7ee9180.js" rel="prefetch"><link href="static/js/chunk-0f7c9032.b1d1146c.js" rel="prefetch"><link href="static/js/chunk-2af52825.5fbf3abb.js" rel="prefetch"><link href="static/js/chunk-3d8d68e8.16bb50b3.js" rel="prefetch"><link href="static/js/chunk-494fc044.5535486b.js" rel="prefetch"><link href="static/js/chunk-65274dfe.2a095eb7.js" rel="prefetch"><link href="static/js/chunk-f8a4d762.778a8c09.js" rel="prefetch"><link href="static/css/chunk-vendors.045571ae.css" rel="preload" as="style"><link href="static/css/index.d570524b.css" rel="preload" as="style"><link href="static/js/chunk-vendors.b6559d98.js" rel="preload" as="script"><link href="static/js/index.3b5ace92.js" rel="preload" as="script"><link href="static/css/chunk-vendors.045571ae.css" rel="stylesheet"><link href="static/css/index.d570524b.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but 饭堂取餐机 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="static/js/chunk-vendors.b6559d98.js"></script><script src="static/js/index.3b5ace92.js"></script></body></html>
|
|
@ -0,0 +1,3 @@
|
|||
<?php
|
||||
$url = $_SERVER['QUERY_STRING'] . "&t=".time();
|
||||
header("location: ./index.html?" . $url);
|
|
@ -0,0 +1 @@
|
|||
.van-empty{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;box-sizing:border-box;padding:1.06667rem 0}.van-empty__image{width:5.33333rem;height:5.33333rem}.van-empty__image img{width:100%;height:100%}.van-empty__description{margin-top:.53333rem;padding:0 2rem;color:#969799;font-size:.46667rem;line-height:.66667rem}.van-empty__bottom{margin-top:.8rem}.card-bg[data-v-fa2d40f2]{background-color:#fbbf24;color:#fff}.bubble-bg[data-v-fa2d40f2]{background-image:url(../../static/img/bubble.c50b4336.png);-webkit-background-size:contain;background-size:contain}
|
|
@ -0,0 +1 @@
|
|||
.username{color:#3866de}table[data-v-fa8b194e]{background-color:#fff;border:.03333rem solid #dcdee0;-webkit-border-radius:.26667rem;border-radius:.26667rem;overflow:hidden;border-collapse:collapse;border-style:hidden;-webkit-box-shadow:0 0 0 .03333rem #dcdee0;box-shadow:0 0 0 .03333rem #dcdee0}td[data-v-fa8b194e],th[data-v-fa8b194e]{border:.03333rem solid #dcdee0}table tbody tr[data-v-fa8b194e]:nth-child(odd){background-color:#ebedf0}table tbody tr[data-v-fa8b194e]:nth-child(2n){background-color:#fff}.hasTake[data-v-fa8b194e]{color:#ee0a24;border-color:#ee0a24;-webkit-transform:rotate(-20deg);transform:rotate(-20deg)}.rest[data-v-fa8b194e]{font-size:1rem;margin-top:1rem}
|
|
@ -0,0 +1 @@
|
|||
.van-empty{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;box-sizing:border-box;padding:1.06667rem 0}.van-empty__image{width:5.33333rem;height:5.33333rem}.van-empty__image img{width:100%;height:100%}.van-empty__description{margin-top:.53333rem;padding:0 2rem;color:#969799;font-size:.46667rem;line-height:.66667rem}.van-empty__bottom{margin-top:.8rem}table[data-v-226a6374]{background-color:#fff;border:.03333rem solid #dcdee0;-webkit-border-radius:.26667rem;border-radius:.26667rem;overflow:hidden;border-collapse:collapse;border-style:hidden;-webkit-box-shadow:0 0 0 .03333rem #dcdee0;box-shadow:0 0 0 .03333rem #dcdee0}td[data-v-226a6374],th[data-v-226a6374]{border:.03333rem solid #dcdee0}table tbody tr[data-v-226a6374]:nth-child(odd){background-color:#ebedf0}table tbody tr[data-v-226a6374]:nth-child(2n){background-color:#fff}.van-empty .van-empty__description{font-size:1rem!important}
|
|
@ -0,0 +1 @@
|
|||
.bg[data-v-751d7f7c]{background-color:#fde68a}.header-text[data-v-751d7f7c]{color:#323233}[data-v-751d7f7c] .van-tabbar-item{width:4.33333rem;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;font-size:1.33333rem;line-height:1.5}[data-v-751d7f7c] .van-hairline--top-bottom.van-tabbar.van-tabbar--unfit{height:auto}[data-v-751d7f7c] .van-tabbar-item--active{background-color:transparent}[data-v-751d7f7c] .van-tabbar-item--active .van-tabbar-item__text{margin:.13333rem .13333rem;width:100%;background-color:#fbbf24;padding:.06667rem .6rem;-webkit-border-radius:.26667rem;border-radius:.26667rem;display:block;text-align:center;color:#fff;font-weight:700}.app-bg{background-color:#f7f8fa}body,html{height:100%}@media screen and (max-width:2000px){html{font-size:40px!important}}
|
After Width: | Height: | Size: 35 KiB |
|
@ -0,0 +1,15 @@
|
|||
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-0f7c9032"],{"16ce":function(n,t,e){"use strict";e.d(t,"a",(function(){return u}));e("2909"),e("3835"),e("53ca"),e("b85c"),e("c7eb"),e("1da1"),e("d3b7"),e("caad"),e("2532"),e("99af"),e("ac1f"),e("841c"),e("c35a"),e("a9e3"),e("9129"),e("4160"),e("4de4"),e("159b"),e("c975"),e("a4d3"),e("8a79"),e("2ca0"),e("6062"),e("3ca3"),e("ddb0"),e("5d41"),e("d81d"),e("1276"),e("498a"),e("a623"),e("a434"),e("a630"),e("a15b"),e("466d"),e("fb6a"),e("accc"),e("7db0"),e("5319"),e("25f0"),e("9861"),e("b64b"),e("2b3d");var i=e("a026");i["default"],i["default"].util.warn;var a=e("7bbe");var r=a["i"]?window:void 0,c=a["i"]?window.document:void 0;a["i"]&&window.navigator;function o(){for(var n,t,e,c,o=arguments.length,u=new Array(o),d=0;d<o;d++)u[d]=arguments[d];if(Object(a["m"])(u[0])?(t=u[0],e=u[1],c=u[2],n=r):(n=u[0],t=u[1],e=u[2],c=u[3]),!n)return a["n"];var f=a["n"],b=Object(i["watch"])((function(){return Object(i["unref"])(n)}),(function(n){f(),n&&(n.addEventListener(t,e,c),f=function(){n.removeEventListener(t,e,c),f=a["n"]})}),{immediate:!0,flush:"post"}),v=function(){b(),f()};return Object(a["u"])(v),v}function u(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=n.document,e=void 0===t?c:t;if(!e)return Object(i["ref"])("visible");var a=Object(i["ref"])(e.visibilityState);return o(e,"visibilitychange",(function(){a.value=e.visibilityState})),a}
|
||||
/*! *****************************************************************************
|
||||
Copyright (c) Microsoft Corporation.
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
***************************************************************************** */var d;(function(n){n["UP"]="UP",n["RIGHT"]="RIGHT",n["DOWN"]="DOWN",n["LEFT"]="LEFT",n["NONE"]="NONE"})(d||(d={}))},d257:function(n,t,e){"use strict";e.d(t,"a",(function(){return r}));var i=e("53ca");function a(n){if("string"!==typeof n)return!1;try{var t=JSON.parse(n);return!(!t||"object"!==Object(i["a"])(t))}catch(e){return console.log("$isJSON error<EFBFBD><EFBFBD>",e),!1}}function r(n){var t;return a(n)?(null===(t=JSON.parse(n))||void 0===t?void 0:t.content)||"":n}}}]);
|
After Width: | Height: | Size: 4.2 KiB |
|
@ -0,0 +1 @@
|
|||
<!DOCTYPE html><html lang="zh-cn"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,viewport-fit=cover,user-scalable=no"><link rel="icon" href="favicon.ico"><title>饭堂取餐机</title><link href="static/css/chunk-068f3910.64dece74.css" rel="prefetch"><link href="static/css/chunk-273c4f53.01c9c65d.css" rel="prefetch"><link href="static/css/chunk-6aa34c20.dfea8f7a.css" rel="prefetch"><link href="static/css/chunk-df300936.c86622dc.css" rel="prefetch"><link href="static/css/chunk-ecdc4d7c.5835d7af.css" rel="prefetch"><link href="static/js/chunk-068f3910.abc5001f.js" rel="prefetch"><link href="static/js/chunk-273c4f53.e809da83.js" rel="prefetch"><link href="static/js/chunk-6aa34c20.fbbeb099.js" rel="prefetch"><link href="static/js/chunk-df300936.d13bd359.js" rel="prefetch"><link href="static/js/chunk-ecdc4d7c.458897ef.js" rel="prefetch"><link href="static/css/chunk-vendors.d5a54fe2.css" rel="preload" as="style"><link href="static/css/index.37504493.css" rel="preload" as="style"><link href="static/js/chunk-vendors.b39c4f86.js" rel="preload" as="script"><link href="static/js/index.51547f74.js" rel="preload" as="script"><link href="static/css/chunk-vendors.d5a54fe2.css" rel="stylesheet"><link href="static/css/index.37504493.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but 饭堂取餐机 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="static/js/chunk-vendors.b39c4f86.js"></script><script src="static/js/index.51547f74.js"></script></body></html>
|
|
@ -0,0 +1,3 @@
|
|||
<?php
|
||||
$url = $_SERVER['QUERY_STRING'] . "&t=".time();
|
||||
header("location: ../merge_pay/index.html?" . $url);
|
|
@ -0,0 +1 @@
|
|||
.username{color:#3866de}table[data-v-5721ceb2]{background-color:#fff;border:.03333rem solid #dcdee0;-webkit-border-radius:.26667rem;border-radius:.26667rem;overflow:hidden;border-collapse:collapse;border-style:hidden;-webkit-box-shadow:0 0 0 .03333rem #dcdee0;box-shadow:0 0 0 .03333rem #dcdee0}td[data-v-5721ceb2],th[data-v-5721ceb2]{border:.03333rem solid #dcdee0}table tbody tr[data-v-5721ceb2]:nth-child(odd){background-color:#ebedf0}table tbody tr[data-v-5721ceb2]:nth-child(2n){background-color:#fff}.hasTake[data-v-5721ceb2]{color:#ee0a24;border-color:#ee0a24;-webkit-transform:rotate(-20deg);transform:rotate(-20deg)}
|
|
@ -0,0 +1 @@
|
|||
.van-empty{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;box-sizing:border-box;padding:1.06667rem 0}.van-empty__image{width:5.33333rem;height:5.33333rem}.van-empty__image img{width:100%;height:100%}.van-empty__description{margin-top:.53333rem;padding:0 2rem;color:#969799;font-size:.46667rem;line-height:.66667rem}.van-empty__bottom{margin-top:.8rem}.card-bg[data-v-0ec6a771]{background-color:#fbbf24;color:#fff}.bubble-bg[data-v-0ec6a771]{background-image:url(../../static/img/bubble.c50b4336.png);-webkit-background-size:contain;background-size:contain}
|
|
@ -0,0 +1 @@
|
|||
.van-empty{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;box-sizing:border-box;padding:1.06667rem 0}.van-empty__image{width:5.33333rem;height:5.33333rem}.van-empty__image img{width:100%;height:100%}.van-empty__description{margin-top:.53333rem;padding:0 2rem;color:#969799;font-size:.46667rem;line-height:.66667rem}.van-empty__bottom{margin-top:.8rem}table[data-v-78ae77ac]{background-color:#fff;border:.03333rem solid #dcdee0;-webkit-border-radius:.26667rem;border-radius:.26667rem;overflow:hidden;border-collapse:collapse;border-style:hidden;-webkit-box-shadow:0 0 0 .03333rem #dcdee0;box-shadow:0 0 0 .03333rem #dcdee0}td[data-v-78ae77ac],th[data-v-78ae77ac]{border:.03333rem solid #dcdee0}table tbody tr[data-v-78ae77ac]:nth-child(odd){background-color:#ebedf0}table tbody tr[data-v-78ae77ac]:nth-child(2n){background-color:#fff}
|
|
@ -0,0 +1 @@
|
|||
.bg[data-v-7722712a]{background-color:#fde68a}.header-text[data-v-7722712a]{color:#323233}[data-v-7722712a] .van-tabbar-item{width:3.33333rem;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;font-size:.8rem;line-height:1.2}[data-v-7722712a] .van-hairline--top-bottom.van-tabbar.van-tabbar--unfit{height:auto}[data-v-7722712a] .van-tabbar-item--active{background-color:transparent}[data-v-7722712a] .van-tabbar-item--active .van-tabbar-item__text{margin:.13333rem .13333rem;width:100%;background-color:#fbbf24;padding:.2rem .6rem;-webkit-border-radius:.26667rem;border-radius:.26667rem;display:block;text-align:center;color:#fff;font-weight:700}.app-bg{background-color:#f7f8fa}body,html{height:100%}@media screen and (max-width:2000px){html{font-size:40px!important}}
|
After Width: | Height: | Size: 35 KiB |
|
@ -0,0 +1 @@
|
|||
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-068f3910"],{6184:function(e,t,a){},aa5e:function(e,t,a){"use strict";a.r(t);var n=function(){var e=this,t=e._self._c,a=e._self._setupProxy;return t("div",{staticClass:"w-full h-full"},[a.mealInfo.list.length?t("div",{ref:"scrollRef",staticClass:"h-full w-full overflow-auto"},e._l(a.mealInfo.list,(function(n){var s;return t("div",{staticClass:"px-2 pt-1.5 relative"},[0===n.take_status?t("div",{staticClass:"absolute left-0 right-0 top-0 flex flex-col items-center"},[t("div",{staticClass:"text-2xl border-8 border-solid p-1 opacity-30 hasTake rounded mt-14 font-bold"},[e._v("已取餐")])]):e._e(),t("div",{staticClass:"flex items-center mb-1.5"},[t(a.Tag,{staticClass:"text-xs px-1 py-0.5 rounded",attrs:{type:"primary"}},[e._v(e._s(n.meal_name))]),t("div",{staticClass:"username ml-1.5 font-bold text-sm"},[e._v(e._s(null===(s=a.mealInfo.user)||void 0===s?void 0:s.username))])],1),t("table",{staticClass:"table-fixed w-full text-sm mb-1.5"},[e._m(0,!0),t("tbody",e._l(n.order_detail,(function(a){return t("tr",[t("td",{staticClass:"py-0.5 px-2"},[e._v(" "+e._s(a.dish_name)+" ")]),t("td",{staticClass:"py-0.5 px-1"},[e._v(" "+e._s(a.dish_amount)+" ")]),t("td",{staticClass:"py-0.5 px-1"},[e._v("¥ "+e._s(a.dish_price))])])})),0)])])})),0):t("div",{staticClass:"w-full h-full justify-center items-center flex"},[t("div",{staticClass:"text-2xl"},[e._v("可刷脸/刷IC卡/取餐码")])])])},s=[function(){var e=this,t=e._self._c;e._self._setupProxy;return t("thead",[t("tr",[t("th",{staticClass:"w-8/12 text-left py-0.5 px-2"},[e._v("菜品")]),t("th",{staticClass:"w-1/12 text-left py-0.5 px-1"},[e._v("份数")]),t("th",{staticClass:"w-1/12 text-left py-0.5 px-1"},[e._v("价格")])])])}],l=(a("ac1f"),a("5319"),a("a026")),c=a("d399"),i=(a("e7e5"),a("a3e2")),o=(a("5f1a"),a("a01b")),r=a("e432"),u=a("79f6"),d=a("6815"),f=Object(l["defineComponent"])({__name:"index",setup:function(e){var t=Object(l["ref"])(),a=Object(d["b"])(),n=Object(o["a"])(),s=Object(l["ref"])({list:[],user:null}),f=Object(l["ref"])(!0),v=function(e){Object(u["b"])({dining_hall_id:n.canteenId,facecard:e}).then((function(e){1===e.status?e.data.take_code?m(e.data.take_code):c["a"].fail({message:"无法解析取餐码"}):c["a"].fail({message:e.message})}))},_=function(e){Object(u["c"])({dining_hall_id:n.canteenId,cardno:e}).then((function(e){1===e.status?e.data.take_code?m(e.data.take_code):c["a"].fail({message:"无法解析取餐码"}):c["a"].fail({message:e.message})}))},p=function(e){var t,a,n,s=null===(n=null===(a=null===(t=null===e||void 0===e?void 0:e.split("]"))||void 0===t?void 0:t[1])||void 0===a?void 0:a.split(","))||void 0===n?void 0:n[0];s?m(s):c["a"].fail({message:"无法解析取餐码"})},m=function(e){if(f.value)return!1;f.value=!0;var t=c["a"].loading({message:"正在查询取餐信息",duration:0});Object(u["i"])({channelid:n.channelId,dining_hall_id:n.canteenId,take_code:e}).then((function(e){1===e.status?s.value=e.data:c["a"].fail({message:e.message})}))["catch"]((function(e){c["a"].fail({message:e})})).then((function(){f.value=!1,t.clear()}))},b=function(e){if(console.log(e,r["a"][e]),e)switch(r["a"][e]){case"changeMenu":a.replace("/pay-meal");break;case"prev":t.value&&(t.value.scrollTop=t.value.scrollTop-200<=0?0:t.value.scrollTop-200);break;case"next":t.value&&(t.value.scrollTop=t.value.scrollTop+200);break}};return Object(l["onMounted"])((function(){var e={facegetcode:function(e){return v(e)},icgetcode:function(e){return _(e)},qrCode:function(e){return p(e)},keyDown:function(e){return b(e)}};window.Lqbrid=e})),{__sfc:!0,scrollRef:t,router:a,canteenStore:n,mealInfo:s,loading:f,getFaceCode:v,getIcCard:_,exchangeTakeFoodCodeByQrCode:p,onTakeMeal:m,onKeyDown:b,Tag:i["a"]}}}),v=f,_=(a("ce6d"),a("c026"),a("2877")),p=Object(_["a"])(v,n,s,!1,null,"5721ceb2",null);t["default"]=p.exports},c026:function(e,t,a){"use strict";a("6184")},ce6d:function(e,t,a){"use strict";a("f61f")},e432:function(e,t,a){"use strict";var n={7:"0",144:"0",8:"1",145:"1",9:"2",146:"2",10:"3",147:"3",11:"4",148:"4",12:"5",149:"5",13:"6",150:"6",14:"7",151:"7",15:"8",152:"8",16:"9",153:"9",131:".",158:".",155:"changeMenu",277:"changeMenu",92:"prev",156:"prev",93:"next",157:"next",66:"enter",67:"back"};t["a"]=n},f61f:function(e,t,a){}}]);
|
After Width: | Height: | Size: 4.2 KiB |
|
@ -0,0 +1 @@
|
|||
<!DOCTYPE html><html lang="zh-cn"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,viewport-fit=cover,user-scalable=no"><link rel="icon" href="favicon.ico"><title>饭堂取餐机</title><link href="static/css/chunk-24e1c30c.c1d30de7.css" rel="prefetch"><link href="static/css/chunk-e0cacb40.77b5503c.css" rel="prefetch"><link href="static/js/chunk-24e1c30c.f350078b.js" rel="prefetch"><link href="static/js/chunk-2d0bcdf8.72197571.js" rel="prefetch"><link href="static/js/chunk-2d0ddfff.4b7d2c3a.js" rel="prefetch"><link href="static/js/chunk-e0cacb40.6c6a2b39.js" rel="prefetch"><link href="static/css/chunk-vendors.fc71ace7.css" rel="preload" as="style"><link href="static/css/index.79031139.css" rel="preload" as="style"><link href="static/js/chunk-vendors.6c5db617.js" rel="preload" as="script"><link href="static/js/index.c9f3ae8a.js" rel="preload" as="script"><link href="static/css/chunk-vendors.fc71ace7.css" rel="stylesheet"><link href="static/css/index.79031139.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but 饭堂取餐机 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="static/js/chunk-vendors.6c5db617.js"></script><script src="static/js/index.c9f3ae8a.js"></script></body></html>
|
|
@ -0,0 +1 @@
|
|||
.username{color:#3866de}table[data-v-3d3f5292]{background-color:#fff;border:.03333rem solid #dcdee0;-webkit-border-radius:.26667rem;border-radius:.26667rem;overflow:hidden;border-collapse:collapse;border-style:hidden;-webkit-box-shadow:0 0 0 .03333rem #dcdee0;box-shadow:0 0 0 .03333rem #dcdee0}td[data-v-3d3f5292],th[data-v-3d3f5292]{border:.03333rem solid #dcdee0}table tbody tr[data-v-3d3f5292]:nth-child(odd){background-color:#ebedf0}table tbody tr[data-v-3d3f5292]:nth-child(2n){background-color:#fff}.hasTake[data-v-3d3f5292]{color:#ee0a24;border-color:#ee0a24;-webkit-transform:rotate(-20deg);transform:rotate(-20deg)}.qrpay[data-v-3d3f5292]{width:90%;height:60%;margin-left:5%;margin-top:6%;padding:.5rem;text-align:center}.qrpay img[data-v-3d3f5292]{width:6.5rem;display:inline-block;vertical-align:top}.qrpay .user_info[data-v-3d3f5292]{display:inline-block;padding-left:2rem}.qrpay .user_info .pay_msg[data-v-3d3f5292]{font-size:1rem;font-weight:700}.qrpay .user_info .pay_username[data-v-3d3f5292],.qrpay .user_info .ye[data-v-3d3f5292]{font-size:1rem;text-align:left}
|
|
@ -0,0 +1 @@
|
|||
table[data-v-ea8a86ba]{background-color:#fff;border:.03333rem solid #dcdee0;-webkit-border-radius:.26667rem;border-radius:.26667rem;overflow:hidden;border-collapse:collapse;border-style:hidden;-webkit-box-shadow:0 0 0 .03333rem #dcdee0;box-shadow:0 0 0 .03333rem #dcdee0}td[data-v-ea8a86ba],th[data-v-ea8a86ba]{border:.03333rem solid #dcdee0}table tbody tr[data-v-ea8a86ba]:nth-child(odd){background-color:#ebedf0}table tbody tr[data-v-ea8a86ba]:nth-child(2n){background-color:#fff}
|
|
@ -0,0 +1 @@
|
|||
.bg[data-v-e51f4cdc]{background-color:#fde68a}.header-text[data-v-e51f4cdc]{color:#323233}[data-v-e51f4cdc] .van-tabbar-item{width:3.33333rem;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;font-size:.8rem;line-height:1.2}[data-v-e51f4cdc] .van-hairline--top-bottom.van-tabbar.van-tabbar--unfit{height:auto}[data-v-e51f4cdc] .van-tabbar-item--active{background-color:transparent}[data-v-e51f4cdc] .van-tabbar-item--active .van-tabbar-item__text{margin:.13333rem .13333rem;width:100%;background-color:#fbbf24;padding:.2rem .6rem;-webkit-border-radius:.26667rem;border-radius:.26667rem;display:block;text-align:center;color:#fff;font-weight:700}.app-bg[data-v-4e90b7af]{background-color:#f7f8fa}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.top-0{top:0}.right-0{right:0}.left-0{left:0}.mt-14{margin-top:3.5rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-1\.5{margin-bottom:.375rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.flex{display:-webkit-box;display:flex}.table{display:table}.h-full{height:100%}.w-1\/12{width:8.333333%}.w-2\/12{width:16.666667%}.w-6\/12{width:50%}.w-8\/12{width:66.666667%}.w-full{width:100%}.flex-shrink-0{flex-shrink:0}.flex-shrink{flex-shrink:1}.flex-grow{-webkit-box-flex:1;flex-grow:1}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;-webkit-transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-12{--tw-rotate:-12deg}@-webkit-keyframes spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes ping{75%,to{-webkit-transform:scale(2);transform:scale(2);opacity:0}}@keyframes ping{75%,to{-webkit-transform:scale(2);transform:scale(2);opacity:0}}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{-webkit-transform:translateY(-25%);transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{-webkit-transform:none;transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{-webkit-transform:translateY(-25%);transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{-webkit-transform:none;transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}.flex-col{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}.items-center{-webkit-box-align:center;align-items:center}.justify-center{-webkit-box-pack:center;justify-content:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.rounded{-webkit-border-radius:.25rem;border-radius:.25rem}.border-8{border-width:.26667rem}.border{border-width:.03333rem}.bg-gray-50{--tw-bg-opacity:1;background-color:rgba(249,250,251,var(--tw-bg-opacity))}.p-1{padding:.25rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.text-left{text-align:left}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-2xl{font-size:1.5rem;line-height:2rem}.font-bold{font-weight:700}.text-red-400{--tw-text-opacity:1;color:rgba(248,113,113,var(--tw-text-opacity))}.opacity-30{opacity:.3}*,:after,:before{--tw-shadow:0 0 transparent;--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,0.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent}body,html{height:100%}@media screen and (max-width:2000px){html{font-size:40px!important}}
|
|
@ -0,0 +1,2 @@
|
|||
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d0bcdf8"],{"2a1d":function(n,e,t){"use strict";t.r(e);var u=function(){var n=this,e=n._self._c;n._self._setupProxy;return e("div")},c=[],s=t("a026"),o=Object(s["defineComponent"])({__name:"index",setup:function(n){return{__sfc:!0}}}),i=o,r=t("2877"),a=Object(r["a"])(i,u,c,!1,null,null,null);e["default"]=a.exports}}]);
|
||||
//# sourceMappingURL=chunk-2d0bcdf8.72197571.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"sources":["webpack:///static/js/chunk-2d0bcdf8.90d6a2d2.js"],"names":["window","push","2a1d","module","__webpack_exports__","__webpack_require__","r","render","_vm","this","_c","_self","_setupProxy","staticRenderFns","vue_esm","Balancevue_type_script_setup_true_lang_ts_","Object","__name","setup","__props","__sfc","views_Balancevue_type_script_setup_true_lang_ts_","componentNormalizer","component"],"mappings":"CAACA,OAAO,gBAAkBA,OAAO,iBAAmB,IAAIC,KAAK,CAAC,CAAC,kBAAkB,CAE3EC,OACA,SAAUC,EAAQC,EAAqBC,GAE7C,aAEAA,EAAoBC,EAAEF,GAGtB,IAAIG,EAAS,WACX,IAAIC,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACNF,EAAIG,MAAMC,YACrB,OAAOF,EAAG,QAERG,EAAkB,GAKlBC,EAAUT,EAAoB,QAIDU,EAA2DC,OAAOF,EAAQ,mBAA7B,CAAiD,CAC7HG,OAAQ,QACRC,MAAO,SAAeC,GACpB,MAAO,CACLC,OAAO,MAKqBC,EAAmD,EAEjFC,EAAsBjB,EAAoB,QAU1CkB,EAAYP,OAAOM,EAAoB,KAA3BN,CACdK,EACAd,EACAM,GACA,EACA,KACA,KACA,MAIyCT,EAAoB,WAAcmB,EAAiB","file":"static/js/chunk-2d0bcdf8.72197571.js","sourceRoot":""}
|
|
@ -0,0 +1,2 @@
|
|||
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d0ddfff"],{"847d":function(n,e,t){"use strict";t.r(e);var u=function(){var n=this,e=n._self._c;n._self._setupProxy;return e("div",[n._v("请")])},c=[],o=t("a026"),f=Object(o["defineComponent"])({__name:"index",setup:function(n){var e=Object(o["ref"])("");return Object(o["onMounted"])((function(){})),{__sfc:!0,keys:e}}}),s=f,r=t("2877"),d=Object(r["a"])(s,u,c,!1,null,null,null);e["default"]=d.exports}}]);
|
||||
//# sourceMappingURL=chunk-2d0ddfff.4b7d2c3a.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"sources":["webpack:///static/js/chunk-2d0ddfff.52d81c9f.js"],"names":["window","push","847d","module","__webpack_exports__","__webpack_require__","r","render","_vm","this","_c","_self","_setupProxy","_v","staticRenderFns","vue_esm","PayMealvue_type_script_lang_ts_setup_true_","Object","__name","setup","__props","keys","__sfc","views_PayMealvue_type_script_lang_ts_setup_true_","componentNormalizer","component"],"mappings":"CAACA,OAAO,gBAAkBA,OAAO,iBAAmB,IAAIC,KAAK,CAAC,CAAC,kBAAkB,CAE3EC,OACA,SAAUC,EAAQC,EAAqBC,GAE7C,aAEAA,EAAoBC,EAAEF,GAGtB,IAAIG,EAAS,WACX,IAAIC,EAAMC,KACRC,EAAKF,EAAIG,MAAMD,GACNF,EAAIG,MAAMC,YACrB,OAAOF,EAAG,MAAO,CAACF,EAAIK,GAAG,QAEvBC,EAAkB,GAKlBC,EAAUV,EAAoB,QAKDW,EAA2DC,OAAOF,EAAQ,mBAA7B,CAAiD,CAC7HG,OAAQ,QACRC,MAAO,SAAeC,GACpB,IAAIC,EAAOJ,OAAOF,EAAQ,OAAfE,CAAuB,IAElC,OADAA,OAAOF,EAAQ,aAAfE,EAA6B,eACtB,CACLK,OAAO,EACPD,KAAMA,MAKsBE,EAAmD,EAEjFC,EAAsBnB,EAAoB,QAU1CoB,EAAYR,OAAOO,EAAoB,KAA3BP,CACdM,EACAhB,EACAO,GACA,EACA,KACA,KACA,MAIyCV,EAAoB,WAAcqB,EAAiB","file":"static/js/chunk-2d0ddfff.4b7d2c3a.js","sourceRoot":""}
|
|
@ -0,0 +1,2 @@
|
|||
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-e0cacb40"],{6340:function(t,e,s){"use strict";s("75c6")},"75c6":function(t,e,s){},"7e23":function(t,e,s){"use strict";s.r(e);var a=function(){var t=this,e=t._self._c,s=t._self._setupProxy;return s.loading?t._e():e("div",{staticClass:"h-full overflow-auto px-2 pt-1.5"},[e("div",{staticClass:"mb-1.5"},[e(s.Tag,{staticClass:"text-xs px-1 py-0.5 rounded",attrs:{type:"primary"}},[t._v("取餐机累计金额"),e("strong",{staticClass:"ml-1"},[t._v("¥ "+t._s(s.billsInfo.all_consume_price||"--"))])])],1),e("table",{staticClass:"table-fixed w-full text-sm mb-1.5"},[t._m(0),e("tbody",t._l(s.billsInfo.consume_list,(function(s){return e("tr",[e("td",{staticClass:"py-1 px-2"},[t._v(t._s(s.record_datetime))]),e("td",{staticClass:"py-1 px-2"},[t._v(t._s(s.username))]),e("td",{staticClass:"py-1 px-2"},[t._v(t._s(s.consume_type))]),e("td",{staticClass:"py-1 px-2"},[t._v("¥ "+t._s(s.recharge_amount))])])})),0)])])},n=[function(){var t=this,e=t._self._c;t._self._setupProxy;return e("thead",[e("tr",[e("th",{staticClass:"w-6/12 text-left py-1 px-2"},[t._v("时间")]),e("th",{staticClass:"w-2/12 text-left py-1 px-2"},[t._v("用户")]),e("th",{staticClass:"w-2/12 text-left py-1 px-2"},[t._v("类型")]),e("th",{staticClass:"w-2/12 text-left py-1 px-2"},[t._v("金额")])])])}],l=s("a026"),c=(s("e17f"),s("d399")),i=(s("e7e5"),s("a3e2")),o=(s("5f1a"),s("a01b")),u=s("79f6"),_=Object(l["defineComponent"])({__name:"index",setup:function(t){var e=Object(l["ref"])({consume_list:void 0,all_consume_price:void 0}),s=Object(o["a"])(),a=Object(l["ref"])(!0),n=function(){a.value=!0;var t=c["a"].loading({message:"正在查询流水信息",duration:0});Object(u["a"])({channel_id:s.channelId}).then((function(t){1===t.status?e.value=t.data:c["a"].fail({message:"查询失败"})}))["catch"]((function(t){c["a"].fail({message:t})})).then((function(){a.value=!1,t.clear()}))};return Object(l["onMounted"])((function(){n()})),{__sfc:!0,billsInfo:e,canteenStore:s,loading:a,getBills:n,Tag:i["a"]}}}),r=_,f=(s("6340"),s("2877")),p=Object(f["a"])(r,a,n,!1,null,"ea8a86ba",null);e["default"]=p.exports}}]);
|
||||
//# sourceMappingURL=chunk-e0cacb40.6c6a2b39.js.map
|
|
@ -0,0 +1,23 @@
|
|||
.DS_Store
|
||||
node_modules
|
||||
/android/dist
|
||||
|
||||
|
||||
# local env files
|
||||
.env.local
|
||||
.env.*.local
|
||||
|
||||
# Log files
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
|
||||
# Editor directories and files
|
||||
.idea
|
||||
.vscode
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw?
|
|
@ -0,0 +1,24 @@
|
|||
# size_5
|
||||
|
||||
## Project setup
|
||||
```
|
||||
npm install
|
||||
```
|
||||
|
||||
### Compiles and hot-reloads for development
|
||||
```
|
||||
npm run serve
|
||||
```
|
||||
|
||||
### Compiles and minifies for production
|
||||
```
|
||||
npm run build
|
||||
```
|
||||
|
||||
### Lints and fixes files
|
||||
```
|
||||
npm run lint
|
||||
```
|
||||
|
||||
### Customize configuration
|
||||
See [Configuration Reference](https://cli.vuejs.org/config/).
|
|
@ -0,0 +1,5 @@
|
|||
module.exports = {
|
||||
presets: [
|
||||
'@vue/cli-plugin-babel/preset'
|
||||
]
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"name": "size_5",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "vue-cli-service serve",
|
||||
"build": "vue-cli-service build",
|
||||
"lint": "vue-cli-service lint"
|
||||
},
|
||||
"dependencies": {
|
||||
"axios": "^0.21.1",
|
||||
"core-js": "^3.6.5",
|
||||
"router": "^1.3.5",
|
||||
"vant": "^2.11.3",
|
||||
"vconsole": "^3.3.4",
|
||||
"vue": "^2.6.11",
|
||||
"vue-router": "^3.4.9"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vue/cli-plugin-babel": "~4.5.0",
|
||||
"@vue/cli-plugin-eslint": "~4.5.0",
|
||||
"@vue/cli-service": "~4.5.0",
|
||||
"babel-eslint": "^10.1.0",
|
||||
"eslint": "^6.7.2",
|
||||
"eslint-plugin-vue": "^6.2.2",
|
||||
"node-sass": "^5.0.0",
|
||||
"sass-loader": "^7.3.1",
|
||||
"vue-template-compiler": "^2.6.11"
|
||||
},
|
||||
"eslintConfig": {
|
||||
"root": true,
|
||||
"env": {
|
||||
"node": true
|
||||
},
|
||||
"extends": [
|
||||
"plugin:vue/essential",
|
||||
"eslint:recommended"
|
||||
],
|
||||
"parserOptions": {
|
||||
"parser": "babel-eslint"
|
||||
},
|
||||
"rules": {}
|
||||
},
|
||||
"browserslist": [
|
||||
"> 1%",
|
||||
"last 2 versions",
|
||||
"not dead"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 4.2 KiB |
|
@ -0,0 +1,17 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
|
||||
<title><%= htmlWebpackPlugin.options.title %></title>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>
|
||||
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
|
||||
</noscript>
|
||||
<div id="app"></div>
|
||||
<!-- built files will be auto injected -->
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,33 @@
|
|||
<template>
|
||||
<div id="app">
|
||||
<router-view />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "App",
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
created() {},
|
||||
|
||||
methods: {},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
body,
|
||||
html {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
#app {
|
||||
font-family: Avenir, Helvetica, Arial, sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
text-align: center;
|
||||
color: #2c3e50;
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,87 @@
|
|||
import request from '@/utils/request';
|
||||
import { formHeaders } from '@/config/headers';
|
||||
import qs from 'querystring';
|
||||
|
||||
// 获取所有饭堂信息
|
||||
export function chkserver(ft_id) {
|
||||
return request({
|
||||
url: '/show/chkserver.php?act=info&custid=--' + ft_id,
|
||||
headers: formHeaders,
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
|
||||
// 现场消费
|
||||
export function qrpay(params) {
|
||||
const str = qs.stringify(params);
|
||||
return request({
|
||||
url: '/api/user/qrpay',
|
||||
headers: formHeaders,
|
||||
method: 'POST',
|
||||
data: str,
|
||||
});
|
||||
}
|
||||
|
||||
// 取餐
|
||||
export function take(params) {
|
||||
const str = qs.stringify(params);
|
||||
return request({
|
||||
url: '/api/order/take',
|
||||
headers: formHeaders,
|
||||
method: 'POST',
|
||||
data: str,
|
||||
});
|
||||
}
|
||||
|
||||
// face人脸获取take_code
|
||||
export function facegetcode(params) {
|
||||
const str = qs.stringify(params);
|
||||
return request({
|
||||
url: '/show/chkserver.php?act=facegetcode',
|
||||
headers: formHeaders,
|
||||
method: 'POST',
|
||||
data: str,
|
||||
});
|
||||
}
|
||||
|
||||
// 根据Ic卡获取take_code
|
||||
export function icgetcode(params) {
|
||||
const str = qs.stringify(params);
|
||||
return request({
|
||||
url: '/show/chkserver.php?act=icgetcode',
|
||||
headers: formHeaders,
|
||||
method: 'POST',
|
||||
data: str,
|
||||
});
|
||||
}
|
||||
// https://ldbdc.fsecity.com/show/chkserver.php?act=icgetcode
|
||||
|
||||
export function getConsumeList(channel_id){
|
||||
const str = qs.stringify({
|
||||
channel_id:channel_id
|
||||
})
|
||||
return request({
|
||||
url: '/show/chkserver.php?act=getConsumeList',
|
||||
headers: formHeaders,
|
||||
method: 'POST',
|
||||
data: str,
|
||||
});
|
||||
}
|
||||
export function icUserInfo(params){
|
||||
const str = qs.stringify(params);
|
||||
return request({
|
||||
url: '/show/chkserver.php?act=icUserInfo',
|
||||
headers: formHeaders,
|
||||
method: 'POST',
|
||||
data: str,
|
||||
});
|
||||
}
|
||||
export function faceUserInfo(params){
|
||||
const str = qs.stringify(params);
|
||||
return request({
|
||||
url: '/show/chkserver.php?act=faceUserInfo',
|
||||
headers: formHeaders,
|
||||
method: 'POST',
|
||||
data: str,
|
||||
});
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
import * as ftInfo from "./ftInfo"
|
||||
|
||||
export {
|
||||
ftInfo
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
import * as ftInfo from "./ft-info"
|
||||
|
||||
export default {
|
||||
...ftInfo
|
||||
}
|
After Width: | Height: | Size: 109 KiB |
After Width: | Height: | Size: 6.7 KiB |
|
@ -0,0 +1,91 @@
|
|||
<template>
|
||||
<van-overlay :show="show">
|
||||
<div class="wrapper" @click.stop>
|
||||
<div class="block">
|
||||
<div class="dialog-center">
|
||||
<span>{{ this.mssage }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</van-overlay>
|
||||
</template>
|
||||
<script>
|
||||
// import { lqbrid } from "@/utils/app.js";
|
||||
export default {
|
||||
props: {
|
||||
show: Boolean,
|
||||
fee: String,
|
||||
infoDetail: Object,
|
||||
mssage: {
|
||||
type: String,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
resultInfo: {},
|
||||
|
||||
// defalutMsg: "请刷码或刷卡支付" + this.fee + "元",
|
||||
|
||||
type: {
|
||||
typeCode: "",
|
||||
name: "",
|
||||
},
|
||||
};
|
||||
},
|
||||
created() {
|
||||
// 安卓消费接口
|
||||
// lqbrid.handleQrpay = this.handleQrpay;
|
||||
},
|
||||
methods: {
|
||||
// handleQrpayApi(code, type) {
|
||||
// const form = {
|
||||
// fee: this.fee,
|
||||
// ftid: this.infoDetail.ftTile.id,
|
||||
// channelid: this.infoDetail.ftUnit.channel_id,
|
||||
// code: code,
|
||||
// type: type,
|
||||
// };
|
||||
// this.$api.ftInfo.qrpay(form).then((res) => {
|
||||
// if (res && res.status == 1) {
|
||||
// this.resultInfo = res.data;
|
||||
// this.$emit("handleCloseAndOpen");
|
||||
// // 成功后移除方法
|
||||
// // delete lqbrid.handleQrpay;
|
||||
// } else {
|
||||
// this.defalutMsg = res.message;
|
||||
// setTimeout(() => {
|
||||
// this.defalutMsg = "请刷码或刷卡支付" + this.fee + "元";
|
||||
// }, 3000);
|
||||
// }
|
||||
// });
|
||||
// },
|
||||
|
||||
getResultInfo() {
|
||||
return this.resultInfo;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.wrapper {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.block {
|
||||
width: 60rem;
|
||||
height: 30rem;
|
||||
font-size: 4rem;
|
||||
background-color: #fff;
|
||||
}
|
||||
.dialog-center {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background: #cccccc;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,38 @@
|
|||
<template>
|
||||
<div>
|
||||
<table border="1" cellspacing="0" cellpadding="3">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>类型</th>
|
||||
<th>菜名</th>
|
||||
<th>价格</th>
|
||||
<th>份数</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(item, i) in userMealInfo" :key="i">
|
||||
<td>{{ item.meal_name }}</td>
|
||||
<td>{{ item.dish_name }}</td>
|
||||
<td>{{ item.dish_price }}元</td>
|
||||
<td>{{ item.dish_amount }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
userMealInfo: {
|
||||
type: Array,
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
table {
|
||||
margin: 0 auto;
|
||||
width: 85%;
|
||||
font-size: 2.8rem;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,27 @@
|
|||
<template>
|
||||
<div class="inside-notice-bar" style="font-size: 1px">
|
||||
<van-notice-bar scrollable :text="paomaStr" />
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
paomaStr: {
|
||||
type: String,
|
||||
default: ""
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style>
|
||||
.inside-notice-bar .van-notice-bar {
|
||||
font-size: 25px;
|
||||
}
|
||||
.inside-notice-bar .van-notice-bar .van-notice-bar__content {
|
||||
margin: 5px;
|
||||
}
|
||||
.notice-swipe {
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,3 @@
|
|||
export const formHeaders = { 'Content-type': 'application/x-www-form-urlencoded;charset=UTF-8' }
|
||||
export const formDataHeaders = { 'Content-Type': 'multipart/form-data; charset=UTF-8', "X-Requested-With": "XMLHttpRequest" }
|
||||
export const jsonHeaders = { 'Content-type': 'application/json;charset=UTF-8', 'Access-Control-Allow-Origin': '*' }
|
|
@ -0,0 +1,17 @@
|
|||
/**
|
||||
* 全局配置文件
|
||||
*/
|
||||
export default {
|
||||
title: '罗定中学饭堂',
|
||||
//http的status默认放行不采用统一处理的
|
||||
statusWhiteList: [],
|
||||
// isRefreshing: false,
|
||||
baseURL: '../../', // 基础URL
|
||||
timeout: 60 * 1000,
|
||||
//弹出的页面
|
||||
// shareSessionWhiteList: ["allPool", "detail", "linkList", "orderVisual"],
|
||||
// shareSystemWhiteList: ["orderVisual"],
|
||||
// fileTypeLimit: ["gif", "jpg", "jpeg", "bmp", "png", "7z", "rar", "zip", "txt", "pdf", "doc", "ppt", "xls", "csv", "docx", "pptx", "xlsx", "chm", "mp4"],
|
||||
// //上传的文件大小 100M
|
||||
// fileSize: 100
|
||||
};
|
|
@ -0,0 +1,29 @@
|
|||
import Vue from 'vue'
|
||||
import App from './App.vue'
|
||||
// 控制台
|
||||
// import vConsole from 'vconsole'
|
||||
// vant
|
||||
import Vant from 'vant';
|
||||
import { Notify } from 'vant';
|
||||
import { Toast } from 'vant';
|
||||
import 'vant/lib/index.css';
|
||||
|
||||
// router
|
||||
import router from './router'
|
||||
|
||||
// api
|
||||
import api from "./api"
|
||||
|
||||
// Vue.prototype.$vConsole = new vConsole();
|
||||
|
||||
Vue.use(Vant);
|
||||
Vue.prototype.$api = api;
|
||||
Vue.prototype.$notify = Notify;
|
||||
Vue.prototype.$toast = Toast;
|
||||
Vue.config.productionTip = false
|
||||
|
||||
new Vue({
|
||||
el: '#app',
|
||||
router,
|
||||
render: h => h(App),
|
||||
});
|
|
@ -0,0 +1,18 @@
|
|||
import Vue from 'vue';
|
||||
import Router from 'vue-router'
|
||||
|
||||
|
||||
Vue.use(Router);
|
||||
|
||||
|
||||
const routes = [
|
||||
{ path: '/', component: () => import("../view/home") },
|
||||
{ path: '/inside', component: () => import("../view/inside") },
|
||||
{ path: '/outside', component: () => import("../view/outside") }
|
||||
]
|
||||
|
||||
const router = new Router({
|
||||
routes
|
||||
})
|
||||
|
||||
export default router;
|
|
@ -0,0 +1,8 @@
|
|||
const lqbrid = {
|
||||
}
|
||||
window.Lqbrid = lqbrid
|
||||
if (window.Vue) { // 自动绑定
|
||||
window.Vue.use(lqbrid)
|
||||
}
|
||||
|
||||
export { lqbrid }
|
|
@ -0,0 +1,37 @@
|
|||
import axios from 'axios'
|
||||
// import router from '@/router'
|
||||
// import { Message } from 'element-ui'
|
||||
import website from '@/config/website'
|
||||
// import isPlainObject from 'lodash/isPlainObject'
|
||||
|
||||
export const isTest = process.env.NODE_ENV != "production"
|
||||
|
||||
export const baseURL = website.baseURL;
|
||||
|
||||
const axiosConfig = {
|
||||
baseURL: isTest ? '/api' : baseURL,
|
||||
// baseURL: 'http://192.168.137.1:9004',
|
||||
timeout: website.timeout,
|
||||
}
|
||||
const service = axios.create(axiosConfig)
|
||||
axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
|
||||
|
||||
// HTTPRequest拦截器
|
||||
service.interceptors.request.use(function (config) {
|
||||
// 在发送请求之前做些什么
|
||||
return config;
|
||||
}, function (error) {
|
||||
// 对请求错误做些什么
|
||||
return Promise.reject(error);
|
||||
});
|
||||
|
||||
// //HTTPResponse拦截器
|
||||
service.interceptors.response.use(
|
||||
res => {
|
||||
return res.data
|
||||
}, (error) => {
|
||||
return Promise.reject(new Error(error));
|
||||
}
|
||||
)
|
||||
|
||||
export default service
|
|
@ -0,0 +1,19 @@
|
|||
<template>
|
||||
<div class="home">
|
||||
<router-link to="/inside?channel_id=1">
|
||||
<van-button>Go to inside</van-button>
|
||||
</router-link>
|
||||
<router-link to="/outside">
|
||||
<van-button>Go to outside</van-button>
|
||||
</router-link>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {};
|
||||
</script>
|
||||
<style scoped>
|
||||
.home .home-button {
|
||||
margin: 5px;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,820 @@
|
|||
<template>
|
||||
<div>
|
||||
<div class="title">
|
||||
<div class="keypad_type">
|
||||
<!-- <span style="vertical-align: bottom;">当前键盘:</span>-->
|
||||
<!-- <van-button-->
|
||||
<!-- :type="keypadType==1 ? 'info' : 'default'"-->
|
||||
<!-- class="title-btn-all"-->
|
||||
<!-- >自带键盘</van-button-->
|
||||
<!-- >-->
|
||||
<!-- <van-button :type="keypadType==2 ? 'info' : 'default'" class="title-btn-all"-->
|
||||
<!-- >外置小键盘</van-button-->
|
||||
<!-- >-->
|
||||
</div>
|
||||
<div class="title-btn">
|
||||
<van-button
|
||||
:type="hideTable==0 ? 'info' : 'default'"
|
||||
class="title-btn-all"
|
||||
>取餐</van-button
|
||||
>
|
||||
<van-button :type="hideTable==1 ? 'info' : 'default'" class="title-btn-all"
|
||||
>消费</van-button
|
||||
>
|
||||
<van-button :type="hideTable==2 ? 'info' : 'default'" class="title-btn-all"
|
||||
>消费记录</van-button
|
||||
>
|
||||
<van-button :type="hideTable==3 ? 'info' : 'default'" class="title-btn-all" v-if="btnNum==3"
|
||||
>查看余额</van-button
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<div class="title" v-show="hideTable!=2">
|
||||
<div class="titlte-content" style="margin: auto">
|
||||
<h2>{{ title.ftTile.name }} {{ title.ftUnit.channel_name }}</h2>
|
||||
</div>
|
||||
</div>
|
||||
<!--取餐页面-->
|
||||
<div v-if="isTake==0" class="outside-take">
|
||||
<h2>{{ this.defaultMsg }}</h2>
|
||||
</div>
|
||||
<!--支付后的详情信息 和 消费输入框-->
|
||||
<div v-else-if="isTake==1" class="inside-table">
|
||||
<meal-controller
|
||||
:hideTable="hideTable"
|
||||
:userMealInfo="userMealInfo"
|
||||
:isTake="isTake"
|
||||
:infoDetail="title"
|
||||
:takeStatus="takeStatus"
|
||||
:companyId="companyId"
|
||||
@handleInit="handleInit"
|
||||
ref="mealController"
|
||||
></meal-controller>
|
||||
</div>
|
||||
<div v-if="hideTable==0" class="inside-footer">
|
||||
<h4 v-show="isTake">{{ userInfo.username }}</h4>
|
||||
<notice-bar :paomaStr="paomaStr"></notice-bar>
|
||||
</div>
|
||||
<van-overlay :show="showLoading">
|
||||
<div class="wrapper-loading">
|
||||
<van-loading type="spinner" />
|
||||
</div>
|
||||
</van-overlay>
|
||||
|
||||
<!--消费记录-->
|
||||
<div v-if="hideTable==2" class="outside-take">
|
||||
<h4 style="margin: 1rem 0">今天共收入:<span>{{ allConsumePrice }}</span></h4>
|
||||
<div class="consume_list" ref="consume">
|
||||
<table ref="consumeTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>姓名</th>
|
||||
<th>金额</th>
|
||||
<th>扣费时间</th>
|
||||
<th style="width: 1rem">|</th>
|
||||
<th>姓名</th>
|
||||
<th>金额</th>
|
||||
<th>扣费时间</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody v-html="consumeListHtml">
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="hideTable==3" class="outside-take">
|
||||
<h4 v-if="JSON.stringify(cardNoInfo)=='{}'">请刷卡查看余额</h4>
|
||||
<div v-else>
|
||||
<div class="user_info_table" ref="consume" style="margin: auto">
|
||||
<table>
|
||||
<tr>
|
||||
<td>姓名:</td>
|
||||
<td>{{cardNoInfo.username}}</td>
|
||||
</tr>
|
||||
<tr v-if="cardNoInfo.cardNo != '' && cardNoInfo.cardNo != '-'">
|
||||
<td>卡号:</td>
|
||||
<td>{{cardNoInfo.cardNo}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>余额:</td>
|
||||
<td style="color: green">{{cardNoInfo.ye}}元</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" style="text-align: center;font-size: 2rem;padding-top: 20px">{{cardNoCountdownSecond}} 秒后自动退出</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import mealController from "./meal-controller";
|
||||
import noticeBar from "@/components/notice-bar/index.vue";
|
||||
import { lqbrid } from "@/utils/app.js";
|
||||
export default {
|
||||
components: {
|
||||
mealController,
|
||||
noticeBar,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
hideTable: false,
|
||||
isTake: false,
|
||||
title: {
|
||||
ftTile: {},
|
||||
ftUnit: {},
|
||||
},
|
||||
ftAllList: [],
|
||||
userMealInfo: [],
|
||||
userInfo: {},
|
||||
paomaStr: "",
|
||||
|
||||
currentFtInfo: {},
|
||||
|
||||
defaultMsg: "请刷卡/刷脸/刷付款码取餐",
|
||||
|
||||
faceCode: "",
|
||||
icCode: "",
|
||||
|
||||
takeStatus: 0,
|
||||
|
||||
showLoading: false,
|
||||
// keypadType: 1,
|
||||
allConsumePrice: '-',
|
||||
consumeList: [],
|
||||
consumeListHtml: '',
|
||||
timer: null,
|
||||
scrollTop: 0,
|
||||
cardNoInfo: {}, // 查看余额接口返回的对象数据
|
||||
cardNoCountdownSecond: 10, // 查看余额倒计时秒数
|
||||
yeTimer: null, // 余额倒计时对象
|
||||
uname: '', // 分支标记UNIQUE_NAME
|
||||
companyId: 0,
|
||||
btnNum: 2, // 右上角的按钮数
|
||||
|
||||
feeLog: '',
|
||||
}
|
||||
},
|
||||
|
||||
watch: {
|
||||
faceCode: {
|
||||
handler(val) {
|
||||
if (val) {
|
||||
if (this.hideTable==1) {
|
||||
this.$refs.mealController.handleQrpayApi(val, "face", this.feeLog);
|
||||
} else if(this.hideTable==0) {
|
||||
this.getFaceTakeCode();
|
||||
}else if(this.hideTable==3){
|
||||
this.getFaceTakeCode();
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
icCode: {
|
||||
handler(val) {
|
||||
if (val) {
|
||||
if (this.hideTable==1) {
|
||||
this.$refs.mealController.handleQrpayApi(val, "ic", this.feeLog);
|
||||
} else if(this.hideTable==0) {
|
||||
this.getIcTakeCode();
|
||||
} else if(this.hideTable == 3){
|
||||
this.getIcTakeCode();
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
hideTable: {
|
||||
handler(val){
|
||||
let _this = this;
|
||||
let channel_id = this.$route.query.channel_id;
|
||||
if(val == 2){
|
||||
if(_this.timer == null){
|
||||
_this.getConsumeList(channel_id)
|
||||
_this.timer = setInterval(function (){
|
||||
_this.getConsumeList(channel_id)
|
||||
}, 1500)
|
||||
}
|
||||
}else{
|
||||
if(_this.timer != null){
|
||||
_this.timer = clearInterval(_this.timer);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 人脸识别
|
||||
getFaceTakeCode() {
|
||||
if (!this.faceCode) {
|
||||
return;
|
||||
}
|
||||
this.userMealInfo = [];
|
||||
|
||||
if(this.hideTable == 3) {
|
||||
// 查看信息
|
||||
this.$api.ftInfo
|
||||
.faceUserInfo({
|
||||
facecard: this.faceCode,
|
||||
})
|
||||
.then((res) => {
|
||||
this.cardNoCountdown();
|
||||
if (res.status == 1) {
|
||||
this.cardNoInfo = res.data.user;
|
||||
} else {
|
||||
this.isTake = false;
|
||||
this.defaultMsg = res.message;
|
||||
}
|
||||
});
|
||||
}else{
|
||||
this.$api.ftInfo
|
||||
.facegetcode({
|
||||
dining_hall_id: this.title.ftTile.id,
|
||||
facecard: this.faceCode,
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.status == 1) {
|
||||
this.renderData(res.data);
|
||||
} else {
|
||||
this.isTake = false;
|
||||
this.defaultMsg = res.message;
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
// 根据FACE获取code
|
||||
facegetcode(code) {
|
||||
try {
|
||||
this.faceCode = "";
|
||||
setTimeout(() => {
|
||||
this.faceCode = code;
|
||||
}, 0);
|
||||
return code;
|
||||
} catch (e) {
|
||||
return e;
|
||||
}
|
||||
},
|
||||
|
||||
// 根据IC卡获取code
|
||||
icgetcode(code) {
|
||||
try {
|
||||
this.icCode = "";
|
||||
setTimeout(() => {
|
||||
this.icCode = code;
|
||||
}, 0);
|
||||
return code;
|
||||
} catch (e) {
|
||||
return e;
|
||||
}
|
||||
},
|
||||
// ic卡识别
|
||||
getIcTakeCode() {
|
||||
if (!this.icCode) {
|
||||
return;
|
||||
}
|
||||
this.userMealInfo = [];
|
||||
// 9999999991
|
||||
if(this.hideTable == 3){
|
||||
// 查看信息
|
||||
this.$api.ftInfo
|
||||
.icUserInfo({
|
||||
cardno: this.icCode,
|
||||
})
|
||||
.then((res) => {
|
||||
this.cardNoCountdown();
|
||||
if (res.status == 1) {
|
||||
this.cardNoInfo = res.data.user;
|
||||
} else {
|
||||
this.isTake = false;
|
||||
this.defaultMsg = res.message;
|
||||
}
|
||||
});
|
||||
}else{
|
||||
this.$api.ftInfo
|
||||
.icgetcode({
|
||||
dining_hall_id: this.title.ftTile.id,
|
||||
cardno: this.icCode,
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.status == 1) {
|
||||
this.renderData(res.data);
|
||||
} else {
|
||||
this.isTake = false;
|
||||
this.defaultMsg = res.message;
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
cardNoCountdown(){
|
||||
var _this = this;
|
||||
// 要是有新的倒数,更新秒数
|
||||
clearInterval(this.yeTimer);
|
||||
_this.cardNoCountdownSecond = 10;
|
||||
this.yeTimer = setInterval(function (){
|
||||
_this.cardNoCountdownSecond--;
|
||||
if(_this.cardNoCountdownSecond == 0){
|
||||
clearInterval(_this.yeTimer);
|
||||
_this.cardNoInfo = {}
|
||||
_this.cardNoCountdownSecond = 10;
|
||||
}
|
||||
}, 1000);
|
||||
},
|
||||
// 二维码code
|
||||
qrCode(code) {
|
||||
const getDCode = code.split("]")[1].split(",")[0];
|
||||
try {
|
||||
setTimeout(() => {
|
||||
if (this.hideTable==1) {
|
||||
this.$refs.mealController.handleQrpayApi(getDCode, "qr", this.feeLog);
|
||||
} else if(this.hideTable==0) {
|
||||
this.handleTake(getDCode);
|
||||
}
|
||||
}, 0);
|
||||
return code;
|
||||
} catch (e) {
|
||||
return e;
|
||||
}
|
||||
},
|
||||
|
||||
// 重组take_code
|
||||
renderData(data) {
|
||||
if (data.take_code.length > 0 || data.take_code != '') {
|
||||
this.handleTake(data.take_code);
|
||||
} else {
|
||||
this.isTake = false;
|
||||
this.defaultMsg = "当前暂无餐可取";
|
||||
}
|
||||
},
|
||||
|
||||
// 处理获取取餐的数据
|
||||
handleTake(code) {
|
||||
this.takeStatus = 0;
|
||||
this.$api.ftInfo
|
||||
.take({
|
||||
channelid: this.title.ftUnit.channel_id,
|
||||
dining_hall_id: this.title.ftTile.id,
|
||||
take_code: code,
|
||||
})
|
||||
.then((res) => {
|
||||
if (res && res.status == 1) {
|
||||
this.isTake = true;
|
||||
|
||||
// 跑马灯字符串
|
||||
this.paomaStr = this.resetPaomaLis(res.data.list);
|
||||
this.userInfo = res.data.user;
|
||||
} else {
|
||||
this.isTake = false;
|
||||
this.defaultMsg = res.message;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// 获取所有饭堂窗口信息
|
||||
getFtInfo() {
|
||||
// 获取url的ID
|
||||
this.showLoading = true;
|
||||
const id = this.$route.query.channel_id;
|
||||
const ft_id = this.$route.query.ft_id;
|
||||
this.$api.ftInfo
|
||||
.chkserver(ft_id)
|
||||
.then((res) => {
|
||||
this.showLoading = false;
|
||||
if (res && res.status == 1) {
|
||||
this.companyId = res.data.company_id;
|
||||
// if(this.companyId == 'dlsyzx'){
|
||||
// this.btnNum = 3;
|
||||
// }else{
|
||||
this.btnNum = 2;
|
||||
// }
|
||||
// 获取饭堂名
|
||||
const ftList = res.data.dining_hall_ids.find(
|
||||
(item) => item.id == ft_id
|
||||
);
|
||||
if (!ftList) {
|
||||
this.defaultMsg = "请设置正确的饭堂信息";
|
||||
// console.log("没有该饭堂");
|
||||
// 清除方法
|
||||
lqbrid = {};
|
||||
return;
|
||||
}
|
||||
this.title.ftTile = ftList;
|
||||
// 获取所有饭堂窗口
|
||||
this.ftAllList = ftList.channel_ids;
|
||||
// 查找当前饭堂ID
|
||||
this.title.ftUnit = this.ftAllList.find(
|
||||
(item) => item.channel_id == id
|
||||
);
|
||||
} else {
|
||||
// console.log("饭堂信息返回失败");
|
||||
}
|
||||
})
|
||||
.catch((e) => {
|
||||
console.log(e);
|
||||
this.showLoading = false;
|
||||
});
|
||||
},
|
||||
|
||||
// 重组跑马灯数据
|
||||
resetPaomaLis(list) {
|
||||
this.userMealInfo = [];
|
||||
let allStr = "";
|
||||
const dataMeal = [];
|
||||
list.forEach((item) => {
|
||||
let str = "";
|
||||
let obj = {};
|
||||
// 判断取餐状态
|
||||
|
||||
this.takeStatus = item.take_status;
|
||||
item.rest_info.forEach((rest) => {
|
||||
str += rest.dish_name + " 剩:" + rest.rest_num + "份 ";
|
||||
});
|
||||
item.order_detail.forEach((order) => {
|
||||
obj = {
|
||||
meal_name: item.meal_name,
|
||||
dish_name: order.dish_name,
|
||||
dish_price: order.dish_price,
|
||||
dish_amount: order.dish_amount,
|
||||
};
|
||||
dataMeal.push(obj);
|
||||
});
|
||||
allStr += " " + item.meal_name + ":" + str + " ";
|
||||
});
|
||||
this.userMealInfo = dataMeal;
|
||||
return allStr;
|
||||
},
|
||||
|
||||
// 按键发生的事件
|
||||
keyDown(code) {
|
||||
// alert(code)
|
||||
// 切换当前键盘
|
||||
// if(code == 154 || code == 133){
|
||||
// this.keypadType = this.keypadType===1 ? 2 : 1;
|
||||
// localStorage.setItem('keypadType', this.keypadType)
|
||||
// }
|
||||
// 切换 取餐/消费/消费记录
|
||||
if(code == 155 || code == 277){
|
||||
this.feeLog = '';
|
||||
if(this.hideTable == this.btnNum){
|
||||
this.hideTable = 0
|
||||
}else{
|
||||
this.hideTable = this.hideTable + 1;
|
||||
}
|
||||
localStorage.setItem('keypadType', this.hideTable)
|
||||
this.isTake = this.hideTable;
|
||||
}
|
||||
// 处理输入金额
|
||||
// if(this.keypadType == 2) {
|
||||
// 外置小键盘
|
||||
const arrNum = require("./json/keycode.json");
|
||||
// const getNumIndex = arrNum.find((item) => {
|
||||
// item.keyCode == code
|
||||
// console.log(item)
|
||||
// });
|
||||
if(this.hideTable == 1){
|
||||
arrNum.find((item) => {
|
||||
const keyCodeArr = item.keyCode.split("|");
|
||||
if(keyCodeArr.indexOf(code) != -1){
|
||||
this.$refs.mealController.handleRef(item.value)
|
||||
this.feeLog = this.feeLog.concat(item.value);
|
||||
return;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if(this.hideTable == 2){
|
||||
if(code == '156' || code == '92'){
|
||||
if(this.scrollTop <=0){
|
||||
return;
|
||||
}
|
||||
this.scrollTop -= 50;
|
||||
// 向上
|
||||
// this.$refs.consume.scrollTo(0, this.scrollTop);
|
||||
this.$refs.consume.scrollTop = this.scrollTop;
|
||||
return;
|
||||
}else if(code == '157' || code == '93'){
|
||||
const h = this.$refs.consume.offsetHeight;
|
||||
const offsetH = this.$refs.consumeTable.offsetHeight;
|
||||
if(this.scrollTop >= (offsetH-h)){
|
||||
return;
|
||||
}
|
||||
this.scrollTop += 50;
|
||||
// 向下
|
||||
// this.$refs.consume.scrollTo(this.scrollTop, this.scrollTop);
|
||||
this.$refs.consume.scrollTop = this.scrollTop;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// if(_this.hideTable == 2){
|
||||
// console.log(code)
|
||||
// if(code == '156' || code == '92' || code == '109'){
|
||||
// // 向上
|
||||
// console.log('向上')
|
||||
// _this.$refs.consume.scrollTo(0,0);
|
||||
// return;
|
||||
// }else if(code == '157' || code == '93' || code == '107'){
|
||||
// console.log('向下')
|
||||
//
|
||||
// // 向下
|
||||
// _this.$refs.consume.scrollTo(500,500);
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (getNumIndex) {
|
||||
// getNumIndex.value;
|
||||
// this.hideTable
|
||||
// ? this.$refs.mealController.handleRef(getNumIndex.value)
|
||||
// : null;
|
||||
// return;
|
||||
// }
|
||||
switch (code) {
|
||||
// case "111":
|
||||
// this.hideTable = !this.hideTable;
|
||||
// this.isTake = this.hideTable;
|
||||
// this.defaultMsg = "请刷卡/刷脸/刷付款码取餐";
|
||||
// return "键位:" + code + "切换功能";
|
||||
// case "106":
|
||||
// this.hideTable = !this.hideTable;
|
||||
// this.isTake = this.hideTable;
|
||||
// this.defaultMsg = "请刷卡/刷脸/刷付款码取餐";
|
||||
// return "键位:" + code + "切换功能";
|
||||
case "92":
|
||||
case "156":
|
||||
this.feeLog = '';
|
||||
this.hideTable ? this.$refs.mealController.handleForward() : null;
|
||||
return "键位:" + code + "一键录入功能 上一个";
|
||||
case "93":
|
||||
case "157":
|
||||
this.feeLog = '';
|
||||
this.hideTable ? this.$refs.mealController.handleNext() : null;
|
||||
return "键位:" + code + "一键录入功能 获取焦点 下一个";
|
||||
case "66":
|
||||
this.hideTable ? this.$refs.mealController.handleCofirm(this.feeLog) : null;
|
||||
return "键位:" + code + "确认功能";
|
||||
case "67":
|
||||
this.hideTable ? this.$refs.mealController.hadnleInit() : null;
|
||||
this.defaultMsg = "请刷卡/刷脸/刷付款码取餐";
|
||||
// 把金额记录归0
|
||||
this.feeLog = '';
|
||||
return "键位:" + code + "数据初始化";
|
||||
default:
|
||||
return "键位:" + code + "调用成功";
|
||||
}
|
||||
|
||||
// }else{
|
||||
// // 自带键盘
|
||||
// const arrNum = require("./json/keycode.json");
|
||||
// try {
|
||||
// const getNumIndex = arrNum.find((item) => item.keyCode == code);
|
||||
// if (getNumIndex) {
|
||||
// getNumIndex.value;
|
||||
// this.hideTable
|
||||
// ? this.$refs.mealController.handleRef(getNumIndex.value)
|
||||
// : null;
|
||||
// return;
|
||||
// }
|
||||
// switch (code) {
|
||||
// // case "277":
|
||||
// // this.hideTable = !this.hideTable;
|
||||
// // this.isTake = this.hideTable;
|
||||
// // this.defaultMsg = "请刷卡/刷脸/刷付款码取餐";
|
||||
// // return "键位:" + code + "切换功能";
|
||||
// case "93":
|
||||
// this.hideTable ? this.$refs.mealController.handleNext() : null;
|
||||
// return "键位:" + code + "一键录入功能 获取焦点 下一个";
|
||||
// case "92":
|
||||
// this.hideTable ? this.$refs.mealController.handleForward() : null;
|
||||
// return "键位:" + code + "一键录入功能 上一个";
|
||||
// case "66":
|
||||
// this.hideTable ? this.$refs.mealController.handleCofirm() : null;
|
||||
// return "键位:" + code + "确认功能";
|
||||
// case "67":
|
||||
// this.hideTable ? this.$refs.mealController.hadnleInit() : null;
|
||||
// this.defaultMsg = "请刷卡/刷脸/刷付款码取餐";
|
||||
// return "键位:" + code + "数据初始化";
|
||||
// default:
|
||||
// return "键位:" + code + "调用成功";
|
||||
// }
|
||||
// } catch (e) {
|
||||
// console.log(e);
|
||||
//
|
||||
// return e;
|
||||
// }
|
||||
// }
|
||||
},
|
||||
|
||||
// 给meal-pay使用,清空付款金额
|
||||
handleInit(){
|
||||
this.feeLog = '';
|
||||
},
|
||||
|
||||
// 决定取餐还是消费
|
||||
handleQC() {
|
||||
this.hideTable = !this.hideTable;
|
||||
},
|
||||
// 定时获取消费记录
|
||||
getConsumeList(channel_id){
|
||||
this.$api.ftInfo
|
||||
.getConsumeList(channel_id)
|
||||
.then((res) => {
|
||||
if (res.status == 1) {
|
||||
this.consumeList.splice(0, 50);
|
||||
this.allConsumePrice = res.data.all_consume_price+' 元';
|
||||
|
||||
this.consumeListHtml = '';
|
||||
if(res.data.consume_list.length <= 0){
|
||||
const list = [{
|
||||
'username': '-',
|
||||
'recharge_amount': '-',
|
||||
'record_datetime_short': '-'},
|
||||
{
|
||||
'username': '-',
|
||||
'recharge_amount': '-',
|
||||
'record_datetime_short': '-',
|
||||
}];
|
||||
this.consumeList.push(...list);
|
||||
}else{
|
||||
this.consumeList.push(...res.data.consume_list);
|
||||
}
|
||||
for (let x in this.consumeList){
|
||||
if(x%2==0){
|
||||
this.consumeListHtml += '<tr>';
|
||||
}
|
||||
this.consumeListHtml+='<td>'+this.consumeList[x].username+'</td><td>'+this.consumeList[x].recharge_amount+'</td><td>'+this.consumeList[x].record_datetime_short+'</td>'
|
||||
if(x%2==0){
|
||||
this.consumeListHtml+='<td>|</td>';
|
||||
}
|
||||
if(x%2==1){
|
||||
this.consumeListHtml+='</tr>';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.$toast.fail('获取消费记录异常');
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
// window.onkeydown = this.keyDown;
|
||||
// init
|
||||
const keypadType = localStorage.getItem('keypadType');
|
||||
if(keypadType){
|
||||
this.keypadType = keypadType;
|
||||
}
|
||||
|
||||
await this.getFtInfo();
|
||||
// 部署全局的方法给安卓调用
|
||||
lqbrid.facegetcode = this.facegetcode;
|
||||
lqbrid.icgetcode = this.icgetcode;
|
||||
lqbrid.keyDown = this.keyDown;
|
||||
lqbrid.qrCode = this.qrCode;
|
||||
},
|
||||
mounted(){
|
||||
const _this = this;
|
||||
document.onkeydown = function() {
|
||||
let code = window.event.keyCode;
|
||||
// console.log(code)
|
||||
if(code == 111){
|
||||
// 切换键盘
|
||||
_this.keypadType = _this.keypadType==1 ? 2 : 1;
|
||||
localStorage.setItem('keypadType', _this.keypadType)
|
||||
}
|
||||
if(code == 106){
|
||||
// 把金额记录归0
|
||||
_this.feeLog = '';
|
||||
// 消费
|
||||
// _this.hideTable = !_this.hideTable;
|
||||
// _this.isTake = _this.hideTable;
|
||||
if(_this.hideTable == _this.btnNum){
|
||||
_this.hideTable = 0
|
||||
}else{
|
||||
_this.hideTable = _this.hideTable + 1;
|
||||
}
|
||||
_this.isTake = _this.hideTable;
|
||||
}
|
||||
|
||||
|
||||
// if(_this.hideTable == 2){
|
||||
// console.log(code)
|
||||
// if(code == '156' || code == '92' || code == '109'){
|
||||
// // 向上
|
||||
// console.log('向上')
|
||||
// _this.$refs.consume.scrollTo(0,0);
|
||||
// return;
|
||||
// }else if(code == '157' || code == '93' || code == '107'){
|
||||
// console.log('向下')
|
||||
//
|
||||
// // 向下
|
||||
// _this.$refs.consume.scrollTo(500,500);
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
};
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
/* head */
|
||||
.title {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 0 5rem;
|
||||
}
|
||||
.title .titlte-content {
|
||||
display: flex;
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
|
||||
.title .title-btn .title-btn-all {
|
||||
margin: 0.5rem;
|
||||
border-radius: 10px;
|
||||
height: 4rem;
|
||||
}
|
||||
|
||||
/* main */
|
||||
.outside-take {
|
||||
font-size: 3rem;
|
||||
}
|
||||
.inside-table {
|
||||
padding: 1rem 0;
|
||||
}
|
||||
|
||||
/* footer */
|
||||
.inside-footer {
|
||||
padding: 0 5rem;
|
||||
text-align: left;
|
||||
position: absolute;
|
||||
bottom: 1rem;
|
||||
width: 85%;
|
||||
}
|
||||
.inside-footer h4 {
|
||||
font-size: 3rem;
|
||||
margin: 0.5rem 0;
|
||||
}
|
||||
|
||||
/* loadgin */
|
||||
.wrapper-loading {
|
||||
height: 100%;
|
||||
}
|
||||
.wrapper-loading .van-loading {
|
||||
top: 50%;
|
||||
}
|
||||
.keypad_type{
|
||||
font-size: 2rem;
|
||||
}
|
||||
.keypad_type button{
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
.consume_list{
|
||||
width: 80%;
|
||||
height: 60vh;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
.consume_list table{
|
||||
width: 80%;
|
||||
margin-left: 10%;
|
||||
}
|
||||
.consume_list table thead th{
|
||||
font-size: 1.8rem;
|
||||
text-align: center;
|
||||
margin-top: 1.5rem;
|
||||
line-height: 3rem;
|
||||
}
|
||||
.consume_list table tr{
|
||||
line-height: 3rem;
|
||||
}
|
||||
.user_info_table{
|
||||
width: 80%;
|
||||
height: 60vh;
|
||||
margin: auto;
|
||||
}
|
||||
.user_info_table table{
|
||||
width: 60%;
|
||||
margin-left: 25%;
|
||||
}
|
||||
.user_info_table table tr{
|
||||
line-height: 5rem;
|
||||
}
|
||||
.user_info_table table td{
|
||||
font-size: 2.5rem;
|
||||
text-align: center;
|
||||
font-weight: normal;
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
.title .title-btn .van-button--normal {
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
.consume_list table tr{
|
||||
line-height: 3rem;
|
||||
}
|
||||
.consume_list table td{
|
||||
font-size: 1.8rem;
|
||||
text-align: center;
|
||||
font-weight: normal;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,46 @@
|
|||
[
|
||||
{
|
||||
"keyCode": "7|144",
|
||||
"value": "0"
|
||||
},
|
||||
{
|
||||
"keyCode": "8|145",
|
||||
"value": "1"
|
||||
},
|
||||
{
|
||||
"keyCode": "9|146",
|
||||
"value": "2"
|
||||
},
|
||||
{
|
||||
"keyCode": "10|147",
|
||||
"value": "3"
|
||||
},
|
||||
{
|
||||
"keyCode": "11|148",
|
||||
"value": "4"
|
||||
},
|
||||
{
|
||||
"keyCode": "12|149",
|
||||
"value": "5"
|
||||
},
|
||||
{
|
||||
"keyCode": "13|150",
|
||||
"value": "6"
|
||||
},
|
||||
{
|
||||
"keyCode": "14|151",
|
||||
"value": "7"
|
||||
},
|
||||
{
|
||||
"keyCode": "15|152",
|
||||
"value": "8"
|
||||
},
|
||||
{
|
||||
"keyCode": "16|153",
|
||||
"value": "9"
|
||||
},
|
||||
{
|
||||
"keyCode": "131|158",
|
||||
"value": "."
|
||||
}
|
||||
]
|