WeddingConfirm.vue 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336
  1. <template>
  2. <div>
  3. <z-title title="婚庆二次确认" ref="title"></z-title>
  4. <el-card ref="search">
  5. <div class="flex-n fac fjb">
  6. <div class="flex-n fac">
  7. <div class="textnowrap">收款日期:</div>
  8. <el-date-picker
  9. size="medium"
  10. class="mr-10 date w-220"
  11. v-model="orderClearDate"
  12. value-format="yyyy-MM-dd"
  13. type="daterange"
  14. range-separator="至"
  15. start-placeholder="开始日期"
  16. end-placeholder="结束日期"
  17. :picker-options="pickerOptions"
  18. >
  19. </el-date-picker>
  20. <div class="textnowrap">订单日期:</div>
  21. <el-date-picker
  22. size="medium"
  23. class="mr-10 date w-220"
  24. v-model="orderDate"
  25. value-format="yyyy-MM-dd"
  26. type="daterange"
  27. range-separator="至"
  28. start-placeholder="开始日期"
  29. end-placeholder="结束日期"
  30. :picker-options="pickerOptions"
  31. >
  32. </el-date-picker>
  33. <!--<div class="textnowrap">操作状态:</div>-->
  34. <!--<operation-status clearable class="mr-10 " size="medium" v-model="confirmStatus"-->
  35. <!--placeholder="请选择"></operation-status>-->
  36. </div>
  37. <el-button type="primary" class="ele-btn2" @click="searchList">查询</el-button>
  38. </div>
  39. </el-card>
  40. <el-card class="mt-10">
  41. <div class="record-total">
  42. <el-row :gutter="10">
  43. <el-col :xs="3" :sm="3" :md="3" :lg="2" :xl="1" v-for="(item,index) in payWayList" :key="index">{{item.paymentName}} {{item.confirmMoney}}</el-col>
  44. </el-row>
  45. </div>
  46. <!--列表-->
  47. <el-table class="mt-20"
  48. :data="tableData"
  49. v-loading="loading"
  50. :height="height+'px'"
  51. highlight-current-row
  52. element-loading-text="列表刷新中"
  53. header-cell-class-name="headerrow"
  54. cell-class-name="cellclass"
  55. style="width: 100%">
  56. <el-table-column
  57. fixed="left"
  58. prop="confirmTime"
  59. label="结算时间"
  60. align="center"
  61. width="120">
  62. </el-table-column>
  63. <el-table-column
  64. prop="houseName"
  65. label="场地名称"
  66. align="center"
  67. :show-overflow-tooltip="true"
  68. width="140">
  69. </el-table-column>
  70. <el-table-column
  71. prop="time"
  72. label="时间段"
  73. align="center"
  74. width="160">
  75. </el-table-column>
  76. <el-table-column
  77. prop="paymentName"
  78. label="结算方式"
  79. align="center"
  80. width="160">
  81. </el-table-column>
  82. <el-table-column
  83. prop="confirmMoney"
  84. label="结算金额"
  85. align="center"
  86. width="120">
  87. </el-table-column>
  88. <el-table-column
  89. prop="confirmName"
  90. label="收款人"
  91. width="120"
  92. align="center">
  93. </el-table-column>
  94. <!--<el-table-column-->
  95. <!--prop="orderTime"-->
  96. <!--label="订单日期"-->
  97. <!--width="160"-->
  98. <!--align="center">-->
  99. <!--</el-table-column>-->
  100. <el-table-column
  101. label="核实状态"
  102. align="center">
  103. <template slot-scope="scope">
  104. {{scope.row.confirmStatus=='0'?'待审核':'已审核'}}
  105. </template>
  106. </el-table-column>
  107. <el-table-column
  108. label="操 作"
  109. fixed="right"
  110. width="120"
  111. align="center"
  112. >
  113. <template slot-scope="scope">
  114. <div style="margin: 5px 0">
  115. <el-popconfirm
  116. title="是否确定核实?"
  117. @confirm="toComfirm(scope.row.confirmId,scope.row.weddingId)"
  118. >
  119. <el-button v-if="scope.row.confirmStatus=='0'" slot="reference" type="primary" class="ele-btn-small">核实</el-button>
  120. </el-popconfirm>
  121. </div>
  122. </template>
  123. </el-table-column>
  124. </el-table>
  125. <!--分页-->
  126. <pagination :current-page="currentPage" :page-size="pageSize" :total="total" @sizeChange="handleSizeChange"
  127. @currentChange="handleCurrentChange"></pagination>
  128. </el-card>
  129. </div>
  130. </template>
  131. <script>
  132. import ZTitle from "../../components/ZTitle";
  133. import Pagination from "../../components/pagination/pagination";
  134. import OperationStatus from "../../components/data/operationStatus";
  135. export default {
  136. components: {
  137. OperationStatus,
  138. Pagination,
  139. ZTitle},
  140. name: "wedding-confirm",
  141. data(){
  142. return{
  143. loading: false,
  144. currentPage: 1,
  145. pageSize: 20,
  146. total: 0,
  147. height: 250,
  148. tableData: [],
  149. id: '',
  150. confirmStatus:'',
  151. dateRange:[],
  152. orderDate:[],
  153. orderClearDate:[],
  154. payWayList:[]
  155. }
  156. },
  157. computed:{
  158. pickerOptions() {
  159. var that=this;
  160. return{
  161. firstDayOfWeek: 1,
  162. shortcuts: [
  163. {
  164. text: '今日',
  165. onClick(picker) {
  166. const end = new Date();
  167. const start = new Date();
  168. picker.$emit('pick', [start, end]);
  169. }
  170. },
  171. {
  172. text: '昨日',
  173. onClick(picker) {
  174. const end = new Date();
  175. const start = new Date();
  176. start.setTime(start.getTime() - 3600 * 1000 * 24);
  177. end.setTime(end.getTime() - 3600 * 1000 * 24);
  178. picker.$emit('pick', [start, end]);
  179. }
  180. },
  181. {
  182. text: '本周',
  183. onClick(picker) {
  184. const end = new Date();
  185. const start = new Date();
  186. var num=start.getDay();
  187. if(num==0){
  188. num=7;
  189. }
  190. start.setTime(start.getTime() - 3600 * 1000 * 24 * (num-1));
  191. end.setTime(end.getTime() + 3600 * 1000 * 24 * (7-num));
  192. picker.$emit('pick', [start, end]);
  193. }
  194. },
  195. {
  196. text: '上周',
  197. onClick(picker) {
  198. const end = new Date();
  199. const start = new Date();
  200. var num=start.getDay();
  201. if(num==0){
  202. num=7;
  203. }
  204. start.setTime(start.getTime() - 3600 * 1000 * 24 * (num+6));
  205. end.setTime(end.getTime() - 3600 * 1000 * 24 * num);
  206. picker.$emit('pick', [start, end]);
  207. }
  208. },
  209. {
  210. text: '本月',
  211. onClick(picker) {
  212. const start = new Date();
  213. var year=start.getFullYear(),month=start.getMonth()+1;
  214. var startDate=new Date(year+'-'+month+'-1');
  215. var length=that.$TM.getMonthArea().length-1;
  216. var dd=that.$TM.getMonthArea()[length].dd;
  217. var endDate= new Date(that.$TM.getMonthArea()[length-(dd<7?dd:0)].date);
  218. console.log(startDate,endDate)
  219. picker.$emit('pick', [startDate, endDate]);
  220. }
  221. },
  222. {
  223. text: '上月',
  224. onClick(picker) {
  225. const start = new Date();
  226. console.log(that.$TM.beforeMouth({yy:start.getFullYear(),mm:start.getMonth()+1,dd:1}))
  227. var month=that.$TM.beforeMouth({yy:start.getFullYear(),mm:start.getMonth()+1,dd:1})[15].mm,
  228. year=that.$TM.beforeMouth({yy:start.getFullYear(),mm:start.getMonth()+1,dd:1})[15].yy;
  229. var length=that.$TM.beforeMouth({yy:start.getFullYear(),mm:start.getMonth()+1,dd:1}).length-1;
  230. var dd=that.$TM.beforeMouth({yy:start.getFullYear(),mm:start.getMonth()+1,dd:1})[length].dd;
  231. var startDate=new Date(year+'-'+month+'-1');
  232. var endDate= new Date(that.$TM.beforeMouth({yy:start.getFullYear(),mm:start.getMonth()+1,dd:1})[length-(dd<7?dd:0)].date);
  233. // console.log(startDate,endDate)
  234. picker.$emit('pick', [startDate, endDate]);
  235. }
  236. }
  237. ]
  238. }
  239. },
  240. },
  241. mounted() {
  242. setTimeout(()=>{
  243. this.height=document.body.offsetHeight -this.$refs.title.$el.offsetHeight-this.$refs.search.$el.offsetHeight - 220;
  244. console.log(this.height)
  245. },0)
  246. this.loading = true;
  247. var date=this.$TM.getDayArea().date;
  248. this.orderClearDate=[date,date];
  249. this.getDataList();
  250. this.getWeddingPayWay();
  251. },
  252. methods:{
  253. getWeddingPayWay(){
  254. this.$axios.post('/financeSecConfirm/findClearWeddingTotal',{
  255. "orderBeginDate": this.orderDate?this.orderDate[0]:'',
  256. "orderEndDate": this.orderDate?this.orderDate[1]:'',
  257. "confirmStatus": this.confirmStatus,
  258. "storeId":this.$root.getStorage('storeId'),
  259. 'orderClearBeginDate':this.orderClearDate?this.orderClearDate[0]:'',
  260. 'orderClearEndDate':this.orderClearDate?this.orderClearDate[1]:'',
  261. }).then(res=>{
  262. console.log(res.data.list)
  263. this.payWayList=res.data.list;
  264. }).catch(err=>{
  265. this.$message.error(err.msg);
  266. })
  267. },
  268. searchList() {
  269. this.currentPage = 1;
  270. this.loading = true;
  271. this.getDataList();
  272. this.getWeddingPayWay();
  273. },
  274. getDataList(){
  275. this.loading=false;
  276. this.$axios.post('/financeSecConfirm/findClearWeddingDetail',{
  277. "orderBeginDate": this.orderDate?this.orderDate[0]:'',
  278. "orderEndDate": this.orderDate?this.orderDate[1]:'',
  279. "confirmStatus": this.confirmStatus,
  280. "storeId":this.$root.getStorage('storeId'),
  281. 'orderClearBeginDate':this.orderClearDate?this.orderClearDate[0]:'',
  282. 'orderClearEndDate':this.orderClearDate?this.orderClearDate[1]:'',
  283. }).then(res=>{
  284. console.log(res.data.list)
  285. this.tableData=res.data.list;
  286. }).catch(err=>{
  287. this.$message.error(err.msg);
  288. })
  289. },
  290. toComfirm(confirmId,weddingId){
  291. this.$axios.post('/financeSecConfirm/weddingSecConfirm',{
  292. "weddingId": weddingId,
  293. "preWeddingConfirmId": confirmId
  294. }).then(res=>{
  295. this.$message.success('核实成功');
  296. this.getDataList();
  297. }).catch(err=>{
  298. this.$message.error(err.msg);
  299. })
  300. },
  301. handleSizeChange(val) {
  302. this.pageSize = val;
  303. this.loading = true;
  304. this.getDataList();
  305. console.log(`每页 ${val} 条`);
  306. },
  307. handleCurrentChange(val) {
  308. this.currentPage = val;
  309. this.loading = true;
  310. this.getDataList();
  311. console.log(`当前页: ${val}`);
  312. }
  313. }
  314. }
  315. </script>
  316. <style scoped lang="scss">
  317. .record-total{
  318. &>div{
  319. font-size: 15px;
  320. color: #333333;
  321. font-weight: bold;
  322. }
  323. }
  324. </style>