酒店预订平台
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.
 
 
 
 
 
 

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