已删除1个文件
已修改17个文件
已重命名1个文件
| | |
| | | |
| | | # 项ç®ä¸ä¸æè·¯å¾ |
| | | VUE_APP_CONTEXT_PATH = '/' |
| | | VUE_APP_API_URL = 'http://localhost:11010' |
| | | VUE_APP_API_URL = 'http://localhost:12010' |
| | |
| | | { |
| | | "name": "jinkuai", |
| | | "name": "diandongche", |
| | | "version": "1.0.0", |
| | | "lockfileVersion": 1, |
| | | "requires": true, |
| | |
| | | "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", |
| | | "dev": true |
| | | }, |
| | | "ansi-styles": { |
| | | "version": "4.3.0", |
| | | "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", |
| | | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "color-convert": "^2.0.1" |
| | | } |
| | | }, |
| | | "chalk": { |
| | | "version": "4.1.2", |
| | | "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", |
| | | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "ansi-styles": "^4.1.0", |
| | | "supports-color": "^7.1.0" |
| | | } |
| | | }, |
| | | "color-convert": { |
| | | "version": "2.0.1", |
| | | "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", |
| | | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "color-name": "~1.1.4" |
| | | } |
| | | }, |
| | | "color-name": { |
| | | "version": "1.1.4", |
| | | "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", |
| | | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "has-flag": { |
| | | "version": "4.0.0", |
| | | "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", |
| | | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "loader-utils": { |
| | | "version": "2.0.4", |
| | | "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", |
| | | "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "big.js": "^5.2.2", |
| | | "emojis-list": "^3.0.0", |
| | | "json5": "^2.1.2" |
| | | } |
| | | }, |
| | | "ssri": { |
| | | "version": "8.0.1", |
| | | "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1617826515595&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.1.tgz", |
| | |
| | | "dev": true, |
| | | "requires": { |
| | | "minipass": "^3.1.1" |
| | | } |
| | | }, |
| | | "supports-color": { |
| | | "version": "7.2.0", |
| | | "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", |
| | | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "has-flag": "^4.0.0" |
| | | } |
| | | }, |
| | | "vue-loader-v16": { |
| | | "version": "npm:vue-loader@16.8.3", |
| | | "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz", |
| | | "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "chalk": "^4.1.0", |
| | | "hash-sum": "^2.0.0", |
| | | "loader-utils": "^2.0.0" |
| | | } |
| | | } |
| | | } |
| | |
| | | "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", |
| | | "dev": true |
| | | }, |
| | | "qrcodejs2": { |
| | | "version": "0.0.2", |
| | | "resolved": "https://registry.npmmirror.com/qrcodejs2/-/qrcodejs2-0.0.2.tgz", |
| | | "integrity": "sha512-+Y4HA+cb6qUzdgvI3KML8GYpMFwB24dFwzMkS/yXq6hwtUGNUnZQdUnksrV1XGMc2mid5ROw5SAuY9XhI3ValA==", |
| | | "dev": true |
| | | }, |
| | | "qs": { |
| | | "version": "6.5.2", |
| | | "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz?cache=0&sync_timestamp=1616385328325&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.5.2.tgz", |
| | |
| | | } |
| | | } |
| | | }, |
| | | "vue-loader-v16": { |
| | | "version": "npm:vue-loader@16.8.3", |
| | | "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz", |
| | | "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "chalk": "^4.1.0", |
| | | "hash-sum": "^2.0.0", |
| | | "loader-utils": "^2.0.0" |
| | | }, |
| | | "dependencies": { |
| | | "ansi-styles": { |
| | | "version": "4.3.0", |
| | | "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", |
| | | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "color-convert": "^2.0.1" |
| | | } |
| | | }, |
| | | "chalk": { |
| | | "version": "4.1.2", |
| | | "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", |
| | | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "ansi-styles": "^4.1.0", |
| | | "supports-color": "^7.1.0" |
| | | } |
| | | }, |
| | | "color-convert": { |
| | | "version": "2.0.1", |
| | | "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", |
| | | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "color-name": "~1.1.4" |
| | | } |
| | | }, |
| | | "color-name": { |
| | | "version": "1.1.4", |
| | | "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", |
| | | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "has-flag": { |
| | | "version": "4.0.0", |
| | | "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", |
| | | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "loader-utils": { |
| | | "version": "2.0.4", |
| | | "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", |
| | | "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "big.js": "^5.2.2", |
| | | "emojis-list": "^3.0.0", |
| | | "json5": "^2.1.2" |
| | | } |
| | | }, |
| | | "supports-color": { |
| | | "version": "7.2.0", |
| | | "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", |
| | | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "has-flag": "^4.0.0" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "vue-router": { |
| | | "version": "3.5.1", |
| | | "resolved": "https://registry.nlark.com/vue-router/download/vue-router-3.5.1.tgz?cache=0&sync_timestamp=1620899536020&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-router%2Fdownload%2Fvue-router-3.5.1.tgz", |
| | |
| | | "jsencrypt": "^3.3.2", |
| | | "lint-staged": "^9.5.0", |
| | | "node-sass": "^4.12.0", |
| | | "qrcodejs2": "0.0.2", |
| | | "sass-loader": "^8.0.2", |
| | | "vue-cli-plugin-element-ui": "~1.1.4", |
| | | "vue-cropper": "^0.6.5", |
| | |
| | | <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>è±ç±³çµå¨è½¦åå°ç®¡çç³»ç»</title> |
| | | <title>æºç§èåå°ç®¡çç³»ç»</title> |
| | | </head> |
| | | <body> |
| | | <div id="app"></div> |
| | |
| | | <div class="menu" :class="{collapse: menuData.collapse}"> |
| | | <div class="logo"> |
| | | <div><img src="@/assets/logo.png"></div> |
| | | <h1 :class="{hidden: menuData.collapse}">è±ç±³çµå¨è½¦åå°ç®¡çç³»ç»</h1> |
| | | <h1 :class="{hidden: menuData.collapse}">æºç§èåå°ç®¡çç³»ç»</h1> |
| | | </div> |
| | | <scrollbar> |
| | | <el-menu |
| | |
| | | <TableLayout :permissions="['business:orders:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="订åå·" prop="releaseMemberId"> |
| | | <el-input v-model="searchForm.code" style="width: 120px" clearable placeholder="请è¾å
¥è®¢åå·" @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="" prop="id"> |
| | | <el-input v-model="searchForm.id" clearable placeholder="订åå·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ¥åæ¹" prop="acceptName"> |
| | | <el-input v-model="searchForm.acceptName" style="width: 120px" clearable placeholder="请è¾å
¥åç§°" @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="" prop="name"> |
| | | <el-input v-model="searchForm.name" clearable placeholder="仿¬¾äººå§å" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ååæ¹" prop="releaseName"> |
| | | <el-input v-model="searchForm.releaseName" style="width: 120px" clearable placeholder="请è¾å
¥åç§°" @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="" prop="phone"> |
| | | <el-input v-model="searchForm.phone" clearable placeholder="仿¬¾äººææºå·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="订åç±»å" prop="type"> |
| | | <el-select v-model="searchForm.type" style="width: 120px" @keypress.enter.native="search" clearable placeholder="订åç±»å"> |
| | | <el-option label="ç¨å·¥å" :value="0"></el-option> |
| | | <el-option label="è´§è¿å" :value="1"></el-option> |
| | | <el-option label="订é¤å" :value="2"></el-option> |
| | | <el-form-item label="" prop="username"> |
| | | <el-input v-model="searchForm.username" clearable placeholder="è´è´£äººè´¦å·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="" prop="userRealname"> |
| | | <el-input v-model="searchForm.userRealname" clearable placeholder="è´è´£äººå§å" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="" prop="type"> |
| | | <el-select v-model="searchForm.type" @change="search" clearable placeholder="仿¬¾äºç±"> |
| | | <el-option label="车款" :value="0"></el-option> |
| | | <el-option label="å»¶ææ¬¾" :value="1"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="订åç¶æ" prop="status"> |
| | | <el-select v-model="searchForm.status" style="width: 100px" @keypress.enter.native="search" clearable placeholder="ç¶æ"> |
| | | <el-form-item label="" prop="status"> |
| | | <el-select v-model="searchForm.status" @change="search" clearable placeholder="订åç¶æ"> |
| | | <el-option label="å¾
æ¯ä»" :value="0"></el-option> |
| | | <el-option label="å¾
æ¥å" :value="1"></el-option> |
| | | <el-option label="å·²æ¥å" :value="2"></el-option> |
| | | <el-option label="è¿è¡ä¸" :value="3"></el-option> |
| | | <el-option label="已宿" :value="4"></el-option> |
| | | <el-option label="已忶" :value="99"></el-option> |
| | | <el-option label="å·²æ¯ä»" :value="1"></el-option> |
| | | <el-option label="æ¯ä»å¤±è´¥" :value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="å叿¶é´" prop="createTimeStart" label-width="100px" > |
| | | <el-date-picker type="datetime" style="width: 150px" v-model="searchForm.createTimeStart" clearable value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="å¼å§æ¶é´" /> - |
| | | </el-form-item> |
| | | <el-form-item label="" prop="createTimeEnd" label-width="0px" > |
| | | <el-date-picker type="datetime" style="width: 150px" v-model="searchForm.createTimeEnd" clearable value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="ç»ææ¶é´" /> |
| | | </el-form-item> |
| | | <el-form-item label="æ¥åæ¶é´" prop="acceptTimeStart" label-width="100px" > |
| | | <el-date-picker type="datetime" style="width: 150px" v-model="searchForm.acceptTimeStart" clearable value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="å¼å§æ¶é´" /> - |
| | | </el-form-item> |
| | | <el-form-item label="" prop="acceptTimeEnd" label-width="0px" > |
| | | <el-date-picker type="datetime" style="width: 150px" v-model="searchForm.acceptTimeEnd" clearable value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="ç»ææ¶é´" /> |
| | | </el-form-item> |
| | | <el-form-item label="宿æ¶é´" prop="doneTimeStart" label-width="100px" > |
| | | <el-date-picker type="datetime" style="width: 150px" v-model="searchForm.doneTimeStart" clearable value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="å¼å§æ¶é´" /> - |
| | | </el-form-item> |
| | | <el-form-item label="" prop="doneTimeEnd" label-width="0px" > |
| | | <el-date-picker type="datetime" style="width: 150px" v-model="searchForm.doneTimeEnd" clearable value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="ç»ææ¶é´" /> |
| | | </el-form-item> |
| | | <el-form-item label="" prop="starttime" label-width="100px" > |
| | | <el-date-picker type="datetime" v-model="searchForm.starttime" clearable value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="å¼å§(å建)æ¶é´" /> - |
| | | </el-form-item> |
| | | <el-form-item label="" prop="endtime" label-width="0px" > |
| | | <el-date-picker type="datetime" v-model="searchForm.endtime" clearable value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="ç»æ(å建)æ¶é´" /> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | <!-- |
| | | <el-button type="primary" :loading="isWorking.export" @click="exportExcel">导åº</el-button> |
| | | --> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | |
| | | stripe |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column prop="code" label="订åç¼å·" width="180px" fixed="left"> |
| | | <el-table-column prop="id" label="订åç¼å·" width="120px" fixed="left"> |
| | | <template slot-scope="{row}"> |
| | | <span style="cursor: pointer;color: #2E68EC" @click="openDetail(row)">{{row.code}}</span> |
| | | <span style="cursor: pointer;color: #2E68EC" @click="openDetail(row)">{{row.id}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="仿¬¾äººå§å" width="100px" :show-overflow-tooltip='true'></el-table-column> |
| | | <el-table-column prop="phone" label="仿¬¾äººææºå·" width="120px" :show-overflow-tooltip='true'></el-table-column> |
| | | <el-table-column prop="money" label="æ¯ä»éé¢ï¼å
ï¼" min-width="150px"> |
| | | <template slot-scope="{row}"> |
| | | <span class="yellowstate">{{((row.money || 0)/100).toFixed(2)}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="statusName" label="订åç¶æ" min-width="100px" > |
| | | <template slot-scope="{row}"> |
| | | <span :class="'orderstate'+row.status">{{row.statusName}}</span> |
| | | <span v-if="row.status == 0" class="blue">å¾
æ¯ä»</span> |
| | | <span v-if="row.status == 1" class="green">å·²æ¯ä»</span> |
| | | <span v-if="row.status == 2" class="grey">æ¯ä»å¤±è´¥</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="type" label="订åç±»å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.type==0">ç¨å·¥å</span> |
| | | <span v-if="row.type==1">è´§è¿å</span> |
| | | <span v-if="row.type==2">订é¤å</span> |
| | | <span v-if="row.type==0">车款</span> |
| | | <span v-if="row.type==1">å»¶ææ¬¾</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="orderContent" label="订åå
容" width="200px" :show-overflow-tooltip='true'></el-table-column> |
| | | <el-table-column prop="releaseName" label="ååæ¹" min-width="100px" :show-overflow-tooltip='true'> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.releaseName || row.releasePhone">{{(row.releaseName||'') +' - ' +(row.releasePhone||'') }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="acceptName" label="æ¥åæ¹" min-width="100px" :show-overflow-tooltip='true'> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.acceptName || row.acceptPhone">{{(row.acceptName||'') +' - ' +(row.acceptPhone ||'') }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="createTime" label="å叿¶é´" min-width="150px"></el-table-column> |
| | | <el-table-column prop="acceptTime" label="æ¥åæ¶é´" min-width="150px"></el-table-column> |
| | | <el-table-column prop="finishTime" label="宿æ¶é´" min-width="150px"></el-table-column> |
| | | <el-table-column prop="estimatedAccount" label="é¢ä¼°éé¢ï¼å
ï¼" min-width="150px"> |
| | | <template slot-scope="{row}"> |
| | | <span class="yellowstate">{{((row.estimatedAccount || 0)/100).toFixed(2)}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="payAccount" label="å®ä»éé¢ï¼å
ï¼" min-width="150px"> |
| | | <template slot-scope="{row}"> |
| | | <span class="yellowstate">{{((row.payAccount || 0)/100).toFixed(2)}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="acceptType" label="æ¥åç±»å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.acceptType==0">æå¨æ¥å</span> |
| | | <span v-if="row.acceptType==1">ç³»ç»æ´¾å</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | <el-table-column prop="remark" label="订å夿³¨" width="100px" ></el-table-column> |
| | | <el-table-column prop="userRealname" label="æ¶æ¬¾äººå§å" width="100px" ></el-table-column> |
| | | <el-table-column prop="username" label="è´è´£äººè´¦å·" width="120px" ></el-table-column> |
| | | <el-table-column prop="createTime" label="å建æ¶é´" min-width="150px"></el-table-column> |
| | | <el-table-column prop="payDate" label="仿¬¾æ¶é´" min-width="150px"></el-table-column> |
| | | <el-table-column prop="cancelDate" label="åæ¶æ¶é´" min-width="150px"></el-table-column> |
| | | <!-- <el-table-column |
| | | label="æä½" |
| | | align="center" |
| | | min-width="150" |
| | |
| | | <el-button type="text" class="redstate" @click="cancelDo(row)" v-if="row.status!=5 && row.status!=4&& row.status!=99" icon="el-icon-delete" v-permissions="['business:orders:update']">åæ¶</el-button> |
| | | <el-button type="text" @click="openDetail( row)" icon="el-icon-info" >详æ
</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table-column>--> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | acceptName: null, |
| | | releaseName: null, |
| | | type: null, |
| | | createTimeEnd: null, |
| | | createTimeStart: null, |
| | | acceptTimeStart: null, |
| | | acceptTimeEnd: null, |
| | | doneTimeStart: null, |
| | | doneTimeEnd: null, |
| | | id: null, |
| | | status: null, |
| | | code: null |
| | | type: null, |
| | | starttime: null, |
| | | endTime: null, |
| | | username: null, |
| | | userRealName: null, |
| | | name: null, |
| | | phone: null, |
| | | payCode: null |
| | | } |
| | | } |
| | | }, |
| | |
| | | }) |
| | | this.search() |
| | | }, |
| | | reset () { |
| | | this.searchForm = { |
| | | acceptName: null, |
| | | releaseName: null, |
| | | type: null, |
| | | createTimeEnd: null, |
| | | createTimeStart: null, |
| | | acceptTimeStart: null, |
| | | acceptTimeEnd: null, |
| | | doneTimeStart: null, |
| | | doneTimeEnd: null, |
| | | status: null, |
| | | code: null |
| | | } |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | openDetail (row) { |
| | | this.$refs.OperaOrderDetailWindow.open('订å详æ
', row ) |
| | | }, |
| | | cancelDo (row) { |
| | | this.$dialog.actionConfirm('æ¨ç¡®è®¤ãåæ¶ã该订ååï¼', 'æä½ç¡®è®¤') |
| | |
| | | <div class="home_header"> |
| | | <div class="mb10 fs17">ä¸å好ï¼{{ userInfo.realname }}</div> |
| | | <div class="fs13"> |
| | | ä»å¤©æ¯ {{ nowDate }} {{ nowWeek }}ï¼æ¬¢è¿è®¿é®è±ç±³çµå¨è½¦åå°ç®¡çç³»ç» |
| | | ä»å¤©æ¯ {{ nowDate }} {{ nowWeek }}ï¼æ¬¢è¿è®¿é®æºç§èåå°ç®¡çç³»ç» |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <template> |
| | | <div class="wrap"> |
| | | <div class="introduce"> |
| | | <h2>è±ç±³çµå¨è½¦åå°ç®¡çç³»ç»</h2> |
| | | <h2>æºç§èåå°ç®¡çç³»ç»</h2> |
| | | <h3></h3> |
| | | </div> |
| | | <div class="login"> |
| | |
| | | @sort-change="handleSortChange" |
| | | > |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="avatar" label="头å" width="80px" class-name="table-column-avatar" fixed="left"> |
| | | <template slot-scope="{row}"> |
| | | <img :src="row.avatar == null ? '/avatar/man.png' : row.avatar"> |
| | | <el-table-column prop="avatar" label="æ¶æ¬¾ç " width="100px" class-name="table-column-avatar" > |
| | | <template slot-scope="{ row }"> |
| | | <div class="qrcodediv" :id="`qrcode${row.id}`" :ref="`qrcode${row.id}`"></div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="realname" label="å§å" min-width="100px" fixed="left"></el-table-column> |
| | | <el-table-column prop="realname" label="å§å" min-width="100px" ></el-table-column> |
| | | <el-table-column prop="username" label="ç¨æ·å" min-width="120px"></el-table-column> |
| | | <el-table-column prop="empNo" label="å·¥å·" sortable="custom" sort-by="EMP_NO" min-width="80px"></el-table-column> |
| | | <el-table-column prop="sex" label="æ§å«" sortable="custom" sort-by="SEX" min-width="80px"> |
| | |
| | | <template v-if="isAdmin || (row.id !== userInfo.id && row.roles.findIndex(r => r.code === adminCode) === -1)" slot-scope="{row}"> |
| | | <el-button type="text" icon="el-icon-edit" @click="$refs.operaUserWindow.open('ç¼è¾ç¨æ·', row)" v-permissions="['system:user:update']">ç¼è¾</el-button> |
| | | <el-button type="text" icon="el-icon-s-custom" @click="$refs.roleConfigWindow.open(row)" v-permissions="['system:user:createUserRole']">é
ç½®è§è²</el-button> |
| | | <el-button type="text" @click="$refs.resetPwdWindow.open(row)" v-permissions="['system:user:resetPwd']">éç½®å¯ç </el-button> |
| | | <el-button type="text" icon="el-icon-download" @click="download(row)" >ä¸è½½æ¶æ¬¾ç </el-button> |
| | | <el-button type="text" @click="$refs.resetPwdWindow.open(row)" icon="el-icon-edit" v-permissions="['system:user:resetPwd']">éç½®å¯ç </el-button> |
| | | <el-button v-if="!row.fixed" type="text" icon="el-icon-delete" @click="deleteById(row)" v-permissions="['system:user:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | import RoleConfigWindow from '@/components/system/user/RoleConfigWindow' |
| | | import ResetPwdWindow from '@/components/system/user/ResetPwdWindow' |
| | | |
| | | import QRCode from 'qrcodejs2' |
| | | export default { |
| | | name: 'SystemUser', |
| | | extends: BaseTable, |
| | |
| | | }] |
| | | }) |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | handlePageChange (pageIndex) { |
| | | var that = this |
| | | this.__checkApi() |
| | | this.tableData.pagination.pageIndex = pageIndex || this.tableData.pagination.pageIndex |
| | | this.isWorking.search = true |
| | | this.api.fetchList({ |
| | | page: this.tableData.pagination.pageIndex, |
| | | capacity: this.tableData.pagination.pageSize, |
| | | model: this.searchForm, |
| | | sorts: this.tableData.sorts |
| | | }) |
| | | .then(data => { |
| | | // that.removeElementsWithClass("qrcodediv") |
| | | that.tableData.list = data.records |
| | | that.tableData.pagination.total = data.total |
| | | this.$nextTick(() => { |
| | | that.tableData.list.forEach((row) => { |
| | | document.getElementById('qrcode' + row.id).innerHTML = '' |
| | | row.qrcodeImg = that.crateQrcodeShow('qrcode' + row.id, row.payUrl) |
| | | }) |
| | | }) |
| | | }) |
| | | .catch(e => { |
| | | this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | this.isWorking.search = false |
| | | }) |
| | | }, |
| | | download (row) { |
| | | const nodeList = Array.prototype.slice.call(row.qrcodeImg._el.children) |
| | | const img = nodeList.find((item) => item.nodeName.toUpperCase() === 'IMG')// éåºå¾çç±»å |
| | | // æå»ºç»å¸ |
| | | const canvas = document.createElement('canvas') |
| | | canvas.width = 220 |
| | | canvas.height = 220 |
| | | const ctx = canvas.getContext('2d') |
| | | ctx.fillStyle = 'white' |
| | | ctx.fillRect(0, 0, canvas.width, canvas.height) // å¡«å
æ´ä¸ªç»å¸åºåï¼ç¡®ä¿èæ¯è²è¦çæ´ä¸ªç»å¸ |
| | | ctx.drawImage(img, 10, 10, 200, 200) |
| | | // æé url |
| | | const url = canvas.toDataURL('image/png') |
| | | |
| | | const a = document.createElement('a') |
| | | a.href = url |
| | | a.download = `${row.realname}-æ¶æ¬¾ç .png` |
| | | a.click() |
| | | a.remove() |
| | | }, |
| | | removeElementsWithClass (className) { |
| | | const elements = document.querySelectorAll(`.${className}`) |
| | | elements.forEach(element => { |
| | | element.parentNode.removeChild(element) |
| | | }) |
| | | }, |
| | | crateQrcodeShow (div, qrcode1) { |
| | | if (!div || !div.length || qrcode1 == null || qrcode1 == '') { |
| | | return |
| | | } |
| | | return new QRCode(div, { |
| | | width: 80, |
| | | height: 80, |
| | | text: qrcode1, |
| | | correctLevel: QRCode.CorrectLevel.H, |
| | | useSVG: true |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | @import "@/assets/style/variables.scss"; |
| | | // å表头åå¤ç |
| | | /*// å表头åå¤ç |
| | | .table-column-avatar { |
| | | img { |
| | | width: 48px; |
| | | } |
| | | } |
| | | }*/ |
| | | </style> |
| ÎļþÃû´Ó server/admin/src/main/java/com/doumee/job/InitializeCodeJob.java ÐÞ¸Ä |
| | |
| | | import com.doumee.core.job.BaseJob; |
| | | import com.doumee.core.job.JobContext; |
| | | import com.doumee.core.job.JobParam; |
| | | import com.doumee.service.business.OrdersService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | |
| | | * @since 2025/03/31 16:44 |
| | | */ |
| | | @Slf4j |
| | | @Component("InitializeCodeJob") |
| | | public class InitializeCodeJob extends BaseJob { |
| | | @Component("AutoCancelOrdersJob") |
| | | public class AutoCancelOrdersJob extends BaseJob { |
| | | |
| | | // @Autowired |
| | | // private OrdersService ordersService; |
| | | @Autowired |
| | | private OrdersService ordersService; |
| | | |
| | | @Override |
| | | public JobContext execute(JobParam param) { |
| | | JobContext jobContext = new JobContext(); |
| | | try { |
| | | // ordersService.initializeCode(); |
| | | jobContext.setContext("åå§å订åç¼å·"); |
| | | ordersService.autoCancelNoPay(); |
| | | jobContext.setContext("èªå¨åæ¶æªæ¯ä»è®¢å"); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | |
| | | @ApiModelProperty("éè交æç»æè¯´æ") |
| | | @ExcelColumn(name="éè交æç»æè¯´æï¼", width=10) |
| | | private String payInfo; |
| | | @ApiModelProperty("éè交æå¹³å°ç¼å·") |
| | | @ExcelColumn(name="éè交æå¹³å°ç¼å·ï¼", width=10) |
| | | private String payCode; |
| | | @ApiModelProperty("éèäº¤ææµæ°´") |
| | | @ExcelColumn(name="éèäº¤ææµæ°´",index=19 ,width=10) |
| | | private String payOrderId; |
| | |
| | | @ApiModelProperty("åæ¶æ¶é´") |
| | | @ExcelColumn(name="åæ¶æ¶é´",index=21 ,width=10) |
| | | private Date cancelDate; |
| | | @ApiModelProperty("åæ¶æ¹å¼ 0èªå¨åæ¶;1æ¶å°åæ¶") |
| | | @ExcelColumn(name="åæ¶æ¹å¼ 0èªå¨åæ¶;1æ¶å°åæ¶",index=22 ,width=10) |
| | | @ApiModelProperty("åæ¶æ¹å¼ 0èªå¨åæ¶;1æå¨åæ¶") |
| | | @ExcelColumn(name="åæ¶æ¹å¼ 0èªå¨åæ¶;1æå¨åæ¶",index=22 ,width=10) |
| | | private String cancelWay; |
| | | @ApiModelProperty("忶夿³¨") |
| | | @ExcelColumn(name="忶夿³¨",index=23 ,width=10) |
| | |
| | | @ApiModelProperty("æ¯ä»ç¶æ:0=æªæ¯ä»;1=å·²æ¯ä»;") |
| | | @ExcelColumn(name="æ¯ä»ç¶æ:0=æªæ¯ä»;1=å·²æ¯ä»",index=26 ,width=10) |
| | | private Integer payStatus; |
| | | @ApiModelProperty("å¼å§æ¶é´") |
| | | @TableField(exist = false) |
| | | private Date starttime; |
| | | @ApiModelProperty("æªæ¢æ¶é´") |
| | | @TableField(exist = false) |
| | | private Date endtime; |
| | | @ApiModelProperty("è´è´£äººç»é") |
| | | @TableField(exist = false) |
| | | private String username; |
| | | @ApiModelProperty("è´è´£äººå§å") |
| | | @TableField(exist = false) |
| | | private String userRealname; |
| | | } |
| | |
| | | |
| | | @ApiModelProperty(value = "æ´æ°äººä¿¡æ¯") |
| | | private SystemUser updateUserInfo; |
| | | @ApiModelProperty(value = "æ¯ä»å°å") |
| | | private String payUrl; |
| | | |
| | | } |
| | |
| | | void dealOrdreResult(String request, HttpServletResponse response) throws IOException; |
| | | |
| | | void returnPage(PayOrderParam param, HttpServletResponse response) throws IOException; |
| | | |
| | | void autoCancelNoPay(); |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | orders.setPayStatus(Constants.ZERO); |
| | | orders.setStatus(Constants.ZERO); |
| | | orders.setPayMethod(Constants.ZERO); |
| | | orders.setDeleted(Constants.ZERO); |
| | | ordersMapper.insert(orders); |
| | | return startPayDo(orders); |
| | | } |
| | |
| | | param.setReqsn(""+orders.getId()); |
| | | param.setReturl(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PAY_RETURN_URL).getCode()); |
| | | param.setNotify_url( systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PAY_NOTIFY_URL).getCode()); |
| | | param.setBody(orders.getRemark()); |
| | | param.setBody(StringUtils.defaultString(orders.getName(),"") +"-" |
| | | + StringUtils.defaultString(orders.getPhone(),"")+ "-" |
| | | +StringUtils.defaultString(orders.getRemark(),"")); |
| | | param.setValidtime( systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PAY_VALID_TIME).getCode()); |
| | | param.setSigntype( systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PAY_SIGN_TYPE).getCode()); |
| | | |
| | |
| | | @Override |
| | | public PageData<Orders> findPage(PageWrap<Orders> pageWrap) { |
| | | IPage<Orders> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | QueryWrapper<Orders> queryWrapper = new QueryWrapper<>(); |
| | | MPJLambdaWrapper<Orders> queryWrapper = new MPJLambdaWrapper<>(); |
| | | queryWrapper.selectAll(Orders.class) |
| | | .selectAs(SystemUser::getRealname,Orders::getUserRealname) |
| | | .selectAs(SystemUser::getUsername,Orders::getUsername) |
| | | .leftJoin(SystemUser.class,SystemUser::getId,Orders::getUserId); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | queryWrapper.lambda().eq(pageWrap.getModel().getId() != null,Orders::getId, pageWrap.getModel().getId()); |
| | | queryWrapper.lambda().eq(pageWrap.getModel().getDeleted() != null,Orders::getDeleted, pageWrap.getModel().getDeleted()); |
| | | queryWrapper.lambda().eq(pageWrap.getModel().getCreateUser() != null,Orders::getCreateUser, pageWrap.getModel().getCreateUser()); |
| | | if (pageWrap.getModel().getCreateTime() != null) { |
| | | queryWrapper.lambda().ge(Orders::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateTime())); |
| | | queryWrapper.lambda().le(Orders::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateTime())); |
| | | } |
| | | queryWrapper.lambda().eq(pageWrap.getModel().getUpdateUser() != null,Orders::getUpdateUser, pageWrap.getModel().getUpdateUser()); |
| | | if (pageWrap.getModel().getUpdateTime() != null) { |
| | | queryWrapper.lambda().ge(Orders::getUpdateTime, Utils.Date.getStart(pageWrap.getModel().getUpdateTime())); |
| | | queryWrapper.lambda().le(Orders::getUpdateTime, Utils.Date.getEnd(pageWrap.getModel().getUpdateTime())); |
| | | } |
| | | queryWrapper.lambda().eq(pageWrap.getModel().getRemark() != null,Orders::getRemark, pageWrap.getModel().getRemark()); |
| | | queryWrapper.lambda().eq(pageWrap.getModel().getStatus() != null,Orders::getStatus, pageWrap.getModel().getStatus()); |
| | | queryWrapper.lambda().eq(pageWrap.getModel().getName() != null,Orders::getName, pageWrap.getModel().getName()); |
| | | queryWrapper.lambda().eq(pageWrap.getModel().getUserId() != null,Orders::getUserId, pageWrap.getModel().getUserId()); |
| | | queryWrapper.lambda().eq(pageWrap.getModel().getDetail() != null,Orders::getDetail, pageWrap.getModel().getDetail()); |
| | | queryWrapper.lambda().eq(pageWrap.getModel().getImgurl() != null,Orders::getImgurl, pageWrap.getModel().getImgurl()); |
| | | queryWrapper.lambda().eq(pageWrap.getModel().getSortnum() != null,Orders::getSortnum, pageWrap.getModel().getSortnum()); |
| | | queryWrapper.lambda().eq(pageWrap.getModel().getType() != null,Orders::getType, pageWrap.getModel().getType()); |
| | | queryWrapper.lambda().eq(pageWrap.getModel().getBrandId() != null,Orders::getBrandId, pageWrap.getModel().getBrandId()); |
| | | queryWrapper.lambda().eq(pageWrap.getModel().getPhone() != null,Orders::getPhone, pageWrap.getModel().getPhone()); |
| | | queryWrapper.lambda().eq(pageWrap.getModel().getMoney() != null,Orders::getMoney, pageWrap.getModel().getMoney()); |
| | | queryWrapper.lambda().eq(pageWrap.getModel().getPayMethod() != null,Orders::getPayMethod, pageWrap.getModel().getPayMethod()); |
| | | queryWrapper.lambda().eq(pageWrap.getModel().getPayOrderId() != null,Orders::getPayOrderId, pageWrap.getModel().getPayOrderId()); |
| | | if (pageWrap.getModel().getUpdateTime() != null) { |
| | | queryWrapper.lambda().ge(Orders::getPayDate, Utils.Date.getStart(pageWrap.getModel().getPayDate())); |
| | | queryWrapper.lambda().le(Orders::getPayDate, Utils.Date.getEnd(pageWrap.getModel().getPayDate())); |
| | | } |
| | | if (pageWrap.getModel().getUpdateTime() != null) { |
| | | queryWrapper.lambda().ge(Orders::getCancelDate, Utils.Date.getStart(pageWrap.getModel().getCancelDate())); |
| | | queryWrapper.lambda().le(Orders::getCancelDate, Utils.Date.getEnd(pageWrap.getModel().getCancelDate())); |
| | | } |
| | | queryWrapper.lambda().eq(pageWrap.getModel().getCancelWay() != null,Orders::getCancelWay, pageWrap.getModel().getCancelWay()); |
| | | queryWrapper.lambda().eq(pageWrap.getModel().getCancelInfo() != null,Orders::getCancelInfo, pageWrap.getModel().getCancelInfo()); |
| | | queryWrapper.lambda().eq(pageWrap.getModel().getCancelUserId() != null,Orders::getCancelUserId, pageWrap.getModel().getCancelUserId()); |
| | | queryWrapper.lambda().eq(pageWrap.getModel().getCancelStatus() != null,Orders::getCancelStatus, pageWrap.getModel().getCancelStatus()); |
| | | queryWrapper.lambda().eq(pageWrap.getModel().getPayStatus() != null,Orders::getPayStatus, pageWrap.getModel().getPayStatus()); |
| | | for(PageWrap.SortData sortData: pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | | } else { |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | } |
| | | } |
| | | return PageData.from(ordersMapper.selectPage(page, queryWrapper)); |
| | | pageWrap.getModel().setDeleted(Constants.ZERO); |
| | | queryWrapper.eq(pageWrap.getModel().getId() != null,Orders::getId, pageWrap.getModel().getId()); |
| | | queryWrapper.eq(pageWrap.getModel().getDeleted() != null,Orders::getDeleted, pageWrap.getModel().getDeleted()); |
| | | queryWrapper.eq(pageWrap.getModel().getCreateUser() != null,Orders::getCreateUser, pageWrap.getModel().getCreateUser()); |
| | | queryWrapper.like(pageWrap.getModel().getRemark() != null,Orders::getRemark, pageWrap.getModel().getRemark()); |
| | | queryWrapper.eq(pageWrap.getModel().getStatus() != null,Orders::getStatus, pageWrap.getModel().getStatus()); |
| | | queryWrapper.like(pageWrap.getModel().getUsername() != null,SystemUser::getUsername, pageWrap.getModel().getUsername()); |
| | | queryWrapper.like(pageWrap.getModel().getUserRealname() != null,SystemUser::getRealname, pageWrap.getModel().getUserRealname()); |
| | | queryWrapper.like(pageWrap.getModel().getName() != null,Orders::getName, pageWrap.getModel().getName()); |
| | | queryWrapper.eq(pageWrap.getModel().getUserId() != null,Orders::getUserId, pageWrap.getModel().getUserId()); |
| | | queryWrapper.eq(pageWrap.getModel().getDetail() != null,Orders::getDetail, pageWrap.getModel().getDetail()); |
| | | queryWrapper.eq(pageWrap.getModel().getImgurl() != null,Orders::getImgurl, pageWrap.getModel().getImgurl()); |
| | | queryWrapper.eq(pageWrap.getModel().getSortnum() != null,Orders::getSortnum, pageWrap.getModel().getSortnum()); |
| | | queryWrapper.eq(pageWrap.getModel().getType() != null,Orders::getType, pageWrap.getModel().getType()); |
| | | queryWrapper.eq(pageWrap.getModel().getBrandId() != null,Orders::getBrandId, pageWrap.getModel().getBrandId()); |
| | | queryWrapper.eq(pageWrap.getModel().getPhone() != null,Orders::getPhone, pageWrap.getModel().getPhone()); |
| | | queryWrapper.eq(pageWrap.getModel().getMoney() != null,Orders::getMoney, pageWrap.getModel().getMoney()); |
| | | queryWrapper.eq(pageWrap.getModel().getPayMethod() != null,Orders::getPayMethod, pageWrap.getModel().getPayMethod()); |
| | | queryWrapper.eq(pageWrap.getModel().getPayOrderId() != null,Orders::getPayOrderId, pageWrap.getModel().getPayOrderId()); |
| | | queryWrapper.ge(pageWrap.getModel().getStarttime()!=null,Orders::getCreateTime , pageWrap.getModel().getStarttime()); |
| | | queryWrapper.ne(pageWrap.getModel().getEndtime()!=null,Orders::getCreateTime , pageWrap.getModel().getEndtime()); |
| | | queryWrapper.eq(pageWrap.getModel().getCancelWay() != null,Orders::getCancelWay, pageWrap.getModel().getCancelWay()); |
| | | queryWrapper.eq(pageWrap.getModel().getCancelInfo() != null,Orders::getCancelInfo, pageWrap.getModel().getCancelInfo()); |
| | | queryWrapper.eq(pageWrap.getModel().getCancelUserId() != null,Orders::getCancelUserId, pageWrap.getModel().getCancelUserId()); |
| | | queryWrapper.eq(pageWrap.getModel().getCancelStatus() != null,Orders::getCancelStatus, pageWrap.getModel().getCancelStatus()); |
| | | queryWrapper.eq(pageWrap.getModel().getPayStatus() != null,Orders::getPayStatus, pageWrap.getModel().getPayStatus()); |
| | | queryWrapper.orderByDesc(Orders::getId); |
| | | return PageData.from(ordersMapper.selectJoinPage(page,Orders.class, queryWrapper)); |
| | | } |
| | | @Override |
| | | public long count(Orders orders) { |
| | |
| | | return ordersMapper.selectCount(wrapper); |
| | | } |
| | | @Override |
| | | public void autoCancelNoPay() { |
| | | int time = 30; |
| | | try { |
| | | time = Integer.parseInt(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PAY_VALID_TIME).getCode()); |
| | | }catch (Exception e){ |
| | | |
| | | } |
| | | Date date = new Date(); |
| | | ordersMapper.update(null,new UpdateWrapper<Orders>().lambda() |
| | | .set(Orders::getStatus,Constants.TWO) |
| | | .set(Orders::getCancelInfo,"è¶
æ¶æªæ¯ä»ï¼èªå¨åæ¶") |
| | | .set(Orders::getCancelWay,Constants.ZERO) |
| | | .set(Orders::getCancelDate,date) |
| | | .set(Orders::getUpdateTime,date) |
| | | .eq(Orders::getStatus,Constants.ZERO) |
| | | .apply("TIMESTAMPDIFF(MINUTE, create_time ,now()) > "+time)); |
| | | } |
| | | @Override |
| | | public void returnPage(PayOrderParam param, HttpServletResponse response) throws IOException { |
| | | String url =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PAY_RETURN_WEB_URL).getCode(); |
| | | response.sendRedirect(url+"?reqsn="+param.getReqsn()); |
| | | // String url =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PAY_RETURN_WEB_URL).getCode(); |
| | | // response.sendRedirect(url+"?reqsn="+param.getReqsn()); |
| | | } |
| | | @Override |
| | | public void dealOrdreResult(String paramStr, HttpServletResponse response) throws IOException { |
| | |
| | | model.setPayThirdOrderId(map.getChnltrxid());//æ¯ä»å®å¾®ä¿¡è®¢åå· |
| | | model.setPayThirdOrderData(map.getChnldata());//䏿¹äº¤ææ¸ éæ°æ® |
| | | model.setPayInfo(info); |
| | | model.setPayCode(map.getTrxcode()); |
| | | ordersMapper.updateById(model); |
| | | }else{ |
| | | log.error("æ¯ä»éªç¾å¤±è´¥======"); |
| | |
| | | package com.doumee.service.system.impl; |
| | | |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.core.constants.Constants; |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.doumee.core.model.PageData; |
| | |
| | | |
| | | @Autowired |
| | | private SystemRoleService systemRoleService; |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | |
| | | @Override |
| | | public Integer create(SystemUser systemUser) { |
| | |
| | | @Override |
| | | public PageData<SystemUserListVO> findPage(PageWrap<QuerySystemUserDTO> pageWrap) { |
| | | // æ§è¡æ¥è¯¢ |
| | | String url = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PAY_RETURN_WEB_URL).getCode(); |
| | | PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | List<SystemUserListVO> userList = systemUserMapper.selectManageList(pageWrap.getModel(), pageWrap.getOrderByClause()); |
| | | for (SystemUserListVO user : userList) { |
| | | // æ¥è¯¢ç¨æ·è§è²å表 |
| | | user.setRoles(systemRoleService.findByUserId(user.getId())); |
| | | user.setPayUrl(url+"?userId="+user.getId()); |
| | | } |
| | | return PageData.from(new PageInfo<>(userList)); |
| | | } |
| | |
| | | { |
| | | "name" : "çµå¨è½¦æ¶æ¬¾", |
| | | "name" : "æºç§è", |
| | | "appid" : "__UNI__7C0C90D", |
| | | "description" : "", |
| | | "versionName" : "1.0.0", |
| | |
| | | money: '', |
| | | remark: '', |
| | | userId:'' |
| | | } |
| | | }, |
| | | loading:false |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.loading=false |
| | | this.form.userId = this.fetchParams("userId",window.location.href) |
| | | }, |
| | | methods: { |
| | |
| | | return decodeURIComponent(results[2].replace(/\+/g, ' ')); |
| | | }, |
| | | async sendSave() { |
| | | if(this.loading){ |
| | | return |
| | | } |
| | | this.loading=true |
| | | var that = this |
| | | if(!this.form.name){ |
| | | uni.showToast({ |
| | | 'title': '请è¾å
¥å§å',icon:'none' |
| | | }) |
| | | this.loading=false |
| | | return |
| | | } |
| | | if(!this.form.phone){ |
| | | uni.showToast({ |
| | | 'title': '请è¾å
¥ææºå·',icon:'none' |
| | | }) |
| | | this.loading=false |
| | | return |
| | | } |
| | | if(!this.form.money || this.form.money < 0.01){ |
| | |
| | | return |
| | | } |
| | | let res = await this.$u.api.orderCreate(this.form) |
| | | if (res.code === 200) { |
| | | if (res && res.code === 200) { |
| | | const url = res.data.url |
| | | // axios.post('https://third-party-website.com/api/submit', this.formData, { |
| | | // headers: { 'Content-Type': 'application/json' } // æ ¹æ®éè¦æ·»å å
¶ä»å¤´é¨ä¿¡æ¯ï¼å¦è®¤è¯ä»¤ççã |
| | | // }) |
| | | // axios.post(res.data.url, res.data.params); |
| | | // const resolve = this.$router.push(url,params); |
| | | // window.open(resolve.href, "_blank") |
| | | console.log(res) |
| | | const elements = document.querySelectorAll('form'); |
| | | if(elements&& elements.length){ |
| | | elements.forEach(element => { |
| | | element.remove(); |
| | | }) |
| | | } |
| | | uni.showToast({title:'åèµ·æ¯ä»ä¸'}) |
| | | var demo_form = document.createElement("form"); |
| | | demo_form.action = url; |
| | | demo_form.id = "tempFromId"; |
| | |
| | | } |
| | | } |
| | | document.body.appendChild(demo_form) |
| | | uni.showToast({ |
| | | 'title': 'ç¹æå',icon:'none' |
| | | }) |
| | | demo_form.submit() |
| | | |
| | | // this.toSuccess() |
| | | } |
| | | this.loading=false |
| | | }, |
| | | } |
| | | } |
| | |
| | | <!DOCTYPE html><html lang=zh-CN><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><title>çµå¨è½¦æ¶æ¬¾</title><script>var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)')) |
| | | document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel=stylesheet href=/web/static/index.883130ca.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=/web/static/js/chunk-vendors.b176ace3.js></script><script src=/web/static/js/index.c8598184.js></script></body></html> |
| | | <!DOCTYPE html><html lang=zh-CN><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><title>æºç§è</title><script>var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)')) |
| | | document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel=stylesheet href=/web/static/index.883130ca.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=/web/static/js/chunk-vendors.b176ace3.js></script><script src=/web/static/js/index.a2491d9d.js></script></body></html> |