| | |
| | | "@types/node": "*" |
| | | } |
| | | }, |
| | | "@vant/icons": { |
| | | "version": "1.8.0", |
| | | "resolved": "https://mirrors.cloud.tencent.com/npm/@vant%2ficons/-/icons-1.8.0.tgz", |
| | | "integrity": "sha512-sKfEUo2/CkQFuERxvkuF6mGQZDKu3IQdj5rV9Fm0weJXtchDSSQ+zt8qPCNUEhh9Y8shy5PzxbvAfOOkCwlCXg==" |
| | | }, |
| | | "@vant/popperjs": { |
| | | "version": "1.3.0", |
| | | "resolved": "https://mirrors.cloud.tencent.com/npm/@vant%2fpopperjs/-/popperjs-1.3.0.tgz", |
| | | "integrity": "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw==" |
| | | }, |
| | | "@vue/babel-helper-vue-jsx-merge-props": { |
| | | "version": "1.0.0", |
| | | "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.0.0.tgz", |
| | | "integrity": "sha512-6tyf5Cqm4m6v7buITuwS+jHzPlIPxbFzEhXR5JGZpbrvOcp1hiQKckd305/3C7C36wFekNTQSxAtgeM0j0yoUw==", |
| | | "dev": true |
| | | "integrity": "sha512-6tyf5Cqm4m6v7buITuwS+jHzPlIPxbFzEhXR5JGZpbrvOcp1hiQKckd305/3C7C36wFekNTQSxAtgeM0j0yoUw==" |
| | | }, |
| | | "@vue/babel-plugin-transform-vue-jsx": { |
| | | "version": "1.1.2", |
| | |
| | | "dev": true, |
| | | "requires": { |
| | | "object.assign": "^4.1.0" |
| | | } |
| | | }, |
| | | "babel-plugin-import": { |
| | | "version": "1.13.5", |
| | | "resolved": "https://mirrors.cloud.tencent.com/npm/babel-plugin-import/-/babel-plugin-import-1.13.5.tgz", |
| | | "integrity": "sha512-IkqnoV+ov1hdJVofly9pXRJmeDm9EtROfrc5i6eII0Hix2xMs5FEm8FG3ExMvazbnZBbgHIt6qdO8And6lCloQ==", |
| | | "dev": true, |
| | | "requires": { |
| | | "@babel/helper-module-imports": "^7.0.0" |
| | | } |
| | | }, |
| | | "babel-plugin-module-resolver": { |
| | |
| | | "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" |
| | | }, |
| | | "moment": { |
| | | "version": "2.26.0", |
| | | "resolved": "https://registry.npmjs.org/moment/-/moment-2.26.0.tgz", |
| | | "integrity": "sha512-oIixUO+OamkUkwjhAVE18rAMfRJNsNe/Stid/gwHSOfHrOtw9EhAY2AHvdKZ/k/MggcYELFCJz/Sn2pL8b8JMw==" |
| | | "version": "2.29.4", |
| | | "resolved": "https://mirrors.cloud.tencent.com/npm/moment/-/moment-2.29.4.tgz", |
| | | "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" |
| | | }, |
| | | "morgan": { |
| | | "version": "1.10.0", |
| | |
| | | "resolved": "https://registry.npmjs.org/validate.js/-/validate.js-0.13.1.tgz", |
| | | "integrity": "sha512-PnFM3xiZ+kYmLyTiMgTYmU7ZHkjBZz2/+F0DaALc/uUtVzdCt1wAosvYJ5hFQi/hz8O4zb52FQhHZRC+uVkJ+g==" |
| | | }, |
| | | "vant": { |
| | | "version": "2.12.53", |
| | | "resolved": "https://mirrors.cloud.tencent.com/npm/vant/-/vant-2.12.53.tgz", |
| | | "integrity": "sha512-f/wSWMCm/fd8bvm2QfPkpPqYUn8gwmBGw3DxAUPSTd/5prc1cRn23HEak8LDMJ5FmfW9mp7G5vdGlnEYCtww8Q==", |
| | | "requires": { |
| | | "@babel/runtime": "7.x", |
| | | "@vant/icons": "^1.7.1", |
| | | "@vant/popperjs": "^1.1.0", |
| | | "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", |
| | | "vue-lazyload": "1.2.3" |
| | | } |
| | | }, |
| | | "vary": { |
| | | "version": "1.1.2", |
| | | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", |
| | |
| | | "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", |
| | | "dev": true |
| | | }, |
| | | "vue-lazyload": { |
| | | "version": "1.2.3", |
| | | "resolved": "https://mirrors.cloud.tencent.com/npm/vue-lazyload/-/vue-lazyload-1.2.3.tgz", |
| | | "integrity": "sha512-DC0ZwxanbRhx79tlA3zY5OYJkH8FYp3WBAnAJbrcuoS8eye1P73rcgAZhyxFSPUluJUTelMB+i/+VkNU/qVm7g==" |
| | | }, |
| | | "vue-loader": { |
| | | "version": "15.9.2", |
| | | "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.2.tgz", |
| | |
| | | "axios": "^0.18.0", |
| | | "babel-polyfill": "^6.26.0", |
| | | "element-ui": "^2.13.1", |
| | | "jquery": "^3.5.1", |
| | | "mavon-editor": "^2.6.17", |
| | | "moment": "^2.29.4", |
| | | "node-sass": "^4.14.1", |
| | | "qs": "^6.9.4", |
| | | "sass-loader": "^10.0.4", |
| | | "v-distpicker": "^1.2.1", |
| | | "vant": "^2.12.53", |
| | | "view-design": "^4.2.0", |
| | | "jquery": "^3.5.1", |
| | | "qs": "^6.9.4", |
| | | "vue": "^2.5.21", |
| | | "vue-cropperjs": "^3.0.0", |
| | | "vue-quill-editor": "^3.0.6", |
| | |
| | | "devDependencies": { |
| | | "@vue/cli-plugin-babel": "^3.9.0", |
| | | "@vue/cli-service": "^3.9.0", |
| | | "babel-plugin-import": "^1.13.5", |
| | | "lib-flexible": "^0.3.2", |
| | | "vue-template-compiler": "^2.6.10" |
| | | } |
| | |
| | | vm.$router.push({'path': '/login'}); |
| | | vm.$alert('会话结束,请重新登录', {'title': '提示', 'type': 'warning', 'center': true, 'showClose': false}); |
| | | }else{ |
| | | vm.$alert('操作失败' , {'title': '提示', 'type': 'warning', 'center': true, 'showClose': false}); |
| | | vm.$alert('操作错误' , {'title': '提示', 'type': 'warning', 'center': true, 'showClose': false}); |
| | | } |
| | | } |
| | | }).catch((e) => { |
| | |
| | | name: '收费规则管理', |
| | | indexUrl: 'costRule' |
| | | }, |
| | | { |
| | | id:9, |
| | | icon: 'el-icon-document', |
| | | name: '订单统计', |
| | | indexUrl: 'orderRecord' |
| | | }, |
| | | // { |
| | | // id:3, |
| | | // icon: 'el-icon-folder-opened', |
| | |
| | | <!--<el-input v-model="statisticData.code" readonly></el-input>--> |
| | | </el-form-item> |
| | | <el-form-item style="display: flex;justify-content: center;margin-top: 4.498vh" label-width="0" v-show="showFlag"> |
| | | <el-button class="jiaofei-btn" type="primary" @click="pay()">去缴费</el-button> |
| | | <el-button class="jiaofei-btn" type="primary" @click="pay()" :loading="payFlag">去缴费</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-form label-width="100px" label-position="left"> |
| | |
| | | name: 'dashboard', |
| | | data() { |
| | | return { |
| | | payFlag:false, |
| | | outParkId:"", |
| | | statisticData:{ |
| | | |
| | |
| | | this.code2 = cs.code; |
| | | this.$byutil.postData(this, this.$systemconfig.basePath + '/outPark/findByBarrierCode', {code:cs.code}, res => { |
| | | this.statisticData = res.data; |
| | | this.statisticData.enterTime = this.dateFormat('yyyy-MM-dd HH:mm:ss',this.statisticData.enterTime) |
| | | this.statisticData.createTime = this.dateFormat('yyyy-MM-dd HH:mm:ss',this.statisticData.createTime) |
| | | this.outParkId = this.statisticData.id; |
| | | this.status3 = this.statisticData.status3; |
| | | this.payFlag = false |
| | | if(this.status3==1){ |
| | | this.$message({ |
| | | message: '您有违章未处理,请先处理或联系停车场管理人员', |
| | |
| | | }, |
| | | methods: { |
| | | pay(){ |
| | | this.payFlag = true; |
| | | if(this.status3==1){ |
| | | this.$message({ |
| | | message: '您有违章未处理,请先处理或联系停车场管理人员', |
| | | type: 'error', |
| | | duration:5000, |
| | | duration:3000, |
| | | }); |
| | | return; |
| | | } |
| | | this.$byutil.postData(this, this.$systemconfig.basePath + '/ffPay/park', {id:this.outParkId}, res => { |
| | | this.$message({ |
| | | message: '10秒后自动跳转到支付页面,防止内外网数据同步延迟,请稍等', |
| | | message: '2秒后自动跳转到支付页面,防止内外网数据同步延迟,请稍等', |
| | | type: 'success', |
| | | duration:10000, |
| | | duration:2000, |
| | | }); |
| | | setTimeout(function(){window.location.href = res.data.obj;},10000); |
| | | setTimeout(function(){window.location.href = res.msg;},2000); |
| | | this.showFlag = false; |
| | | }) |
| | | }, |
| | |
| | | } |
| | | |
| | | }, |
| | | dateFormat(fmt, date) { |
| | | let ret |
| | | const opt = { |
| | | 'y+': date.getFullYear().toString(), // 年 |
| | | 'M+': (date.getMonth() + 1).toString(), // 月 |
| | | 'd+': date.getDate().toString(), // 日 |
| | | 'H+': date.getHours().toString(), // 时 |
| | | 'm+': date.getMinutes().toString(), // 分 |
| | | 's+': date.getSeconds().toString(), // 秒 |
| | | // 有其他格式化字符需求可以继续添加,必须转化成字符串 |
| | | } |
| | | for (let k in opt) { |
| | | ret = new RegExp('(' + k + ')').exec(fmt) |
| | | if (ret) { |
| | | fmt = fmt.replace( |
| | | ret[1], |
| | | ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0') |
| | | ) |
| | | } |
| | | } |
| | | return fmt |
| | | }, |
| | | } |
| | | } |
| | | |
New file |
| | |
| | | <template> |
| | | <div> |
| | | <div style="padding: 10px 10px 0px 10px;"> |
| | | <el-form :inline="true" :model="searchForm"> |
| | | <el-form-item label="停车场"> |
| | | <el-select v-model="searchForm.parkId"> |
| | | <el-option v-for="item in table1" :key="item.id" :label="item.name" :value="item.id"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="选择时间"> |
| | | <div class="date-box"> |
| | | <el-date-picker type="daterange" value-format="yyyy-MM-dd" format="yyyy-MM-dd" |
| | | v-model="searchForm.date" placeholder=""> |
| | | </el-date-picker> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" size="small" @click="onSearch" icon="el-icon-search">查询</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | |
| | | <el-table :data="table2" border style="width:100%;border:1px solid #bcbec2;"> |
| | | <el-table-column type="index" width="50" label="序号" align="center"> </el-table-column> |
| | | <el-table-column prop="parkName" label="停车场" align="center" width="150"></el-table-column> |
| | | <el-table-column prop="orderNum" label="有效订单数" align="center" width="150"></el-table-column> |
| | | <el-table-column prop="orderMoney" label="订单总金额" align="center"></el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: "index", |
| | | data: function () { |
| | | return { |
| | | flag:false, |
| | | flag2:false, |
| | | searchForm: { |
| | | parkId: '', |
| | | startTime:'', |
| | | endTime:'', |
| | | date:[], |
| | | }, |
| | | formData: { |
| | | parkName:'', |
| | | orderNum:'', |
| | | orderMoney:'' |
| | | }, |
| | | urlPath:this.$systemconfig.basePath + '/orderrecord/', |
| | | table1:[], |
| | | table2:[], |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.loadData(); |
| | | this.$byutil.postData(this, this.$systemconfig.basePath+'/park/findAll', this.formData, res => { |
| | | this.table1 = res.data; |
| | | }) |
| | | }, |
| | | methods: { |
| | | loadData() { |
| | | if (this.searchForm.date) { |
| | | this.searchForm.startTime = this.searchForm.date[0]; |
| | | this.searchForm.endTime = this.searchForm.date[1]; |
| | | } else { |
| | | this.searchForm.startTime = null; |
| | | this.searchForm.endTime = null; |
| | | } |
| | | this.$byutil.postData(this, this.urlPath+'findCountPage', this.searchForm,res => { |
| | | this.table2 = res.data; |
| | | }); |
| | | }, |
| | | onSearch() { |
| | | this.loadData(); |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
| | |
| | | <el-form-item label="登录名" prop="loginName" :rules="[{required: true, message: '请输入登录名', trigger: 'blur'}]"> |
| | | <el-input v-model="formData.loginName" auto-complete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="密码" prop="password" :rules="[{required: true, message: '请输入密码', trigger: 'blur'}]"> |
| | | <el-input v-model="formData.password" auto-complete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="姓名" prop="name" :rules="[{required: true, message: '请输入姓名', trigger: 'blur'}]"> |
| | | <el-input v-model="formData.name" auto-complete="off"></el-input> |
| | | </el-form-item> |
| | |
| | | }, |
| | | getParkList(){ |
| | | this.$byutil.postData(this, this.$systemconfig.basePath + '/park/findAll',null,res => { |
| | | this.parkList = res.data.data |
| | | this.parkList = res.data |
| | | }); |
| | | }, |
| | | onSearch() { |
| | |
| | | import StringUtil from './assets/js/StringUtil' |
| | | import TscPrintUtil from './assets/js/TscPrintUtil' |
| | | import Print from './assets/js/print' |
| | | import moment from 'moment' |
| | | Vue.prototype.$moment = moment; |
| | | Vue.use(Print) // 注册 |
| | | import ViewUI from 'view-design'; |
| | | |
| | |
| | | component: resolve => require(['../components/page/costRule/index.vue'], resolve), |
| | | meta: { title: '收费规则管理' } |
| | | }, |
| | | { |
| | | path: '/orderRecord', |
| | | component: resolve => require(['../components/page/orderRecord/index.vue'], resolve), |
| | | meta: { title: '订单统计' } |
| | | }, |
| | | ] |
| | | }, |
| | | { |