index.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690
  1. <template>
  2. <view>
  3. <z-navbar :title="(type==0?'新建':'编辑')+'预定'" back>
  4. <view slot="right" @click="submit">保存</view>
  5. </z-navbar>
  6. <w-picker mode="date" startYear="2000" endYear="2100" v-model="info.alertDate" :current="true" fields="day"
  7. @confirm="onConfirm($event)" @cancel="onCancel" :disabled-after="false" ref="date"></w-picker>
  8. <z-form :model="info" :rules="rules" ref="info">
  9. <!-- 默认已订 -->
  10. <z-form-item label="预定状态" prop="orderState">
  11. <image slot="icon" class="common_icon" src="../../../static/icon_list.png"></image>
  12. <order-state v-model="info.orderState" placeholder="请选择"></order-state>
  13. </z-form-item>
  14. <z-divider></z-divider>
  15. <z-form-item label="客户姓名" prop="customName" showline>
  16. <image slot="icon" class="common_icon" src="../../../static/icon_person.png"></image>
  17. <z-input v-model="info.customName" placeholder="点击填写"></z-input>
  18. </z-form-item>
  19. <z-form-item label="客户电话" prop="phone" showline>
  20. <image slot="icon" class="common_icon" src="../../../static/icon_tel.png"></image>
  21. <z-input type="number" maxlength="11" v-model="info.phone" placeholder="点击填写"></z-input>
  22. </z-form-item>
  23. <z-form-item label="预定场地" prop="houseId" showline>
  24. <image slot="icon" class="common_icon" src="../../../static/icon_local.png"></image>
  25. <want-house v-model="info.houseId" @checkedDetail="houseInfoCheckedDetail" placeholder="选择预定场地">
  26. </want-house>
  27. </z-form-item>
  28. <!-- 只有宴会厅时显示预定类型-->
  29. <z-form-item label="预定类型" prop="orderTypeId" showline dynamic
  30. :required="info.houseInfo&&info.houseInfo.houseTypeCode=='01'?true:false"
  31. v-show="info.houseInfo&&info.houseInfo.houseTypeCode=='01'">
  32. <image slot="icon" class="common_icon" src="../../../static/icon_kuai.png"></image>
  33. <order-type v-model="info.orderTypeId" placeholder="预定类型"></order-type>
  34. </z-form-item>
  35. <z-form-item label="预定日期" v-show="info.houseId" prop="orderTime" showline>
  36. <image slot="icon" class="common_icon" src="../../../static/icon_time.png"></image>
  37. <date-select :houseInfo="info.houseInfo" @changeDate="changeDate" v-model="info.orderTime"
  38. placeholder="选择预定时间"></date-select>
  39. </z-form-item>
  40. <!-- 包房没有收费方式 预定套餐 提醒日期 总计应收 定金默认0 -->
  41. <z-form-item label="收费方式" prop="mainPayType" v-if="info.houseInfo&&info.houseInfo.houseTypeCode!='03'"
  42. showline>
  43. <image slot="icon" class="common_icon" src="../../../static/icon_price.png"></image>
  44. <payment-way :payTypes="info.payTypes" @payTypes="getPayTypes" @getMainPayTypeText="getMainPayTypeText"
  45. v-model="info.mainPayType" placeholder="选择收费方式"></payment-way>
  46. </z-form-item>
  47. <z-form-item label="选择套餐" prop="packageId" dynamic :required="false" showline
  48. v-show="info.houseInfo&&info.houseInfo.houseTypeCode!='03'">
  49. <image slot="icon" class="common_icon" src="../../../static/icon_dui.png"></image>
  50. <view class="flex-n fac fje">
  51. <order-package v-model="info.packageId" placeholder="选择套餐" @change="changePackage"></order-package>
  52. <view v-if="info.packageId" class="order_package_manage ml-20 iconfont iconbianji"
  53. @click="modifyPackage=true"></view>
  54. </view>
  55. <extra-item title="修改套餐" hideReal :packageId="info.packageId" v-model="info.orderPackage"
  56. :visible.sync="modifyPackage" @getTotal="getPackageTotal"></extra-item>
  57. </z-form-item>
  58. <z-form-item label="开餐时间" prop="eatTime" showline arrow v-show="info.packageId"
  59. :required="info.packageId?true:false" dynamic>
  60. <image slot="icon" class="common_icon" src="../../../static/icon_time.png"></image>
  61. <z-text v-model="eatTimeText" placeholder="选择开餐时间" @click="showEatTime=true"></z-text>
  62. <z-time-select :visible.sync="showEatTime" :step="10" v-model="info.eatTime"
  63. :start="eatTimeBegin||'07:00'" :end="eatTimeEnd||'24:00'" @ok="selectEatTime"></z-time-select>
  64. </z-form-item>
  65. <z-form-item label="增加项目" prop="orderExtra" arrow showline>
  66. <image slot="icon" class="common_icon" src="../../../static/icon_jia.png"></image>
  67. <z-text :value="(info.extraRealMoney||0)+'元'" placeholder="选择增加项目" @click="addItem=true"></z-text>
  68. <extra-item title="增加项目" :visible.sync="addItem" v-model="info.orderExtra" @getTotal="getExtraTotal">
  69. </extra-item>
  70. </z-form-item>
  71. <z-form-item label="订金(元)" prop="downPayment" showline :required="(info.orderState=='02')?true:false"
  72. dynamic>
  73. <image slot="icon" class="common_icon" src="../../../static/icon_money.png"></image>
  74. <z-input v-model="info.downPayment" type="number" placeholder="¥"></z-input>
  75. <!-- <z-text :value="info.downPayment||'0'" textColor="#999" placeholder="" v-else></z-text> -->
  76. </z-form-item>
  77. <template
  78. v-if="info.houseInfo&&info.houseInfo.houseTypeCode!='03'&&info.orderTime&&new Date(info.orderTime.split(' ')[0]).getTime()>=new Date($Date.getDayDate().date).getTime()">
  79. <z-divider></z-divider>
  80. <z-form-item height="100rpx" label="关闭提醒" showline>
  81. <switch :checked="switchAlert" @change="changeSwitchAlert" />
  82. </z-form-item>
  83. <z-form-item label="提醒日期" prop="alertDate" v-show="!switchAlert" arrow :required="!switchAlert" dynamic>
  84. <image slot="icon" class="common_icon" src="../../../static/icon_date2.png"></image>
  85. <z-text v-model="info.alertDate" placeholder="选择提醒日期" @click="chooseDate"></z-text>
  86. </z-form-item>
  87. <z-divider></z-divider>
  88. </template>
  89. <z-form-item bgcolor="#eee" :labelStyle="{color:'#999'}" label="总计应收(元)" showline>
  90. <image slot="icon" class="common_icon" src="../../../static/icon_zongji.png"></image>
  91. <z-text v-model="totalMoney" textColor="#999" placeholder=""></z-text>
  92. </z-form-item>
  93. <z-form-item label="顾客来源" prop="customFromId" showline v-show="info"
  94. :required="info.orderState=='02'?true:false" dynamic>
  95. <image slot="icon" class="common_icon" src="../../../static/icon_laiyuan.png"></image>
  96. <user-from v-model="info.customFromId" placeholder="请选择顾客来源"></user-from>
  97. </z-form-item>
  98. <z-form-item bgcolor="#eee" :labelStyle="{color:'#999'}" label="预定人员" prop="createUserName" showline
  99. v-if="type==1">
  100. <image slot="icon" class="common_icon" src="../../../static/icon_people.png"></image>
  101. <z-text v-model="info.createUserName" textColor="#999" placeholder=""></z-text>
  102. </z-form-item>
  103. <z-form-item bgcolor="#eee" :labelStyle="{color:'#999'}" label="预定时间" prop="createTime" showline
  104. v-if="type==1">
  105. <image slot="icon" class="common_icon" src="../../../static/icon_time.png"></image>
  106. <z-text v-model="info.createTime" textColor="#999" placeholder=""></z-text>
  107. </z-form-item>
  108. <z-divider></z-divider>
  109. <z-form-item label="备注信息" prop="remark" labelPos="top">
  110. <textarea class="textarea" v-model="info.remark" placeholder="请输入备注信息" maxlength="512"
  111. auto-height></textarea>
  112. </z-form-item>
  113. </z-form>
  114. <u-toast ref="uToast"></u-toast>
  115. </view>
  116. </template>
  117. <script>
  118. const app = getApp({
  119. allowDefault: true
  120. });
  121. import dateSelect from './date-select.vue';
  122. import wantHouse from '../../component/wantHouse/wantHouse.vue';
  123. import paymentWay from '../../component/paymentWay/paymentWay.vue';
  124. import orderPackage from '../../component/package/package.vue';
  125. import extraItem from '../../component/extraItem/extraItem.vue';
  126. import orderType from '../../component/orderType/orderType.vue';
  127. import orderState from '../../component/orderState/orderState.vue';
  128. import userFrom from '../../component/userFrom/userFrom.vue';
  129. export default {
  130. components: {
  131. dateSelect,
  132. wantHouse,
  133. paymentWay,
  134. orderPackage,
  135. extraItem,
  136. orderType,
  137. orderState,
  138. userFrom
  139. },
  140. data() {
  141. var validateAlertDate = (rule, value, callback) => {
  142. var orderTime = this.info.orderTime.split(' ');
  143. if (!this.switchAlert) {
  144. if (new Date(this.info.alertDate).getTime() > new Date(orderTime[0]).getTime())
  145. return {
  146. state: false,
  147. message: '提醒日期不能大于预定日期'
  148. };
  149. else if (new Date(this.info.alertDate).getTime() < new Date(this.$Date.getDayDate().date)
  150. .getTime()) {
  151. return {
  152. state: false,
  153. message: '设置的提醒日期不能小于当前日期'
  154. }
  155. } else
  156. return true;
  157. } else
  158. return true;
  159. };
  160. return {
  161. id: '',
  162. askId: '',
  163. type: 0,
  164. switchAlert: true,
  165. modifyPackage: false,
  166. addItem: false,
  167. showOrderState: false,
  168. startDate: '1900-01-01',
  169. showEatTime: false,
  170. orderAlertDaysBefore: 0,
  171. orderDefaultMoney: 0,
  172. downPayment: 0,
  173. alertDate: '',
  174. info: {
  175. customName: '',
  176. phone: '',
  177. houseId: '',
  178. downPayment: '',
  179. orderTime: '',
  180. houseInfo: {},
  181. orderTypeId: '',
  182. addItemContent: '',
  183. orderMoney: 0,
  184. customFromId: '',
  185. orderState: '02',
  186. extraRealMoney: '',
  187. alertDate: '',
  188. packageId: '',
  189. eatTime: '',
  190. orderExtra: {
  191. itemsExTree: '',
  192. itemsFoodTree: ''
  193. }
  194. },
  195. eatTimeBegin: '',
  196. eatTimeEnd: '',
  197. eatTimeText:'',
  198. rules: {
  199. customName: [{
  200. required: true,
  201. message: ''
  202. }],
  203. phone: [{
  204. message: ''
  205. }],
  206. houseId: [{
  207. required: true,
  208. message: ''
  209. }],
  210. orderTime: [{
  211. required: true,
  212. message: ''
  213. }],
  214. orderTypeId: [{
  215. message: ''
  216. }],
  217. eatTime: [{
  218. message: ''
  219. }],
  220. // packageId:[{
  221. // message: ''
  222. // }],
  223. customFromId: [{
  224. message: ''
  225. }],
  226. orderState: [{
  227. required: true,
  228. message: ''
  229. }],
  230. alertDate: [{
  231. validator: validateAlertDate
  232. }]
  233. }
  234. };
  235. },
  236. computed: {
  237. totalMoney() {
  238. var mainPayType = this.info.mainPayType;
  239. var payTypes = this.info.payTypes;
  240. var value = 0;
  241. console.log('mainPayType', this.info.mainPayType)
  242. if (this.info.mainPayType == '01' || this.info.mainPayType == '02') {
  243. value = Number(payTypes[0].onePrice) * Number(payTypes[0].orderCount);
  244. } else {
  245. for (var i in payTypes) {
  246. if (payTypes[i].payTypeCode == '01' || payTypes[i].payTypeCode == '02') {
  247. value += Number(payTypes[i].onePrice) * Number(payTypes[i].orderCount);
  248. } else {
  249. value += Number(payTypes[i].housePrice);
  250. }
  251. }
  252. }
  253. this.$set(this.info, 'packageNeedMoney', value);
  254. value += Number(this.info.extraRealMoney);
  255. this.$set(this.info, 'orderMoney', value);
  256. return value || 0;
  257. }
  258. },
  259. watch: {},
  260. onLoad(option) {
  261. this.type = option.type;
  262. this.id = option.id;
  263. this.getorderalertTime();
  264. if (this.type == 1) {
  265. uni.showLoading({
  266. mask: true,
  267. title: '加载中'
  268. });
  269. this.getData(option.id);
  270. }
  271. if (option.askId) {
  272. uni.showLoading({
  273. mask: true,
  274. title: '加载中'
  275. });
  276. this.askId = option.askId;
  277. this.getInfo();
  278. }
  279. },
  280. methods: {
  281. bindTimeChange: function(e) {
  282. this.$set(this.info, 'eatTime', e.target.value)
  283. },
  284. getInfo() {
  285. uni.getStorage({
  286. key: 'remindToOrder',
  287. success: (res) => {
  288. console.log('预定数据', res.data)
  289. var info = res.data;
  290. this.info = {
  291. customName: info.customName,
  292. phone: info.phone,
  293. houseId: '',
  294. downPayment: 0,
  295. orderTime: '',
  296. houseInfo: {},
  297. orderTypeId: '',
  298. addItemContent: '',
  299. orderMoney: 0,
  300. customFromId: info.customFromId,
  301. orderState: '02',
  302. extraRealMoney: '',
  303. orderExtra: {
  304. itemsExTree: '',
  305. itemsFoodTree: ''
  306. }
  307. }
  308. setTimeout(() => {
  309. for (var i in info.wantHouse) {
  310. if (info.wantHouse[i]) {
  311. this.$set(this.info, 'houseId', info.wantHouse[i].houseId);
  312. break;
  313. }
  314. }
  315. }, 0)
  316. },
  317. complete: () => {
  318. uni.hideLoading();
  319. }
  320. })
  321. },
  322. getData(orderId) {
  323. this.$axios.get('app/order/orderDetailById/' + orderId).then(res => {
  324. console.log(res.data)
  325. var info = res.data;
  326. info.orderTime = info.orderDate + ' ' + info.activityBeginTime + '~' + info.activityEndTime;
  327. this.eatTimeBegin = info.activityBeginTime;
  328. this.eatTimeEnd = info.activityEndTime;
  329. for (var i = 0; i < info.orderPackage.itemsExs.length; i++) {
  330. info.orderPackage.itemsExs[i].id = info.orderPackage.itemsExs[i].itemId;
  331. }
  332. for (var i = 0; i < info.orderPackage.itemsFoods.length; i++) {
  333. info.orderPackage.itemsFoods[i].id = info.orderPackage.itemsFoods[i].foodId;
  334. }
  335. info.orderPackage = {
  336. itemsExTree: info.orderPackage.itemsExs || [],
  337. itemsFoodTree: info.orderPackage.itemsFoods || []
  338. }
  339. for (var i = 0; i < info.orderExtra.itemsExs.length; i++) {
  340. info.orderExtra.itemsExs[i].id = info.orderExtra.itemsExs[i].itemId;
  341. }
  342. for (var i = 0; i < info.orderExtra.itemsFoods.length; i++) {
  343. info.orderExtra.itemsFoods[i].id = info.orderExtra.itemsFoods[i].foodId;
  344. }
  345. info.orderExtra = {
  346. itemsExTree: info.orderExtra.itemsExs || [],
  347. itemsFoodTree: info.orderExtra.itemsFoods || []
  348. }
  349. info.houseInfo = {};
  350. console.log('额外项目', info.orderExtra)
  351. if (info.alertDate) {
  352. this.switchAlert = false;
  353. } else {
  354. this.switchAlert = true;
  355. }
  356. // this.totalMoney=info.orderMoney;
  357. this.alertDate = info.alertDate;
  358. this.info = info;
  359. this.eatTimeText=this.$Date.getFormatTimeText(info.eatTime);
  360. console.log('hq', this.info)
  361. uni.hideLoading();
  362. }).catch(err => {
  363. console.log(err)
  364. uni.hideLoading();
  365. this.$refs.uToast.error(err.msg);
  366. })
  367. },
  368. changeDate(date) {
  369. console.warn(date)
  370. //重置开餐时间相关数据
  371. this.eatTimeBegin = date.startTime;
  372. this.eatTimeEnd = date.endTime;
  373. this.$set(this.info,'eatTime','');
  374. this.eatTimeText='';
  375. var time = new Date(new Date(date.date).getTime() - this.orderAlertDaysBefore * 24 * 60 * 60 * 1000)
  376. var month = time.getMonth() + 1,
  377. day = time.getDate();
  378. if (!this.switchAlert) {
  379. if (time.getTime() < new Date(this.$Date.getDayDate().date).getTime()) {
  380. this.$set(this.info, 'alertDate', null);
  381. } else {
  382. this.$set(this.info, 'alertDate', time.getFullYear() + '-' + (month < 10 ? ('0' + month) : month) +
  383. '-' + (
  384. day < 10 ? ('0' + day) : day))
  385. }
  386. }
  387. if (new Date(date).getTime() < new Date(this.$Date.getDayDate().date).getTime()) {
  388. this.switchAlert = true;
  389. this.$set(this.info, 'alertDate', null);
  390. }
  391. this.alertDate = this.info.alertDate;
  392. },
  393. changeSwitchAlert(e) {
  394. console.log(e.detail.value)
  395. this.switchAlert = e.detail.value;
  396. if (this.switchAlert) {
  397. this.$set(this.info, 'alertDate', null)
  398. } else {
  399. this.$set(this.info, 'alertDate', this.alertDate);
  400. }
  401. },
  402. houseInfoCheckedDetail(data) {
  403. console.log('预定场地更改', data)
  404. this.$set(this.info, 'houseInfo', data)
  405. if (this.type == 0) {
  406. if (data.houseTypeCode == '03') {
  407. this.$set(this.info, 'downPayment', 0);
  408. } else {
  409. this.$set(this.info, 'downPayment', this.orderDefaultMoney || 0);
  410. }
  411. }
  412. console.log('定金', this.info.downPayment)
  413. },
  414. getPayTypes(data) {
  415. console.log(data)
  416. this.$set(this.info, 'payTypes', data);
  417. },
  418. changePackage(data) {
  419. console.log('套餐',data)
  420. if (data) {
  421. this.info.packageName = data.packageName;
  422. this.$axios.get('app/foodPackage/foodPackageById/' + data.packageTypeCode).then(res => {
  423. console.log(res)
  424. var itemsFoodTree = [],
  425. itemsExTree = [];
  426. if (res.data) {
  427. for (var i in res.data.itemsFoodTree) {
  428. itemsFoodTree.push({
  429. id: res.data.itemsFoodTree[i].itemId,
  430. foodCount: res.data.itemsFoodTree[i].itemCount,
  431. foodPrice: res.data.itemsFoodTree[i].itemPrice,
  432. foodName: res.data.itemsFoodTree[i].itemName,
  433. isChange: res.data.itemsFoodTree[i].isChange || '0',
  434. packageId: res.data.itemsFoodTree[i].packageId,
  435. })
  436. }
  437. for (var i in res.data.itemsExTree) {
  438. itemsExTree.push({
  439. id: res.data.itemsExTree[i].itemId,
  440. itemCount: res.data.itemsExTree[i].itemCount,
  441. itemPrice: res.data.itemsExTree[i].itemPrice,
  442. itemName: res.data.itemsExTree[i].itemName,
  443. isChange: res.data.itemsExTree[i].isChange || '0',
  444. packageId: res.data.itemsExTree[i].packageId,
  445. })
  446. }
  447. }
  448. this.info.orderPackage = {
  449. itemsExTree: itemsExTree,
  450. itemsFoodTree: itemsFoodTree
  451. }
  452. }).catch(err => {
  453. this.$refs.uToast.error(err.msg);
  454. })
  455. }else{
  456. this.$set(this.info,'orderPackage',null);
  457. this.$set(this.info,'packageName','');
  458. }
  459. },
  460. getorderalertTime() {
  461. this.$axios.get('app/config/baseByStoreId/' + uni.getStorageSync('storeId')).then(res => {
  462. console.log('预定提醒前', res.data.orderAlertDaysBefore, '天')
  463. console.log(res.data, res.data.orderAlertDaysBefore)
  464. if (res.data.orderDefaultMoney.indexOf('.00') > -1 && res.data.orderDefaultMoney.indexOf(
  465. '.00') > -1) {
  466. this.orderDefaultMoney = res.data.orderDefaultMoney.substring(0, res.data.orderDefaultMoney
  467. .indexOf('.00'));
  468. } else
  469. this.orderDefaultMoney = res.data.orderDefaultMoney;
  470. this.orderAlertDaysBefore = Number(res.data.orderAlertDaysBefore) || 0;
  471. console.log(this.orderAlertDaysBefore)
  472. this.$set(this.info, 'downPayment', this.orderDefaultMoney || 0);
  473. }).catch(err => {
  474. this.$refs.uToast.error(err.msg);
  475. })
  476. },
  477. getPackageTotal(data) {
  478. console.log(data)
  479. this.$set(this.info, 'packageRealMoney', data.realMoney)
  480. },
  481. getExtraTotal(data) {
  482. console.log(data)
  483. this.$set(this.info, 'extraRealMoney', data.realMoney)
  484. },
  485. getMainPayTypeText(data) {
  486. console.log(data)
  487. this.$set(this.info, 'mainPayTypeText', data)
  488. },
  489. chooseDate() {
  490. this.$refs.date.show();
  491. },
  492. onConfirm(e) {
  493. console.log(e)
  494. this.$set(this.info, 'alertDate', e.value)
  495. },
  496. onCancel() {
  497. console.log(this.$refs.date.value, this.$refs.date.pickVal)
  498. },
  499. submit() {
  500. this.$refs.info.validate(val => {
  501. console.log(val)
  502. if (val) {
  503. var info = this.info;
  504. var orderTime = info.orderTime.split(' ');
  505. info.orderDate = orderTime[0];
  506. var activityTime = orderTime[1].split('~');
  507. info.activityBeginTime = activityTime[0];
  508. info.activityEndTime = activityTime[1];
  509. var orderPackage = {
  510. itemsExs: info.orderPackage && info.orderPackage.itemsExTree ? info.orderPackage
  511. .itemsExTree : [],
  512. itemsFoods: info.orderPackage && info.orderPackage.itemsFoodTree ? info
  513. .orderPackage.itemsFoodTree : []
  514. };
  515. var orderExtra = {
  516. itemsExs: info.orderExtra && info.orderExtra.itemsExTree ? info.orderExtra
  517. .itemsExTree : [],
  518. itemsFoods: info.orderExtra && info.orderExtra.itemsFoodTree ? info.orderExtra
  519. .itemsFoodTree : []
  520. };
  521. for (var i = 0; i < orderPackage.itemsExs.length; i++) {
  522. orderPackage.itemsExs[i].itemId = orderPackage.itemsExs[i].id;
  523. }
  524. for (var i = 0; i < orderPackage.itemsFoods.length; i++) {
  525. orderPackage.itemsFoods[i].foodId = orderPackage.itemsFoods[i].id;
  526. }
  527. for (var i = 0; i < orderExtra.itemsExs.length; i++) {
  528. orderExtra.itemsExs[i].itemId = orderExtra.itemsExs[i].id;
  529. }
  530. for (var i = 0; i < orderExtra.itemsFoods.length; i++) {
  531. orderExtra.itemsFoods[i].foodId = orderExtra.itemsFoods[i].id;
  532. }
  533. info.orderExtra = orderExtra;
  534. info.orderPackage = orderPackage;
  535. this.info = info;
  536. console.log(info)
  537. if (this.type == 0) {
  538. this.addSubmit();
  539. } else {
  540. this.editSubmit();
  541. }
  542. } else {
  543. this.$refs.uToast.error('表单填写有误');
  544. }
  545. })
  546. },
  547. selectEatTime(data){
  548. console.log('开餐时间',data)
  549. this.eatTimeText=data.text;
  550. },
  551. addSubmit() {
  552. var info = this.info;
  553. console.log(info)
  554. this.$axios.post('app/order/orderAdd', {
  555. "storeId": uni.getStorageSync('storeId'),
  556. "askId": this.askId,
  557. "orderDate": info.orderDate,
  558. "alertDate": info.houseInfo.houseTypeCode == '03' ? null : info.alertDate,
  559. "phone": info.phone,
  560. "customName": info.customName,
  561. "activityBeginTime": info.activityBeginTime,
  562. "activityEndTime": info.activityEndTime,
  563. "packageName": info.houseInfo.houseTypeCode == '03' ? null : info.packageName,
  564. "packageId": info.houseInfo.houseTypeCode == '03' ? null : info.packageId,
  565. "houseId": info.houseId,
  566. "mainPayTypeText": info.houseInfo.houseTypeCode == '03' ? null : info.mainPayTypeText,
  567. "mainPayType": info.houseInfo.houseTypeCode == '03' ? null : info.mainPayType,
  568. "payTypes": info.houseInfo.houseTypeCode == '03' ? null : info.payTypes,
  569. "orderState": info.orderState,
  570. "orderTypeId": info.orderTypeId,
  571. "customFromId": info.customFromId,
  572. "downPayment": info.downPayment,
  573. "orderPackage": info.houseInfo.houseTypeCode == '03' ? null : info.orderPackage,
  574. "orderExtra": info.orderExtra,
  575. "packageRealMoney": info.packageRealMoney, //套餐实收款
  576. "packageNeedMoney": info.packageNeedMoney, //套餐应收款
  577. "extraRealMoney": info.extraRealMoney || 0,
  578. "eatTime": info.eatTime,
  579. "orderMoney": info.orderMoney, //订单金额(总计应收款)
  580. "remark": info.remark
  581. }).then(res => {
  582. this.$refs.uToast.success('新增预定单成功!');
  583. if (this.askId) {
  584. uni.switchTab({
  585. url: '../index/index'
  586. })
  587. } else {
  588. uni.$emit('saveOrder',info.orderDate);
  589. uni.navigateBack({
  590. delta: 1
  591. })
  592. }
  593. }).catch(err => {
  594. this.$refs.uToast.error(err.msg);
  595. })
  596. },
  597. editSubmit() {
  598. var info = this.info;
  599. console.log(info)
  600. this.$axios.post('app/order/orderUpdate', {
  601. "id": this.id,
  602. "storeId": uni.getStorageSync('storeId'),
  603. "askId": info.askId,
  604. "orderDate": info.orderDate,
  605. "alertDate": info.houseInfo.houseTypeCode == '03' ? null : info.alertDate,
  606. "phone": info.phone,
  607. "customName": info.customName,
  608. "activityBeginTime": info.activityBeginTime,
  609. "activityEndTime": info.activityEndTime,
  610. "packageName": info.houseInfo.houseTypeCode == '03' ? null : info.packageName,
  611. "packageId": info.houseInfo.houseTypeCode == '03' ? null : info.packageId,
  612. "houseId": info.houseId,
  613. "mainPayTypeText": info.houseInfo.houseTypeCode == '03' ? null : info.mainPayTypeText,
  614. "mainPayType": info.houseInfo.houseTypeCode == '03' ? null : info.mainPayType,
  615. "payTypes": info.houseInfo.houseTypeCode == '03' ? null : info.payTypes,
  616. "orderState": info.orderState,
  617. "orderTypeId": info.orderTypeId,
  618. "customFromId": info.customFromId,
  619. "downPayment": info.downPayment,
  620. "orderPackage": info.houseInfo.houseTypeCode == '03' ? null : info.orderPackage,
  621. "orderExtra": info.orderExtra,
  622. "packageRealMoney": info.packageRealMoney, //套餐实收款
  623. "packageNeedMoney": info.packageNeedMoney, //套餐应收款
  624. "extraRealMoney": info.extraRealMoney || 0,
  625. "eatTime": info.eatTime,
  626. "orderMoney": info.orderMoney, //订单金额(总计应收款)
  627. "remark": info.remark
  628. }).then(res => {
  629. this.$refs.uToast.success('编辑预定单成功!');
  630. uni.$emit('saveOrder',info.orderDate);
  631. uni.navigateBack({
  632. delta: 1
  633. })
  634. }).catch(err => {
  635. this.$refs.uToast.error(err.msg);
  636. })
  637. }
  638. }
  639. }
  640. </script>
  641. <style lang="scss" scoped>
  642. .order_package_manage {
  643. font-size: 34rpx;
  644. color: #0075FF;
  645. width: 34rpx;
  646. height: 34rpx;
  647. }
  648. .textarea {
  649. font-size: 28rpx;
  650. min-height: 80rpx;
  651. padding-bottom: 20rpx;
  652. width: 100%;
  653. }
  654. .common_icon {
  655. width: 58rpx;
  656. height: 58rpx;
  657. min-width: 58rpx;
  658. margin-right: 30rpx;
  659. }
  660. </style>