index.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. <?php
  2. /**
  3. * 订单审核
  4. */
  5. ?>
  6. <div id="app" v-cloak>
  7. <el-card shadow="never" style="border:0;min-width: 1000px;" body-style="background-color: #f3f3f3;padding: 10px 0 0;">
  8. <div slot="header">
  9. <span>订单审核</span>
  10. </div>
  11. <div class="table-body">
  12. <div flex>
  13. <div class="input-item">
  14. <el-input size="small" placeholder="请输入门店名称/手机号" v-model="search.keyword"
  15. clearable @clear="toSearch">
  16. </el-input>
  17. </div>
  18. <div>
  19. <el-select v-model="search.check_status" placeholder="请选择" clearable>
  20. <el-option
  21. v-for="(item , key) in check_status_map"
  22. :label="item"
  23. :value="key">
  24. </el-option>
  25. </el-select>
  26. </div>
  27. <div class="input-item input-item2">
  28. <el-date-picker el-date-picker
  29. v-model="time"
  30. type="daterange"
  31. range-separator="至"
  32. start-placeholder="开始日期"
  33. end-placeholder="结束日期" @change="timechange" value-format="yyyy-MM-dd" >
  34. </el-date-picker>
  35. </div>
  36. <div>
  37. <el-button type="primary" size="small" style="padding: 9px 15px !important;" icon="el-icon-search" @click="toSearch">搜索</el-button>
  38. <el-button size="small" style="padding: 9px 15px !important;" icon="el-icon-refresh-right" @click="reset">重置</el-button>
  39. </div>
  40. </div>
  41. <el-table :data="list" :default-sort = "{prop: 'time'}">
  42. <el-table-column el-table-column label="门店" prop="user_id" align="center">
  43. <template slot-scope="scope">
  44. <div flex>
  45. <el-avatar :src="scope.row.logo_img"></el-avatar>
  46. <div class="flexcenter" style="margin-left:10px">{{scope.row.store_name}}</div>
  47. </div>
  48. </template>
  49. </el-table-column>
  50. <el-table-column el-table-column label="手机号" prop="shop_mobile" align="center">
  51. </el-table-column>
  52. <el-table-column el-table-column label="申请订单" prop="order_no" align="center">
  53. </el-table-column>
  54. <el-table-column el-table-column label="时间" align="center">
  55. <template slot-scope="scope">
  56. {{scope.row.created_at|dateTimeFormat('Y-m-d H:i:s')}}
  57. </template>
  58. </el-table-column>
  59. <el-table-column el-table-column label="状态" prop="consume_contribution_nums" align="center">
  60. <template slot-scope="scope">
  61. {{check_status_map[scope.row.check_status]}}
  62. </template>
  63. </el-table-column>
  64. <el-table-column el-table-column label="图片" prop="total_score" align="center">
  65. <template slot-scope="scope">
  66. <div class="flexcenter" v-if="scope.row.voucher_img !== ''">
  67. <image :src="scope.row.voucher_img" style="width:30px;height:30px"/>
  68. </div>
  69. </template>
  70. </el-table-column>
  71. <el-table-column el-table-column label="操作" prop="wait_send_score" align="center">
  72. <template slot-scope="scope">
  73. <div v-if="scope.row.check_status == 0">
  74. <el-button type="primary" size="mini" icon="el-icon-check" plain @click="cherkStatus(scope.row,'1')">同意</el-button>
  75. <el-button @click="editOpenBox(scope.row,'2')" type="danger" icon="el-icon-close" plain size="mini">驳回</el-button>
  76. </div>
  77. <div v-else>
  78. <!-- <el-button @click="deleteList(scope.row.id)" type="danger" icon="el-icon-close" plain size="mini">删除</el-button> -->
  79. </div>
  80. </template>
  81. </el-table-column>
  82. </el-table>
  83. <!-- 分页 -->
  84. <div flex="box:last cross:center">
  85. <div></div>
  86. <div>
  87. <el-pagination
  88. v-if="list.length > 0"
  89. style="display: inline-block;float: right;"
  90. background :page-size="pageSize"
  91. @current-change="pageChange"
  92. layout="prev, pager, next" :current-page="current_page"
  93. :total="totalCount">
  94. </el-pagination>
  95. </div>
  96. </div>
  97. </div>
  98. </el-card>
  99. </div>
  100. <script>
  101. const app = new Vue({
  102. el: '#app',
  103. data: {
  104. time:'',
  105. search: {
  106. keyword:'',
  107. start:'',
  108. end:'',
  109. check_status:null,
  110. page: this.current_page
  111. },
  112. time:[],
  113. list:[],
  114. page_count:0,
  115. pageSize:10,
  116. totalCount:0,
  117. current_page:1,
  118. check_status_map:[]
  119. },
  120. mounted() {
  121. this.getDataList(this.search)
  122. },
  123. methods: {
  124. // 获取数据
  125. getDataList(search = {}) {
  126. request({
  127. params: {
  128. r: 'store/store-commission-check/index',
  129. ...search
  130. },
  131. method: 'get',
  132. }).then(e => {
  133. console.log(e.data.data);
  134. this.list = e.data.data.list
  135. this.check_status_map = e.data.data.check_status_map
  136. this.reasonList = e.data.data.reason_map
  137. this.page_count = e.data.data.page_count
  138. this.pageSize = e.data.data.page_size
  139. this.totalCount = e.data.data.count
  140. }).catch(e => {
  141. this.dialogLoading = false;
  142. this.$message.error('未知错误');
  143. });
  144. },
  145. deleteList(id) {
  146. // console.log(id);
  147. let self = this;
  148. self.$confirm('删除该订单审核, 是否继续?', '提示', {
  149. confirmButtonText: '确定',
  150. cancelButtonText: '取消',
  151. type: 'warning'
  152. }).then(() => {
  153. self.listLoading = true;
  154. request({
  155. params: {
  156. r: 'contribution/transfer/del',
  157. },
  158. data: {
  159. id:id,
  160. },
  161. method: 'post',
  162. }).then(e => {
  163. if (e.data.code === 0) {
  164. self.$message.success(e.data.msg);
  165. self.getDataList(this.search)
  166. } else {
  167. self.$message.error(e.data.msg);
  168. }
  169. }).catch(e => {
  170. self.dialogLoading = false;
  171. self.$message.error('未知错误');
  172. });
  173. }).catch(() => {
  174. self.$message.info('已取消删除')
  175. });
  176. },
  177. editOpenBox(row,type){
  178. if(type == '2'){
  179. this.$confirm('该操作将驳回该条订单审核, 是否继续?', '提示', {
  180. confirmButtonText: '确定',
  181. cancelButtonText: '取消',
  182. type: 'warning'
  183. }).then(() => {
  184. this.cherkStatus(row,type)
  185. }).catch(() => {
  186. self.$message.info('已取消删除')
  187. });
  188. }
  189. },
  190. cherkStatus(row,type){
  191. let self = this
  192. request({
  193. params: {
  194. r: 'store/store-commission-check/check',
  195. },
  196. data: {
  197. id:row.id,
  198. check_status:type
  199. },
  200. method: 'post',
  201. }).then(e => {
  202. if (e.data.code === 0) {
  203. self.$message.success(e.data.msg);
  204. self.getDataList(this.search)
  205. } else {
  206. self.$message.error(e.data.msg);
  207. }
  208. }).catch(e => {
  209. self.dialogLoading = false;
  210. self.$message.error('未知错误');
  211. });
  212. },
  213. loadData() {
  214. this.getDataList(this.search)
  215. },
  216. // 搜索
  217. toSearch() {
  218. this.getDataList(this.search)
  219. },
  220. // 重置
  221. reset() {
  222. this.search = {
  223. user_id: '',
  224. page:1
  225. },
  226. this.getDataList(this.search)
  227. },
  228. // 分页
  229. pageChange(v) {
  230. this.search.page = v
  231. this.getDataList(this.search)
  232. },
  233. timechange(v) {
  234. if(v == null) {
  235. v = ['','']
  236. this.time = ['','']
  237. this.search.start = null
  238. this.search.end = null
  239. }else {
  240. this.search.start = v[0] + ' 00:00:00'
  241. this.search.end = v[1] + ' 00:00:00'
  242. }
  243. this.getDataList(this.search)
  244. },
  245. timeformat(v) {
  246. let time = new Date(v*1000)
  247. return time.getFullYear() +'/'+(time.getUTCMonth()+1)+'/'+time.getDate() + ' '+ (time.getHours()<10?'0' +time.getHours():time.getHours()) +':'+ (time.getMinutes()<10?'0'+time.getMinutes():time.getMinutes()) + ':'+ (time.getSeconds()<10?'0'+time.getSeconds():time.getSeconds())
  248. }
  249. }
  250. });
  251. </script>
  252. <style>
  253. .table-body{
  254. padding: 20px;
  255. background-color: #fff;
  256. }
  257. .input-item {
  258. width: 250px;
  259. margin: 0 10px 20px;
  260. display: inline-block;
  261. }
  262. .input-item2{
  263. width:400px;
  264. }
  265. .flexcenter{
  266. display: flex;
  267. justify-content: center;
  268. align-items: center;
  269. }
  270. </style>