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

пре 3 година
пре 2 година
пре 3 година
пре 3 година
пре 2 година
пре 2 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 2 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 2 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 2 година
пре 3 година
пре 3 година
пре 2 година
пре 2 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 2 година
пре 3 година
пре 3 година
пре 3 година
пре 2 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 3 година
пре 2 година
пре 3 година
пре 3 година
пре 3 година
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743
  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: 150px;" placeholder="请输入内容"></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.startMoney" style="width: 170px;" placeholder="请输入内容" clearable></el-input-number>
  40. ~
  41. <el-input-number v-model="search.endMoney" 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="140">
  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="150"></el-table-column>
  60. <el-table-column prop="total_amount" label="金额" min-width="60"></el-table-column>
  61. <el-table-column prop="create_time" label="创建时间" min-width="80"></el-table-column>
  62. <el-table-column prop="update_time" label="更新时间" min-width="80"></el-table-column>
  63. <el-table-column label="操作" min-width="180">
  64. <template slot-scope="scope">
  65. <el-button-group>
  66. <el-button type="primary" size="mini" @click="edit(scope.row)" icon="el-icon-edit" style="margin: 5px;">编辑</el-button>
  67. <el-button type="success" size="mini" @click="editOrderDivShow(scope.row)" icon="el-icon-share" style="margin: 5px;">订单</el-button>
  68. <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>
  69. <el-button type="danger" size="mini" icon="el-icon-search" @click="showFile(scope.row.id)" style="margin: 5px;">附件</el-button>
  70. </el-button-group>
  71. </template>
  72. </el-table-column>
  73. </el-table>
  74. <el-pagination
  75. :page-size="search.pageSize"
  76. :pager-count="11"
  77. layout="total, sizes, prev, pager, next, jumper"
  78. :total="total"
  79. :current-page="search.pageNum"
  80. :page-sizes="[10, 20, 30, 40, 50]"
  81. @size-change="sizeChange"
  82. @current-change="getData"
  83. @prev-click="getData"
  84. @next-click="getData"
  85. ></el-pagination>
  86. </div>
  87. <transition name="bounce" v-if="editShow">
  88. <el-dialog title="收款单详情" :visible.sync="editShow" width="90%" top="15px">
  89. <el-form ref="form" label-width="100px" style="width: 100%;padding-bottom: 20px">
  90. <div style="display: flex;width: 100%">
  91. <el-form-item v-if="editType" label="收款单ID:" style="width: 80%">
  92. <div v-html="editData.id"></div>
  93. </el-form-item>
  94. </div>
  95. <div>
  96. <el-form-item label="收款单名称:" style="width: 80%">
  97. <el-input v-model="editData.name" style="width: 150px;" placeholder="请输入内容"></el-input>
  98. </el-form-item>
  99. </div>
  100. <div>
  101. <el-form-item v-if="editType" label="收款单状态:" style="width: 80%">
  102. <el-radio-group v-model="editData.status" size="mini" disabled>
  103. <el-radio-button label="0">未收款</el-radio-button>
  104. <el-radio-button label="1">收款中</el-radio-button>
  105. <el-radio-button label="2">已收款</el-radio-button>
  106. </el-radio-group>
  107. </el-form-item>
  108. </div>
  109. <div>
  110. <el-button type="primary" @click="editDoing()" >保存</el-button>
  111. </div>
  112. </el-form>
  113. </el-dialog>
  114. </transition>
  115. <transition name="bounce" v-if="editOrderShow">
  116. <el-dialog title="详情" :visible.sync="editOrderShow" width="90%" top="15px">
  117. <el-form ref="form" label-width="100px" style="width: 100%;padding-bottom: 10px">
  118. <div style="display: flex;width: 100%">
  119. <el-form-item label="收款单ID:" style="width: 80%">
  120. <div v-html="editOrder.id"></div>
  121. </el-form-item>
  122. <el-form-item label="收款单名称:" style="width: 80%">
  123. <div v-html="editOrder.name"></div>
  124. </el-form-item>
  125. <el-form-item label="收款单状态:" style="width: 80%">
  126. <el-radio-group v-model="editOrder.status" size="mini" disabled>
  127. <el-radio-button label="0">未收款</el-radio-button>
  128. <el-radio-button label="1">收款中</el-radio-button>
  129. <el-radio-button label="2">已收款</el-radio-button>
  130. </el-radio-group>
  131. </el-form-item>
  132. </div>
  133. </el-form>
  134. <div>
  135. <div class="header-search" style="width: 100%;margin-bottom: 10px">
  136. <span>订单状态:</span>
  137. <el-select v-model="orderMainListSearch.order_status" filterable style="width: 150px;" placeholder="请选择" clearable>
  138. <el-option
  139. v-for="item in orderMainStatus"
  140. :key="item.id"
  141. :label="item.name"
  142. :value="item.id">
  143. </el-option>
  144. </el-select>
  145. <span>收款单状态</span>
  146. <el-select v-model="orderMainListSearch.inReceipt" style="width: 150px;" filterable placeholder="请选择" clearable>
  147. <el-option
  148. v-for="item in inReceipt"
  149. :key="item.id"
  150. :label="item.name"
  151. :value="item.id">
  152. </el-option>
  153. </el-select>
  154. </div>
  155. <div class="header-search" style="width: 100%;margin-bottom: 10px">
  156. <span>用户名</span>
  157. <el-input v-model="orderMainListSearch.user_name" style="width: 150px;" placeholder="请输入内容" clearable></el-input>
  158. <span>渠道:</span>
  159. <el-select v-model="orderMainListSearch.channel_id" style="width: 150px;" filterable placeholder="请选择" clearable>
  160. <el-option
  161. v-for="item in channelList"
  162. :key="item.id"
  163. :label="item.name"
  164. :value="item.id">
  165. </el-option>
  166. </el-select>
  167. <span>渠道订单号:</span>
  168. <el-input v-model="orderMainListSearch.channel_order_no" style="width: 150px;" placeholder="请输入内容"></el-input>
  169. <span>专员</span>
  170. <el-select v-model="orderMainListSearch.commissioner_id" style="width: 150px;" filterable placeholder="请选择" clearable>
  171. <el-option
  172. v-for="item in userList"
  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.create_id" style="width: 150px;" filterable placeholder="请选择" clearable>
  180. <el-option
  181. v-for="item in userList"
  182. :key="item.id"
  183. :label="item.name"
  184. :value="item.id">
  185. </el-option>
  186. </el-select>
  187. </div>
  188. <div class="header-search" style="width: 100%;margin-bottom: 10px">
  189. <span>订单号</span>
  190. <el-input v-model="orderMainListSearch.order_id" style="width: 150px;" placeholder="请输入内容" clearable></el-input>
  191. <span>手机号</span>
  192. <el-input v-model="orderMainListSearch.user_phone" style="width: 150px;" placeholder="请输入内容" clearable></el-input>
  193. <span>金额</span>
  194. <el-input-number v-model="orderMainListSearch.startMoney" style="width: 170px;" placeholder="请输入内容" clearable></el-input-number>
  195. ~
  196. <el-input-number v-model="orderMainListSearch.endMoney" style="width: 170px;" placeholder="请输入内容" clearable></el-input-number>
  197. <span>时间</span>
  198. <el-date-picker
  199. style="width: 150px;"
  200. v-model="orderMainListSearch.startTime"
  201. type="date"
  202. value-format="yyyy-MM-dd"
  203. :picker-options="pickerOptions"
  204. placeholder="选择日期">
  205. </el-date-picker>
  206. ~
  207. <el-date-picker
  208. style="width: 150px;"
  209. v-model="orderMainListSearch.endTime"
  210. value-format="yyyy-MM-dd"
  211. type="date"
  212. :picker-options="pickerOptions"
  213. placeholder="选择日期">
  214. </el-date-picker>
  215. <el-button type="primary" icon="el-icon-search" @click="getOrderMainData(1)">搜索</el-button>
  216. </div>
  217. <div>
  218. <el-table ref="multipleTable" :data="orderMainList" border tooltip-effect="dark" style="font-size:12px;width: 100%;margin-top: 12px" @selection-change="handleSelectionChange">
  219. <el-table-column type="selection" width="30" :selectable="checkSelect"></el-table-column>
  220. <el-table-column prop="id" label="订单ID" min-width="40" ></el-table-column>
  221. <el-table-column prop="commissioner" label="专员" min-width="40" ></el-table-column>
  222. <el-table-column prop="channel_name" label="渠道" min-width="80" ></el-table-column>
  223. <el-table-column prop="channel_order_no" label="渠道订单号" min-width="90" ></el-table-column>
  224. <el-table-column prop="create_id" label="下单人" min-width="50" :formatter="getUserName"></el-table-column>
  225. <el-table-column prop="user_name" label="用户名称" min-width="50" ></el-table-column>
  226. <el-table-column prop="user_phone" label="手机号" min-width="60" ></el-table-column>
  227. <el-table-column prop="total_amount" label="总金额" min-width="40" ></el-table-column>
  228. <el-table-column prop="order_status" label="状态" min-width="40" :formatter="getOrderMainStatus"></el-table-column>
  229. <el-table-column prop="create_time" label="下单时间" min-width="80" ></el-table-column>
  230. <el-table-column prop="receipt_order_id" label="收款单ID" min-width="40" ></el-table-column>
  231. <el-table-column prop="receipt_order_name" label="收款单名称" min-width="80" ></el-table-column>
  232. <el-table-column label="操作" >
  233. <template slot-scope="scope">
  234. <el-button-group>
  235. <el-button type="primary" size="mini" v-if="scope.row.receipt_order_id==0 && editOrder.status==0" @click="addOrderMain(scope.row.id)" icon="el-icon-edit">添加</el-button>
  236. <el-button type="danger" size="mini" v-if="scope.row.receipt_order_id==editOrder.id && editOrder.status==0" @click="removeOrderMain(scope.row.id)" icon="el-icon-delete">移除</el-button>
  237. </el-button-group>
  238. </template>
  239. </el-table-column>
  240. </el-table>
  241. <div style="margin-top: 5px">
  242. <el-button type="primary" icon="el-icon-circle-plus" @click="addOrderAll()" :disabled="multipleSelection.length==0">添加到采购单</el-button>
  243. </div>
  244. <el-pagination
  245. :page-size="orderMainListSearch.pageSize"
  246. :pager-count="11"
  247. layout="total, sizes, prev, pager, next, jumper"
  248. :total="orderMainTotal"
  249. :current-page="orderMainListSearch.pageNum"
  250. :page-sizes="[10, 20, 30, 40, 50]"
  251. @size-change="sizeOrderMainChange"
  252. @current-change="getOrderMainData"
  253. @prev-click="getOrderMainData"
  254. @next-click="getOrderMainData"
  255. ></el-pagination>
  256. </div>
  257. </div>
  258. </el-dialog>
  259. </transition>
  260. <transition name="bounce" v-if="showFileFlag">
  261. <el-dialog title="附件详情" :visible.sync="showFileFlag" width="90%" top="15px">
  262. <el-form ref="form" label-width="100px" style="width: 100%;padding-bottom: 20px">
  263. <div style="display: flex;width: 100%">
  264. <el-form-item label="账单ID:" style="width: 80%">
  265. <div v-html="fileData.id"></div>
  266. </el-form-item>
  267. </div>
  268. <div>
  269. <el-form-item label="名称标识:" style="width: 80%">
  270. <el-input v-model="fileData.name" style="width: 120px;" placeholder="请输入内容" clearable></el-input>
  271. </el-form-item>
  272. </div>
  273. <div>
  274. <el-form-item label="文件:" style="width: 80%">
  275. <div>
  276. <el-upload
  277. :multiple="false"
  278. :limit="1"
  279. class="upload-demo"
  280. action="/hotel.php/ajax/upload"
  281. :on-change="handleChange"
  282. :on-exceed="handleExceed"
  283. :file-list="fileList">
  284. <el-button size="small" type="primary">点击上传</el-button>
  285. </el-upload>
  286. </div>
  287. </el-form-item>
  288. </div>
  289. <div>
  290. <el-button type="primary" @click="fileSubmit()" >提交</el-button>
  291. </div>
  292. </el-form>
  293. <el-table ref="multipleTable" :data="fileTable" border tooltip-effect="dark" style="font-size:12px;width: 100%;margin-top: 12px">
  294. <el-table-column prop="name" label="名称标识" min-width="140" ></el-table-column>
  295. <el-table-column prop="create_name" label="创建人" min-width="70" ></el-table-column>
  296. <el-table-column prop="create_time" label="创建时间" min-width="70" ></el-table-column>
  297. <el-table-column label="点击下载" min-width="40" >
  298. <template slot-scope="scope">
  299. <el-link :href="scope.row.file" target="_blank" style="color: #0a568c">下载</el-link>
  300. </template>
  301. </el-table-column>
  302. </el-table>
  303. </el-dialog>
  304. </transition>
  305. </div>
  306. </body>
  307. <!-- import Vue before Element -->
  308. <script src="/assets/js/vue/vue.js"></script>
  309. <!-- import JavaScript -->
  310. <script src="/assets/js/vue/index.js"></script>
  311. <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
  312. <script>
  313. new Vue({
  314. el: '#app',
  315. data: function () {
  316. return {
  317. search: {
  318. order_id:"",
  319. id:"",
  320. create_id:"",
  321. name: "",
  322. status: "all",
  323. startMoney:0,
  324. endMoney:0,
  325. pageSize: 10,
  326. pageNum: 1
  327. },
  328. status: [
  329. {"id": "all", "value": "请选择"},
  330. {"id": 0, 'value': "未收款"},
  331. {"id": 1, 'value': "收款中"},
  332. {"id": 2, 'value': "已收款"}
  333. ],
  334. total: 0,
  335. tableData: [],
  336. userList: [],
  337. info: {
  338. id: null,
  339. name: "",
  340. status: 0,
  341. list: []
  342. },
  343. editShow: false,
  344. editType: false,
  345. editData: {},
  346. editOrderShow:false,
  347. editOrder:{},
  348. orderMainListSearch:{
  349. "receipt_order_id":"",
  350. "inReceipt":"",
  351. "order_id":"",
  352. "channel_order_no":"",
  353. "channel_id":"",
  354. "order_status":"",
  355. "commissioner_id":"",
  356. "user_name":"",
  357. "user_phone":"",
  358. "create_id":"",
  359. "startMoney":"",
  360. "endMoney":"",
  361. "startTime":"",
  362. "endTime":"",
  363. "pageNum":1,
  364. "pageSize":10
  365. },
  366. orderMainTotal:0,
  367. orderMainList:[],
  368. inReceipt:[
  369. {id:1,name:"在此收款单中"},
  370. {id:2,name:"不在此收款单中"},
  371. {id:3,name:"不在任何收款单中"}
  372. ],
  373. //0待处理 1已确认 2部分取消 10已完成 11已取消
  374. orderMainStatus:[
  375. {id:0,name:"待处理"},
  376. {id:1,name:"已确认"},
  377. {id:2,name:"部分取消"},
  378. {id:3,name:"处理中"},
  379. {id:10,name:"已完成"},
  380. {id:11,name:"已取消"}
  381. ],
  382. channelList:[],
  383. multipleSelection: [],
  384. pickerOptions: {
  385. shortcuts: [{
  386. text: '今天',
  387. onClick(picker) {
  388. picker.$emit('pick', new Date());
  389. }
  390. }, {
  391. text: '昨天',
  392. onClick(picker) {
  393. const date = new Date();
  394. date.setTime(date.getTime() - 3600 * 1000 * 24);
  395. picker.$emit('pick', date);
  396. }
  397. }, {
  398. text: '一周前',
  399. onClick(picker) {
  400. const date = new Date();
  401. date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
  402. picker.$emit('pick', date);
  403. }
  404. }]
  405. },
  406. showFileFlag:false,
  407. fileData:{
  408. "id":"",
  409. "name":"",
  410. "file":"",
  411. "type":"receipt"
  412. },
  413. fileTable:[],
  414. fileList:[]
  415. }
  416. },
  417. created() {
  418. this.getAdminUser();
  419. this.getChannelList();
  420. this.getData(1)
  421. },
  422. methods: {
  423. handleChange(file, fileList) {
  424. this.fileList = fileList.slice(-3);
  425. },
  426. showFile(id){
  427. this.fileData["id"]=id;
  428. this.showFileFlag = true
  429. axios.post("/hotel.php/order_main/getFileList", this.fileData).then((response) => {
  430. let data = response.data;
  431. if (data.flag) {
  432. this.fileTable = data.data
  433. } else {
  434. this.$message.error(response.msg);
  435. }
  436. }).catch(function (error) {
  437. console.log(error);
  438. });
  439. },
  440. handleExceed(files, fileList) {
  441. this.$message.warning(`当前限制选择 1 个文件`);
  442. },
  443. fileSubmit(){
  444. if (this.fileList.length==0) {
  445. this.$message.error(`请选择文件`);
  446. return false;
  447. }
  448. if (this.fileData["name"]=="") {
  449. this.$message.error(`请输入名称标识`);
  450. return false;
  451. }
  452. let file = this.fileList[0].response.data.url;
  453. this.fileData["file"]=file;
  454. axios.post("/hotel.php/order_main/addFileInfo", this.fileData).then((response) => {
  455. let data = response.data;
  456. if (data.flag) {
  457. this.fileList=[]
  458. this.showFile(this.fileData["id"])
  459. } else {
  460. this.$message.error(response.msg);
  461. }
  462. }).catch(function (error) {
  463. console.log(error);
  464. });
  465. },
  466. checkSelect(row,index){
  467. if (this.editOrder.status != 0) {
  468. return false;
  469. }
  470. if (row.receipt_order_id ==0) {
  471. return true;
  472. }
  473. return false;
  474. },
  475. handleSelectionChange(val) {
  476. this.multipleSelection = val;
  477. },
  478. getChannelList(){
  479. axios.post("/hotel.php/cf_channel_info/getList", this.search).then((response) => {
  480. console.log(response)
  481. let data = response.data;
  482. this.channelList = data.list;
  483. }).catch(function (error) {
  484. console.log(error);
  485. });
  486. },
  487. getStatusName(info) {
  488. for (let i = 0; i < this.status.length; i++) {
  489. if (this.status[i].id == info.status) {
  490. return this.status[i].value
  491. }
  492. }
  493. return "-"
  494. },
  495. getUserName(info) {
  496. for (let i = 0; i < this.userList.length; i++) {
  497. if (this.userList[i].id == info.create_id) {
  498. return this.userList[i].name
  499. }
  500. }
  501. return "-"
  502. },
  503. getOrderMainStatus(info){
  504. for (let i = 0; i < this.orderMainStatus.length; i++) {
  505. if (this.orderMainStatus[i].id == info.order_status) {
  506. return this.orderMainStatus[i].name
  507. }
  508. }
  509. return "-"
  510. },
  511. sizeChange(pageSize) {
  512. this.search.pageSize = pageSize;
  513. this.getData(this.search.pageNum)
  514. },
  515. sizeOrderMainChange(pageSize) {
  516. this.orderMainListSearch.pageSize = pageSize;
  517. this.getOrderMainData(this.orderMainListSearch.pageNum)
  518. },
  519. //獲取列表
  520. getData(page) {
  521. this.search.pageNum = page;
  522. axios.post("/hotel.php/receipt_order/getList", this.search).then((response) => {
  523. let data = response.data;
  524. console.log(this.tableData);
  525. if (data.flag) {
  526. this.tableData = data.data.list;
  527. this.total = data.data.total;
  528. console.log(this.tableData);
  529. } else {
  530. this.$message.error(response.msg);
  531. }
  532. }).catch(function (error) {
  533. console.log(error);
  534. });
  535. },
  536. getAdminUser() {
  537. axios.post("/hotel.php/auth/admin/getList", this.search).then((response) => {
  538. this.userList = response.data.list;
  539. }).catch(function (error) {
  540. console.log(error);
  541. });
  542. },
  543. edit(info) {
  544. if (info == null) {
  545. this.editType = false;
  546. this.editData = {
  547. name: ""
  548. }
  549. } else {
  550. this.editType = true;
  551. this.editData = {
  552. id:info.id,
  553. name: info.name,
  554. status:info.status
  555. }
  556. }
  557. this.editShow = true;
  558. },
  559. editDoing(){
  560. axios.post("/hotel.php/receipt_order/save", this.editData).then( (response)=> {
  561. let data = response.data;
  562. console.log(this.tableData);
  563. if (data.flag) {
  564. this.$message.success("保存成功");
  565. this.editShow = false;
  566. this.getData(1);
  567. } else {
  568. this.$message.error(data.msg);
  569. }
  570. }).catch(function (error) {
  571. this.$message.error("保存失败");
  572. console.log(error);
  573. });
  574. },
  575. setStatus(info){
  576. this.$confirm('确定修改状态?', '提示', {
  577. confirmButtonText: '确定',
  578. cancelButtonText: '取消',
  579. type: 'warning'
  580. }).then(() => {
  581. axios.post("/hotel.php/receipt_order/setStatus", info).then( (response)=> {
  582. let data = response.data;
  583. if (data.flag) {
  584. this.$message.success("保存成功");
  585. } else {
  586. this.$message.error(data.msg);
  587. this.getData(this.search.pageNum)
  588. }
  589. }).catch(function (error) {
  590. this.$message.error("保存失败");
  591. console.log(error);
  592. this.getData(this.search.pageNum)
  593. });
  594. }).catch(() => {
  595. this.$message.success("已取消");
  596. this.getData(this.search.pageNum)
  597. })
  598. },
  599. editOrderDivShow(info){
  600. console.log(info);
  601. this.editOrder = info;
  602. this.orderMainListSearch.receipt_order_id = info.id;
  603. this.orderMainList=[];
  604. this.getOrderMainData(1);
  605. this.editOrderShow = true;
  606. },
  607. getOrderMainData(page){
  608. this.orderMainListSearch.pageNum = page;
  609. axios.post("/hotel.php/receipt_order/getOrderMainList", this.orderMainListSearch).then((response) => {
  610. let data = response.data;
  611. console.log(this.tableData);
  612. if (data.flag) {
  613. this.orderMainList = data.data.list;
  614. this.orderMainTotal = data.data.total;
  615. console.log(this.orderMainList);
  616. } else {
  617. this.$message.error(data.msg);
  618. }
  619. }).catch(function (error) {
  620. console.log(error);
  621. });
  622. },
  623. addOrderMain(order_id){
  624. let param = {
  625. order_id:order_id,
  626. id:this.editOrder.id
  627. }
  628. axios.post("/hotel.php/receipt_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 orderId = "";
  643. let length = this.multipleSelection.length;
  644. for (var k = 0; k < length; k++) {
  645. if (orderId == "") {
  646. orderId = this.multipleSelection[k].id;
  647. continue;
  648. }
  649. orderId =orderId+","+this.multipleSelection[k].id;
  650. }
  651. this.addOrderMain(orderId);
  652. },
  653. removeOrderMain(order_id){
  654. let param = {
  655. order_id:order_id,
  656. id:this.editOrder.id
  657. }
  658. axios.post("/hotel.php/receipt_order/removeOrderMain", param).then((response) => {
  659. let data = response.data;
  660. if (data.flag) {
  661. this.$message.success("移除成功");
  662. this.getOrderMainData(this.orderMainListSearch.pageNum)
  663. this.getData(this.search.pageNum)
  664. } else {
  665. this.$message.error(data.msg);
  666. }
  667. }).catch(function (error) {
  668. console.log(error);
  669. });
  670. },
  671. delAll(id){
  672. let param = {
  673. id:id
  674. }
  675. this.$confirm('确定删除采购单?', '提示', {
  676. confirmButtonText: '确定',
  677. cancelButtonText: '取消',
  678. type: 'warning'
  679. }).then(() => {
  680. axios.post("/hotel.php/receipt_order/delAll", param).then((response) => {
  681. let data = response.data;
  682. if (data.flag) {
  683. this.$message.success("移除成功");
  684. this.getData(this.search.pageNum)
  685. } else {
  686. this.$message.error(data.msg);
  687. }
  688. }).catch(function (error) {
  689. console.log(error);
  690. });
  691. }).catch(() => {
  692. this.$message.info("保存成功");
  693. });
  694. }
  695. }
  696. })
  697. </script>
  698. <style lang="scss" scoped>
  699. .upload .el-upload__input {
  700. display: none !important;
  701. }
  702. input[type="file"] {
  703. display: none !important;
  704. }
  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>