酒店预订平台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

739 lines
33 KiB

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <!-- import CSS -->
  6. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7. </head>
  8. <body>
  9. <div id="app" class="table">
  10. <div>
  11. <div class="header-search" style="width: 100%;margin-bottom: 10px">
  12. <span>付款单ID:</span>
  13. <el-input v-model="search.id" style="width: 120px;" placeholder="请输入内容" clearable></el-input>
  14. <span>名称:</span>
  15. <el-input v-model="search.name" style="width: 120px;" placeholder="请输入内容" clearable></el-input>
  16. <span>状态</span>
  17. <el-select v-model="search.status" filterable placeholder="请选择" clearable>
  18. <el-option
  19. v-for="item in status"
  20. :key="item.id"
  21. :label="item.value"
  22. :value="item.id">
  23. </el-option>
  24. </el-select>
  25. <span>创建人</span>
  26. <el-select v-model="search.create_id" filterable placeholder="请选择" clearable>
  27. <el-option
  28. v-for="item in userList"
  29. :key="item.id"
  30. :label="item.name"
  31. :value="item.id">
  32. </el-option>
  33. </el-select>
  34. </div>
  35. <div class="header-search" style="width: 100%;margin-bottom: 10px">
  36. <span>订单ID:</span>
  37. <el-input v-model="search.order_id" style="width: 150px;" placeholder="请输入内容"></el-input>
  38. <span>成本</span>
  39. <el-input-number v-model="search.startCost" style="width: 170px;" placeholder="请输入内容" clearable></el-input-number>
  40. ~
  41. <el-input-number v-model="search.endCost" style="width: 170px;" placeholder="请输入内容" clearable></el-input-number>
  42. <el-button type="primary" icon="el-icon-search" @click="getData(1)">搜索</el-button>
  43. <el-button type="primary" icon="el-icon-plus" @click="edit(null)">新增付款单</el-button>
  44. </div>
  45. <el-table ref="multipleTable" :data="tableData" border tooltip-effect="dark"
  46. style="font-size:12px;width: 100%;margin-top: 12px">
  47. <el-table-column prop="create_id" label="创建人" min-width="70" :formatter="getUserName"></el-table-column>
  48. <el-table-column prop="id" label="付款单号" min-width="50"></el-table-column>
  49. <el-table-column prop="name" label="付款单名称" min-width="120"></el-table-column>
  50. <el-table-column prop="status" label="付款单状态" :formatter="getStatusName" min-width="150">
  51. <template slot-scope="scope">
  52. <el-radio-group v-model="scope.row.status" size="mini" @change="setStatus(scope.row)">
  53. <el-radio-button label="0">未付款</el-radio-button>
  54. <el-radio-button label="1">付款中</el-radio-button>
  55. <el-radio-button label="2">已付款</el-radio-button>
  56. </el-radio-group>
  57. </template>
  58. </el-table-column>
  59. <el-table-column prop="order_ids" label="酒店" min-width="130">
  60. <template slot-scope="scope">
  61. <div v-html="scope.row.hotel"></div>
  62. </template>
  63. </el-table-column>
  64. <el-table-column prop="total_amount" label="附加项目" min-width="130">
  65. <template slot-scope="scope">
  66. <div v-html="scope.row.item"></div>
  67. </template>
  68. </el-table-column>
  69. <el-table-column prop="create_time" label="创建时间" min-width="80"></el-table-column>
  70. <el-table-column prop="update_time" label="更新时间" min-width="80"></el-table-column>
  71. <el-table-column label="操作" min-width="180">
  72. <template slot-scope="scope">
  73. <el-button-group>
  74. <el-button type="primary" size="mini" @click="edit(scope.row)" icon="el-icon-edit">编辑</el-button>
  75. <el-button type="success" size="mini" @click="editOrderDivShow(scope.row)" icon="el-icon-share">订单</el-button>
  76. <el-button type="danger" size="mini" icon="el-icon-delete" @click="delAll(scope.row.id)">删除</el-button>
  77. </el-button-group>
  78. </template>
  79. </el-table-column>
  80. </el-table>
  81. <el-pagination
  82. :page-size="search.pageSize"
  83. :pager-count="11"
  84. layout="total, sizes, prev, pager, next, jumper"
  85. :total="total"
  86. :current-page="search.pageNum"
  87. :page-sizes="[10, 20, 30, 40, 50]"
  88. @size-change="sizeChange"
  89. @current-change="getData"
  90. @prev-click="getData"
  91. @next-click="getData"
  92. ></el-pagination>
  93. </div>
  94. <transition name="bounce" v-if="editShow">
  95. <el-dialog title="付款单详情" :visible.sync="editShow" width="90%" top="15px">
  96. <el-form ref="form" label-width="100px" style="width: 100%;padding-bottom: 20px">
  97. <div style="display: flex;width: 100%">
  98. <el-form-item v-if="editType" label="付款单ID:" style="width: 80%">
  99. <div v-html="editData.id"></div>
  100. </el-form-item>
  101. </div>
  102. <div>
  103. <el-form-item label="付款单名称:" style="width: 80%">
  104. <el-input v-model="editData.name" style="width: 120px;" placeholder="请输入内容"></el-input>
  105. </el-form-item>
  106. </div>
  107. <div>
  108. <el-form-item v-if="editType" label="付款单状态:" style="width: 80%">
  109. <el-radio-group v-model="editData.status" size="mini" disabled>
  110. <el-radio-button label="0">未付款</el-radio-button>
  111. <el-radio-button label="1">付款中</el-radio-button>
  112. <el-radio-button label="2">已付款</el-radio-button>
  113. </el-radio-group>
  114. </el-form-item>
  115. </div>
  116. <div>
  117. <el-button type="primary" @click="editDoing()" >保存</el-button>
  118. </div>
  119. </el-form>
  120. </el-dialog>
  121. </transition>
  122. <transition name="bounce" v-if="editOrderShow">
  123. <el-dialog title="详情" :visible.sync="editOrderShow" width="100%" top="15px">
  124. <el-form ref="form" label-width="100px" style="width: 100%;padding-bottom: 10px">
  125. <div style="display: flex;width: 100%">
  126. <el-form-item label="付款单ID:" style="width: 80%">
  127. <div v-html="editOrder.id"></div>
  128. </el-form-item>
  129. <el-form-item label="付款单名称:" style="width: 80%">
  130. <div v-html="editOrder.name"></div>
  131. </el-form-item>
  132. <el-form-item label="付款单状态:" style="width: 80%">
  133. <el-radio-group v-model="editOrder.status" size="mini" disabled>
  134. <el-radio-button label="0">未付款</el-radio-button>
  135. <el-radio-button label="1">付款中</el-radio-button>
  136. <el-radio-button label="2">已付款</el-radio-button>
  137. </el-radio-group>
  138. </el-form-item>
  139. </div>
  140. </el-form>
  141. <div>
  142. <div class="header-search" style="width: 100%;margin-bottom: 10px">
  143. <span>主订单ID:</span>
  144. <el-input v-model="orderMainListSearch.order_id" style="width: 120px;" placeholder="请输入内容"></el-input>
  145. <span>子订单ID:</span>
  146. <el-input v-model="orderMainListSearch.sub_order_id" style="width: 120px;" placeholder="请输入内容"></el-input>
  147. <span>订单类型:</span>
  148. <el-select v-model="orderMainListSearch.prod_type" filterable style="width: 120px;" placeholder="请选择" >
  149. <el-option
  150. v-for="item in prodTypeList"
  151. :key="item.id"
  152. :label="item.name"
  153. :value="item.id">
  154. </el-option>
  155. </el-select>
  156. <span>用户名</span>
  157. <el-input v-model="orderMainListSearch.customer_name" style="width: 120px;" placeholder="请输入内容" clearable></el-input>
  158. </div>
  159. <div class="header-search" style="width: 100%;margin-bottom: 10px">
  160. <span>附加项目</span>
  161. <el-select v-model="orderMainListSearch.item_id" filterable style="width: 120px;" placeholder="请选择" clearable>
  162. <el-option
  163. v-for="item in itemList"
  164. :key="item.id"
  165. :label="item.name"
  166. :value="item.id">
  167. </el-option>
  168. </el-select>
  169. <span>酒店</span>
  170. <el-select v-model="orderMainListSearch.hotel_id" filterable style="width: 120px;" placeholder="请选择" clearable>
  171. <el-option
  172. v-for="item in hotelList"
  173. :key="item.id"
  174. :label="item.name"
  175. :value="item.id">
  176. </el-option>
  177. </el-select>
  178. <span>确认单状态:</span>
  179. <el-select v-model="orderMainListSearch.confirm_status" filterable style="width: 120px;" placeholder="请选择" clearable>
  180. <el-option
  181. v-for="item in confirmStatusList"
  182. :key="item.id"
  183. :label="item.name"
  184. :value="item.id">
  185. </el-option>
  186. </el-select>
  187. <span>付款单状态</span>
  188. <el-select v-model="orderMainListSearch.inPayment" filterable style="width: 120px;" placeholder="请选择" clearable>
  189. <el-option
  190. v-for="item in inPaymentList"
  191. :key="item.id"
  192. :label="item.name"
  193. :value="item.id">
  194. </el-option>
  195. </el-select>
  196. <span>供应商:</span>
  197. <el-select v-model="orderMainListSearch.supplier_id" filterable style="width: 120px;" placeholder="请选择" clearable>
  198. <el-option
  199. v-for="item in supplierList"
  200. :key="item.id"
  201. :label="item.name"
  202. :value="item.id">
  203. </el-option>
  204. </el-select>
  205. </div>
  206. <div class="header-search" style="width: 100%;margin-bottom: 10px">
  207. <span>成本</span>
  208. <el-input-number v-model="orderMainListSearch.startMoney" style="width: 180px;" placeholder="请输入内容" clearable></el-input-number>
  209. ~
  210. <el-input-number v-model="orderMainListSearch.endMoney" style="width: 180px;" placeholder="请输入内容" clearable></el-input-number>
  211. <span>时间</span>
  212. <el-date-picker
  213. style="width: 180px;"
  214. v-model="orderMainListSearch.startTime"
  215. type="date"
  216. value-format="yyyy-MM-dd"
  217. :picker-options="pickerOptions"
  218. placeholder="选择日期">
  219. </el-date-picker>
  220. ~
  221. <el-date-picker
  222. style="width: 180px;"
  223. v-model="orderMainListSearch.endTime"
  224. value-format="yyyy-MM-dd"
  225. type="date"
  226. :picker-options="pickerOptions"
  227. placeholder="选择日期">
  228. </el-date-picker>
  229. <el-button type="primary" icon="el-icon-search" @click="getOrderMainData(1)">搜索</el-button>
  230. </div>
  231. <div>
  232. <el-table ref="multipleTable" :data="orderMainList" border tooltip-effect="dark" style="font-size:12px;width: 100%;margin-top: 12px" @selection-change="handleSelectionChange">
  233. <el-table-column type="selection" width="30" :selectable="checkSelect"></el-table-column>
  234. <el-table-column prop="order_id" label="主订单ID" min-width="20" ></el-table-column>
  235. <el-table-column prop="id" label="子订单ID" min-width="20" ></el-table-column>
  236. <el-table-column label="订单类型" min-width="30" :formatter="getProdTypeName" ></el-table-column>
  237. <el-table-column prop="supplier_name" label="供应商" min-width="40" ></el-table-column>
  238. <el-table-column prop="trade_order_number" label="第三方订单号" min-width="40" ></el-table-column>
  239. <el-table-column prop="hotel_name" label="酒店/项目类型" min-width="80" :formatter="getTypeName"></el-table-column>
  240. <el-table-column prop="room_name" label="房型/附加项目" min-width="80" ></el-table-column>
  241. <el-table-column prop="plan_name" label="价格方案/计价单位" min-width="40" ></el-table-column>
  242. <el-table-column prop="check_in_date" label="时间" min-width="40" >
  243. <template slot-scope="scope">
  244. <div v-html="scope.row.check_in_date"></div>
  245. <div v-html="scope.row.check_out_date"></div>
  246. </template>
  247. </el-table-column>
  248. <el-table-column prop="count" label="数量" min-width="20" ></el-table-column>
  249. <el-table-column prop="customer_name" label="出游人姓名" min-width="40" ></el-table-column>
  250. <el-table-column prop="total_cost" label="总成本" min-width="30" ></el-table-column>
  251. <el-table-column label="发单状态" min-width="30" :formatter="confirmStatusName"></el-table-column>
  252. <el-table-column prop="create_time" label="子订单生成时间" min-width="60" ></el-table-column>
  253. <el-table-column prop="payment_order_name" label="付款单" min-width="40" >
  254. <template slot-scope="scope">
  255. <div v-html="scope.row.payment_order_id"></div>
  256. <div v-html="scope.row.payment_order_name"></div>
  257. </template>
  258. </el-table-column>
  259. <el-table-column label="操作" >
  260. <template slot-scope="scope">
  261. <el-button-group>
  262. <el-button type="primary" size="mini" v-if="scope.row.payment_order_id==0 && editOrder.status==0" @click="addOrderInfo(scope.row)" icon="el-icon-edit">添加</el-button>
  263. <el-button type="danger" size="mini" v-if="scope.row.payment_order_id==editOrder.id && editOrder.status==0" @click="removeOrderMain(scope.row)" icon="el-icon-delete">移除</el-button>
  264. </el-button-group>
  265. </template>
  266. </el-table-column>
  267. </el-table>
  268. <div style="margin-top: 5px">
  269. <el-button type="primary" icon="el-icon-circle-plus" @click="addOrderAll()" :disabled="multipleSelection.length==0">添加到采购单</el-button>
  270. </div>
  271. <el-pagination
  272. :page-size="orderMainListSearch.pageSize"
  273. :pager-count="11"
  274. layout="total, sizes, prev, pager, next, jumper"
  275. :total="orderMainTotal"
  276. :current-page="orderMainListSearch.pageNum"
  277. :page-sizes="[10, 20, 30, 40, 50]"
  278. @size-change="sizeOrderMainChange"
  279. @current-change="getOrderMainData"
  280. @prev-click="getOrderMainData"
  281. @next-click="getOrderMainData"
  282. ></el-pagination>
  283. </div>
  284. </div>
  285. </el-dialog>
  286. </transition>
  287. </div>
  288. </body>
  289. <!-- import Vue before Element -->
  290. <script src="/assets/js/vue/vue.js"></script>
  291. <!-- import JavaScript -->
  292. <script src="/assets/js/vue/index.js"></script>
  293. <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
  294. <script>
  295. new Vue({
  296. el: '#app',
  297. data: function () {
  298. return {
  299. search: {
  300. order_id:"",
  301. id:"",
  302. create_id:"",
  303. name: "",
  304. status: "all",
  305. startCost:"",
  306. endCost:"",
  307. pageSize: 10,
  308. pageNum: 1
  309. },
  310. status: [
  311. {"id": "all", "value": "请选择"},
  312. {"id": 0, 'value': "未付款"},
  313. {"id": 1, 'value': "付款中"},
  314. {"id": 2, 'value': "已付款"}
  315. ],
  316. total: 0,
  317. tableData: [],
  318. userList: [],
  319. info: {
  320. id: null,
  321. name: "",
  322. status: 0,
  323. list: []
  324. },
  325. editShow: false,
  326. editType: false,
  327. editData: {},
  328. editOrderShow:false,
  329. editOrder:{},
  330. orderMainListSearch:{
  331. "payment_order_id":"",
  332. "order_id":"",
  333. "sub_order_id":"",
  334. "prod_type":"hotel",
  335. "supplier_id":"",
  336. "inPayment":"",
  337. "confirm_status":"",
  338. "customer_name":"",
  339. "startMoney":"",
  340. "endMoney":"",
  341. "startTime":"",
  342. "endTime":"",
  343. "pageNum":1,
  344. "pageSize":10,
  345. "item_id":"",
  346. "hotel_id":"",
  347. "room_id":"",
  348. "plan_id":""
  349. },
  350. orderMainTotal:0,
  351. orderMainList:[],
  352. inPaymentList:[
  353. {id:1,name:"在此付款单中"},
  354. {id:2,name:"不在此付款单中"},
  355. {id:3,name:"不在任何付款单中"}
  356. ],
  357. //1、未发单/ 2已发单、3已确认、4已取消
  358. confirmStatusList:[
  359. {id:1,name:"未发单"},
  360. {id:2,name:"已发单"},
  361. {id:3,name:"已确认"},
  362. {id:4,name:"已取消"}
  363. ],
  364. prodTypeList:[
  365. {id:"hotel",name:"酒店"},
  366. {id:"item",name:"附加项目"}
  367. ],
  368. supplierList:[],
  369. multipleSelection: [],
  370. hotelList:[],
  371. itemList:[],
  372. type_list:[],
  373. pickerOptions: {
  374. shortcuts: [{
  375. text: '今天',
  376. onClick(picker) {
  377. picker.$emit('pick', new Date());
  378. }
  379. }, {
  380. text: '昨天',
  381. onClick(picker) {
  382. const date = new Date();
  383. date.setTime(date.getTime() - 3600 * 1000 * 24);
  384. picker.$emit('pick', date);
  385. }
  386. }, {
  387. text: '一周前',
  388. onClick(picker) {
  389. const date = new Date();
  390. date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
  391. picker.$emit('pick', date);
  392. }
  393. }]
  394. },
  395. }
  396. },
  397. created() {
  398. this.getAdminUser();
  399. this.getSupplierList();
  400. this.getData(1)
  401. this.getHotelList()
  402. this.getConfig()
  403. this.getItemList()
  404. },
  405. watch: {
  406. "orderMainListSearch.prod_type" : function (newVal,oldVal){
  407. this.getOrderMainData(1)
  408. }
  409. },
  410. methods: {
  411. getTypeName(info) {
  412. for (let i = 0; i < this.type_list.length; i++) {
  413. if (this.type_list[i].id == info.hotel_name) {
  414. return this.type_list[i].name
  415. }
  416. }
  417. return info.hotel_name
  418. },
  419. getConfig(){
  420. axios.post("/hotel.php/general/config/getList?key=site.item_category", {}).then((response) => {
  421. let data = response.data;
  422. this.type_list = data.list;
  423. }).catch(function (error) {
  424. console.log(error);
  425. });
  426. },
  427. getProdTypeName(info){
  428. for (let i = 0; i < this.prodTypeList.length; i++) {
  429. if (this.prodTypeList[i].id == info.prod_type) {
  430. return this.prodTypeList[i].name
  431. }
  432. }
  433. return "-"
  434. },
  435. getHotelList(){
  436. axios.post("/hotel.php/cf_hotel_info/getHotelList", this.search).then((response) => {
  437. console.log(response)
  438. let data = response.data;
  439. this.hotelList = data.list;
  440. }).catch(function (error) {
  441. console.log(error);
  442. });
  443. },
  444. getItemList(){
  445. axios.post("/hotel.php/cf_item/getList", this.search).then((response) => {
  446. console.log(response)
  447. let data = response.data;
  448. this.itemList = data.list;
  449. }).catch(function (error) {
  450. console.log(error);
  451. });
  452. },
  453. checkSelect(row,index){
  454. if (this.editOrder.status != 0) {
  455. return false;
  456. }
  457. if (row.payment_order_id ==0) {
  458. return true;
  459. }
  460. return false;
  461. },
  462. handleSelectionChange(val) {
  463. this.multipleSelection = val;
  464. },
  465. getSupplierList(){
  466. axios.post("/hotel.php/cf_suplier_info/getList", this.search).then((response) => {
  467. console.log(response)
  468. let data = response.data;
  469. this.supplierList = data.list;
  470. }).catch(function (error) {
  471. console.log(error);
  472. });
  473. },
  474. getStatusName(info) {
  475. for (let i = 0; i < this.status.length; i++) {
  476. if (this.status[i].id == info.status) {
  477. return this.status[i].value
  478. }
  479. }
  480. return "-"
  481. },
  482. getUserName(info) {
  483. for (let i = 0; i < this.userList.length; i++) {
  484. if (this.userList[i].id == info.create_id) {
  485. return this.userList[i].name
  486. }
  487. }
  488. return "-"
  489. },
  490. confirmStatusName(info){
  491. for (let i = 0; i < this.confirmStatusList.length; i++) {
  492. if (this.confirmStatusList[i].id == info.confirm_status) {
  493. return this.confirmStatusList[i].name
  494. }
  495. }
  496. return "-"
  497. },
  498. sizeChange(pageSize) {
  499. this.search.pageSize = pageSize;
  500. this.getData(this.search.pageNum)
  501. },
  502. sizeOrderMainChange(pageSize) {
  503. this.orderMainListSearch.pageSize = pageSize;
  504. this.getOrderMainData(this.orderMainListSearch.pageNum)
  505. },
  506. //獲取列表
  507. getData(page) {
  508. this.search.pageNum = page;
  509. axios.post("/hotel.php/payment_order/getList", this.search).then((response) => {
  510. let data = response.data;
  511. console.log(this.tableData);
  512. if (data.flag) {
  513. this.tableData = data.data.list;
  514. this.total = data.data.total;
  515. console.log(this.tableData);
  516. } else {
  517. this.$message.error(response.msg);
  518. }
  519. }).catch(function (error) {
  520. console.log(error);
  521. });
  522. },
  523. getAdminUser() {
  524. axios.post("/hotel.php/auth/admin/getList", this.search).then((response) => {
  525. this.userList = response.data.list;
  526. }).catch(function (error) {
  527. console.log(error);
  528. });
  529. },
  530. edit(info) {
  531. if (info == null) {
  532. this.editType = false;
  533. this.editData = {
  534. name: ""
  535. }
  536. } else {
  537. this.editType = true;
  538. this.editData = {
  539. id:info.id,
  540. name: info.name,
  541. status:info.status
  542. }
  543. }
  544. this.editShow = true;
  545. },
  546. editDoing(){
  547. axios.post("/hotel.php/payment_order/save", this.editData).then( (response)=> {
  548. let data = response.data;
  549. console.log(this.tableData);
  550. if (data.flag) {
  551. this.$message.success("保存成功");
  552. this.editShow = false;
  553. this.getData(1);
  554. } else {
  555. this.$message.error(data.msg);
  556. }
  557. }).catch(function (error) {
  558. this.$message.error("保存失败");
  559. console.log(error);
  560. });
  561. },
  562. setStatus(info){
  563. this.$confirm('确定修改状态?', '提示', {
  564. confirmButtonText: '确定',
  565. cancelButtonText: '取消',
  566. type: 'warning'
  567. }).then(() => {
  568. axios.post("/hotel.php/payment_order/setStatus", info).then( (response)=> {
  569. let data = response.data;
  570. if (data.flag) {
  571. this.$message.success("设置成功");
  572. } else {
  573. this.$message.error(data.msg);
  574. this.getData(this.search.pageNum)
  575. }
  576. }).catch(function (error) {
  577. this.$message.error("保存失败");
  578. console.log(error);
  579. this.getData(this.search.pageNum)
  580. });
  581. }).catch(() => {
  582. this.$message.success("已取消");
  583. this.getData(this.search.pageNum)
  584. })
  585. },
  586. editOrderDivShow(info){
  587. console.log(info);
  588. this.editOrder = info;
  589. this.orderMainListSearch.payment_order_id = info.id;
  590. this.orderMainList=[];
  591. this.getOrderMainData(1);
  592. this.editOrderShow = true;
  593. },
  594. getOrderMainData(page){
  595. this.orderMainListSearch.pageNum = page;
  596. axios.post("/hotel.php/payment_order/getSubOrderList", this.orderMainListSearch).then((response) => {
  597. let data = response.data;
  598. console.log(this.tableData);
  599. if (data.flag) {
  600. this.orderMainList = data.data.list;
  601. this.orderMainTotal = data.data.total;
  602. console.log(this.orderMainList);
  603. } else {
  604. this.$message.error(data.msg);
  605. }
  606. }).catch(function (error) {
  607. console.log(error);
  608. });
  609. },
  610. addOrderInfo(info){
  611. let param = {
  612. hotel_id:[],
  613. item_id:[],
  614. id:this.editOrder.id
  615. }
  616. if (info.prod_type=='hotel') {
  617. param.hotel_id.push(info.id)
  618. }else{
  619. param.item_id.push(info.id)
  620. }
  621. this.addOrderMain(param)
  622. },
  623. addOrderMain(param){
  624. axios.post("/hotel.php/payment_order/addOrderMain", param).then((response) => {
  625. let data = response.data;
  626. if (data.flag) {
  627. this.$message.success("添加成功");
  628. this.getOrderMainData(this.orderMainListSearch.pageNum)
  629. this.getData(this.search.pageNum)
  630. } else {
  631. this.$message.error(data.msg);
  632. }
  633. }).catch(function (error) {
  634. console.log(error);
  635. });
  636. },
  637. addOrderAll(){
  638. let param = {
  639. hotel_id:[],
  640. item_id:[],
  641. id:this.editOrder.id
  642. }
  643. let length = this.multipleSelection.length;
  644. for (var k = 0; k < length; k++) {
  645. if (this.multipleSelection[k].prod_type=='hotel'){
  646. param.hotel_id.push(this.multipleSelection[k].id)
  647. }else{
  648. param.item_id.push(this.multipleSelection[k].id)
  649. }
  650. }
  651. this.addOrderMain(param);
  652. },
  653. removeOrderMain(info){
  654. let param = {
  655. hotel_id:[],
  656. item_id:[],
  657. id:this.editOrder.id
  658. }
  659. if (info.prod_type=='hotel') {
  660. param.hotel_id.push(info.id)
  661. }else{
  662. param.item_id.push(info.id)
  663. }
  664. axios.post("/hotel.php/payment_order/removeOrderMain", param).then((response) => {
  665. let data = response.data;
  666. if (data.flag) {
  667. this.$message.success("移除成功");
  668. this.getOrderMainData(this.orderMainListSearch.pageNum)
  669. this.getData(this.search.pageNum)
  670. } else {
  671. this.$message.error(data.msg);
  672. }
  673. }).catch(function (error) {
  674. console.log(error);
  675. });
  676. },
  677. delAll(id){
  678. let param = {
  679. id:id
  680. }
  681. this.$confirm('确定删除采购单?', '提示', {
  682. confirmButtonText: '确定',
  683. cancelButtonText: '取消',
  684. type: 'warning'
  685. }).then(() => {
  686. axios.post("/hotel.php/payment_order/delAll", param).then((response) => {
  687. let data = response.data;
  688. if (data.flag) {
  689. this.$message.success("移除成功");
  690. this.getData(this.search.pageNum)
  691. } else {
  692. this.$message.error(data.msg);
  693. }
  694. }).catch(function (error) {
  695. console.log(error);
  696. });
  697. }).catch(() => {
  698. this.$message.success("已取消");
  699. });
  700. }
  701. }
  702. })
  703. </script>
  704. <style lang="scss" scoped>
  705. .el-table thead {
  706. background-color: #5a5e66 !important;
  707. }
  708. .header-search {
  709. font-size: 14px;
  710. font-weight: 900;
  711. }
  712. body {
  713. background-color: white;
  714. }
  715. .table {
  716. width: 100%;
  717. font-size: 12px;
  718. margin-top: 12px;
  719. background-color: white;
  720. }
  721. .el-form-item{
  722. margin-bottom: 5px !important;
  723. }
  724. </style>
  725. </html>