order.blade.php 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846
  1. @extends('layouts.base')
  2. @section('title', "代客下单")
  3. @section('content')
  4. <style>
  5. .rightlist #app .rightlist-head{line-height:50px;padding:15px 0;}
  6. .rightlist #app{margin-left:30px;}
  7. .rightlist #app .el-breadcrumb{padding:30px 0;font-size:16px;}
  8. /* .el-form-item__label{padding-right:30px;} */
  9. .tip{font-size:12px;color:#999;font-weight:500}
  10. .rightlist-head-con{padding-right:20px;font-size:16px;color:#888;}
  11. /* .rightlist-head-con{float:left;padding-right:20px;font-size:16px;color:#888;} */
  12. .el-tag{font-weight:700;font-size:15px;margin-bottom:30px;}
  13. .el-icon-edit{font-size:16px;padding:0 15px;color:#409EFF;cursor: pointer;}
  14. /* 滑块选择小白点 */
  15. .el-switch.is-checked .el-switch__core::after {left: 100%;margin-left: -17px;}
  16. .el-switch__core::after {content: "";position: absolute;top: 1px;left: 1px;border-radius: 100%;transition: all .3s;width: 16px;height: 16px;background-color: #fff;}
  17. .tip1{font-size:12px;color:red;font-weight:500}
  18. [v-cloak]{
  19. display:none;
  20. }
  21. /* 计数器样式 */
  22. .el-input-number__decrease, .el-input-number__increase {width: 25px;}
  23. .el-input-number .el-input__inner {padding-left: 0px;padding-right: 0px;}
  24. </style>
  25. <div class="rightlist">
  26. <div id="app" v-cloak v-loading="loading">
  27. <el-breadcrumb separator-class="el-icon-arrow-right">
  28. <el-breadcrumb-item><a href="{{ yzWebFullUrl('plugin.help-user-buying.admin.index.index') }}">返回选择</a></el-breadcrumb-item>
  29. <el-breadcrumb-item>[[goods.title?goods.title:'平台自营']]</el-breadcrumb-item>
  30. </el-breadcrumb>
  31. <el-row :gutter="50">
  32. <!-- left -->
  33. <el-col :span="12">
  34. <div>
  35. <div style="background:#f9f9f9;padding:15px 10px;font-weight:900;border:1px solid #e9e9e9;">
  36. 会员信息
  37. </div>
  38. <div style="border:1px solid #e9e9e9;">
  39. <el-form :model="member" ref="member" label-width="20%" style="padding-top:50px;">
  40. <el-form-item label="客户">
  41. <el-input v-model="member.nickname" disabled style="width:70%"></el-input><br>
  42. <img :src="member.avatar_image" style="width:70px;height:70px;">
  43. </el-form-item>
  44. <el-form-item label="配送方式">
  45. <el-radio v-for="(item,index) in deliveryMethod" :key="index" v-model.number="dispatch_type_id" :label="item.value">[[item.name]]</el-radio>
  46. </el-form-item>
  47. <el-form-item label="收件人">
  48. <el-input v-model="member.member_address.username" style="width:70%"></el-input>
  49. </el-form-item>
  50. <el-form-item label="联系电话">
  51. <el-input v-model="member.member_address.mobile" style="width:70%"></el-input>
  52. </el-form-item>
  53. <el-form-item label="所在区域" v-loading="all_loading">
  54. <el-select v-model="member.member_address.province" placeholder="请选择省" clearable style="width:20%" @change="changeProvince()" value-key="id">
  55. <el-option v-for="item in province_list" :key="item.id" :label="item.areaname" :value="item"></el-option>
  56. </el-select>
  57. <el-select v-model="member.member_address.city" placeholder="请选择市" clearable style="width:20%" value-key="id" @change="changeCity()">
  58. <el-option v-for="item in city_list" :key="item.id" :label="item.areaname" :value="item"></el-option>
  59. </el-select>
  60. <el-select v-model="member.member_address.district" placeholder="请选择区" clearable style="width:20%" value-key="id" @change="changeDistrict()">
  61. <el-option v-for="item in district_list" :key="item.id" :label="item.areaname" :value="item"></el-option>
  62. </el-select>
  63. <el-select v-if="is_street" v-model="member.member_address.street" placeholder="请选择街道" clearable style="width:20%" value-key="id">
  64. <el-option v-for="item in street_list" :key="item.id" :label="item.areaname" :value="item"></el-option>
  65. </el-select>
  66. </el-form-item>
  67. <el-form-item label="详细地址">
  68. <el-input v-model="member.member_address.address" style="width:70%"></el-input>
  69. </el-form-item>
  70. <el-form-item label="">
  71. <el-button type="primary" @click="showMemberAddressList()" size="small">其他地址</el-button>
  72. <el-button type="primary" @click="createAddress()" size="small">新增地址</el-button>
  73. </el-form-item>
  74. </el-form>
  75. </div>
  76. </div>
  77. </el-col>
  78. <!-- right -->
  79. <el-col :span="12">
  80. <div v-for="(item,index) in orders_list" style="margin-bottom:20px;">
  81. <div style="background:#f9f9f9;padding:15px 10px;font-weight:900;border:1px solid #e9e9e9;">
  82. 订单信息
  83. </div>
  84. <!-- 表格start -->
  85. <el-table :data="item.order_goods" style="width: 100%;border:1px solid #e9e9e9" v-loading="loading" max-height="400">
  86. <el-table-column prop="id" label="商品名称" min-width="150">
  87. <template slot-scope="scope">
  88. <div style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;">
  89. <div>[[scope.row.title]]</div>
  90. </div>
  91. </template>
  92. </el-table-column>
  93. <el-table-column prop="options" label="规格" max-width="120" align="center">
  94. <template slot-scope="scope">
  95. <div>[[scope.row.goods_option_title?scope.row.goods_option_title:'']]</div>
  96. </template>
  97. </el-table-column>
  98. <el-table-column prop="goods_price" label="单价" width="120" align="center">
  99. <template slot-scope="scope">
  100. <div>[[scope.row.goods_price/scope.row.total]]</div>
  101. </template>
  102. </el-table-column>
  103. <el-table-column label="数量" prop="total" max-width="120" align="center"></el-table-column>
  104. </el-table>
  105. <!-- 表格end -->
  106. <div>
  107. <div style="background:#f9f9f9;padding:15px 10px;font-weight:900;border:1px solid #e9e9e9">
  108. 优惠抵扣信息
  109. </div>
  110. <div style="border:1px solid #e9e9e9;font-weight:900;line-height:50px">
  111. <div v-for="(item1,index1) in item.order_deductions" :key="index1">
  112. <div style="padding-left:2.5%;display:inline-block;width:70%">可用[[item1.coin]][[item1.name]] 抵扣[[item1.amount]]元</div>
  113. <div style="padding-rifht:2.5%;display:inline-block;width:25%;text-align:right">
  114. <el-switch v-model="item1.checked" @change="changePoint()"></el-switch>
  115. </div>
  116. </div>
  117. </div>
  118. </div>
  119. </div>
  120. <div>
  121. <div style="background:#f9f9f9;padding:15px 10px;font-weight:900;border:1px solid #e9e9e9;margin-top:30px;">
  122. 优惠抵扣信息
  123. </div>
  124. <div style="border:1px solid #e9e9e9;font-weight:900;line-height:50px">
  125. <div>
  126. <div style="padding-left:2.5%;display:inline-block;width:70%">优惠券 [[total_coupons]]张可用</div>
  127. <div style="padding-rifht:2.5%;display:inline-block;width:25%;text-align:right">
  128. <span style="color:#409EFF;cursor:pointer" @click="is_discounts=true">
  129. [[used_coupons==0?'未使用':'已使用'+used_coupons+'张']]
  130. </span>
  131. </div>
  132. </div>
  133. </div>
  134. <div style="background:#f9f9f9;padding:15px 10px;font-weight:900;border:1px solid #e9e9e9;">
  135. <span v-for="(item,index) in amount_items">
  136. <span>[[item.name]]:<span style="color:red">¥[[item.amount]]</span></span>&nbsp;&nbsp;
  137. </span>
  138. <span>合计:<span style="color:red">¥[[total_price]] </span></span>
  139. </div>
  140. <el-button align="center" @click="order">立即下单</el-button>
  141. </div>
  142. </el-col>
  143. </el-row>
  144. <!-- 选择优惠券弹出框 -->
  145. <el-dialog title="选择优惠券" :visible.sync="is_discounts" v-loading="loading">
  146. <div>
  147. <template>
  148. <!-- 表格start -->
  149. <el-table :data="discounts_list" style="width: 100%;" max-height="500" ref="table" v-loading="table_loading">
  150. <el-table-column width="55">
  151. <template slot-scope="scope">
  152. <el-checkbox v-model="scope.row.checked" @change="changeDiscounts()" :disabled="scope.row.valid==false"></el-checkbox>
  153. </template>
  154. </el-table-column>
  155. <el-table-column prop="belongs_to_coupon.name" label="优惠券名称" min-width="120" align="center"> </el-table-column>
  156. <el-table-column prop="details" label="优惠详情" min-width="120" align="center">
  157. <template slot-scope="scope">
  158. <div>
  159. <span v-if="scope.row.belongs_to_coupon.enough==0">不限&nbsp;&nbsp;</span>
  160. <span v-else>满[[scope.row.belongs_to_coupon.enough可用]]&nbsp;&nbsp;</span>
  161. <span v-if="scope.row.belongs_to_coupon.discount=='0.00'">立减[[scope.row.belongs_to_coupon.deduct]]元&nbsp;&nbsp;</span>
  162. <span v-else>打[[scope.row.belongs_to_coupon.discount]]折&nbsp;&nbsp;</span>
  163. </div>
  164. </template>
  165. </el-table-column>
  166. </el-table>
  167. <!-- 表格end -->
  168. </template>
  169. </div>
  170. <span slot="footer" class="dialog-footer">
  171. <!-- <el-button @click="is_discounts = false">取 消</el-button> -->
  172. <el-button type="primary" @click="is_discounts = false">确 定</el-button>
  173. </span>
  174. </el-dialog>
  175. <!-- 选择支付方式弹出框 -->
  176. <el-dialog title="确认付款" :visible.sync="is_pay" v-loading="loading">
  177. <div style="text-align:center;line-height:40px;font-weight:600;">
  178. <div>会员余额:[[pay.credit2]]</div>
  179. <div> 支付流水号:[[pay.pay_sn]]</div>
  180. <div> 支付金额:<span style="color:red">[[pay.amount]]</span>元</div>
  181. <div>
  182. <el-button v-for="(item1,index1) in buttons" :key="index1" @click="confirmPay(item1)">[[item1.name]]</el-button>
  183. </div>
  184. </div>
  185. <span slot="footer" class="dialog-footer">
  186. <el-button @click="jump">取 消</el-button>
  187. <!-- <el-button type="primary" @click="is_discounts = false">确 定</el-button> -->
  188. </span>
  189. </el-dialog>
  190. <!-- 选择收货地址 -->
  191. <el-dialog :visible.sync="modal_member_address_list" width="900px" title="选择收货地址">
  192. <div style="overflow:auto">
  193. <el-table :data="member_address_list" style="width: 100%;overflow:auto">
  194. <el-table-column prop="username" label="姓名" align="center"></el-table-column>
  195. <el-table-column prop="mobile" label="手机号" align="center"></el-table-column>
  196. <el-table-column prop="address_info" label="地址" align="center"></el-table-column>
  197. <el-table-column prop="" label="操作" align="center">
  198. <template slot-scope="scope">
  199. <el-button @click="selectSendAddress(scope.row)">选择</el-button>
  200. <el-button type="success" @click="editAddress(scope.row)">编辑</el-button>
  201. </template>
  202. </el-table-column>
  203. </el-table>
  204. </div>
  205. <span slot="footer" class="dialog-footer">
  206. <el-button @click="modal_member_address_list = false">取 消</el-button>
  207. </span>
  208. </el-dialog>
  209. <template>
  210. <edit-member-address
  211. :member_address="edit_member_address"
  212. :edit_address_dialog_show="edit_address_dialog_show"
  213. :is_street="is_street"
  214. :operation-type="operationType"
  215. @init-address="componentInteract"
  216. >
  217. </edit-member-address>
  218. </template>
  219. </div>
  220. @include('Yunshop\HelpUserBuying::buying.template.editMemberAddress')
  221. <script>
  222. var app = new Vue({
  223. el:"#app",
  224. delimiters: ['[[', ']]'],
  225. data() {
  226. let request = {!! $request !!};
  227. console.log(request);
  228. let order_type = request.order_type;
  229. let member = {!! $member !!};
  230. console.log(member);
  231. // 'deliveryMethod' => json_encode($deliveryMethod)
  232. let deliveryMethod = {!! $deliveryMethod !!};
  233. console.log(deliveryMethod);
  234. if(member.member_address.length==0){
  235. member.member_address = {
  236. address: "",
  237. city: "",
  238. city_id: 0,
  239. district: "",
  240. district_id: 0,
  241. mobile: "",
  242. province: "",
  243. province_id: 0,
  244. street: "",
  245. street_id: 0,
  246. username: "",
  247. };
  248. }
  249. let is_street = {!! $is_street !!};
  250. console.log(is_street)
  251. let order_url = {!! $order_url !!};
  252. console.log(order_url)
  253. let store = {!! $store?:'{id:0}' !!};
  254. return{
  255. modal_member_address_list:false, //会员地址
  256. request_member_address_list:true, //是否请求获取地址
  257. member_address_list:{},
  258. value:"",//测试
  259. province_list:[],//省
  260. city_list:[],//市
  261. district_list:[],//区域
  262. street_list:[],//街道
  263. orders_list:[],//订单列表
  264. address:"",//用户信息,优惠选择必传
  265. amount_items:"",//总抵扣、总优惠等,优惠选择回传
  266. discounts_list:[],//优惠券列表
  267. store:store,//门店信息
  268. order_type:order_type,//订单类型。32门店,92供应商,0普通商品
  269. deliveryMethod:deliveryMethod,//配送方式列表
  270. dispatch_type_id:1,//配送方式,默认快递,值为1
  271. no_deduction_ids:0,//默认开启积分抵扣
  272. pay:{
  273. credit2:"",
  274. amount:"",
  275. pay_sn:"",
  276. id:0,
  277. },//支付信息
  278. buttons:[],//支付方式列表
  279. total_coupons:0,//优惠券共几张
  280. used_coupons:0,//优惠券使用几张
  281. total_price:"",//总价格
  282. all_loading:false,
  283. loading:false,
  284. goods:request,//商品信息
  285. member:member,//客户信息
  286. is_street:is_street,//是否开启街道
  287. order_url:order_url,//链接
  288. table_loading:false,
  289. category_list:[],
  290. form:{},
  291. is_discounts:false,//选择优惠券弹出框
  292. is_pay:false,//选择支付方式弹出框
  293. //编辑地址
  294. operationType:'',
  295. edit_address_dialog_show:0,
  296. edit_member_address:{
  297. address: "",
  298. city: "",
  299. city_id: 0,
  300. district: "",
  301. district_id: 0,
  302. mobile: "",
  303. province: "",
  304. province_id: 0,
  305. street: "",
  306. street_id: 0,
  307. username: "",
  308. isdefault:0,
  309. },
  310. //分页
  311. total:0,
  312. per_size:0,
  313. current_page:0,
  314. rules:{},
  315. }
  316. },
  317. created() {
  318. let json = {};
  319. if(this.order_type == 0 || this.order_type==32) {
  320. json = {
  321. dispatch_type_id:this.dispatch_type_id,
  322. goods:JSON.stringify(this.goods.goods),
  323. address:{},
  324. orders:'[]',
  325. store_id:this.goods.owner_id,
  326. no_deduction_ids:this.no_deduction_ids,
  327. };
  328. }
  329. if(this.order_type == 92) {
  330. json = {
  331. dispatch_type_id:this.dispatch_type_id,
  332. goods:JSON.stringify(this.goods.goods),
  333. address:{},
  334. orders:'[]',
  335. no_deduction_ids:this.no_deduction_ids,
  336. // store_id:this.goods.owner_id,
  337. };
  338. }
  339. this.getOrderList(json);
  340. this.getDefaultDispatchTypeId();
  341. console.log(this.member.member_address);
  342. this.getProvince();
  343. this.changeProvince(this.member.member_address.province_id);
  344. this.changeCity(this.member.member_address.city_id);
  345. if(this.is_street) {
  346. this.changeDistrict(this.member.member_address.district_id);
  347. }
  348. this.all_loading = false;
  349. },
  350. methods: {
  351. getDefaultDispatchTypeId() {
  352. this.dispatch_type_id = this.deliveryMethod[0].value;
  353. },
  354. createAddress() {
  355. this.edit_address_dialog_show++;
  356. this.operationType = 'create';
  357. this.edit_member_address = {
  358. uid:this.member.uid,
  359. address: "",
  360. city: "",
  361. city_id: 0,
  362. district: "",
  363. district_id: 0,
  364. mobile: "",
  365. province: "",
  366. province_id: 0,
  367. street: "",
  368. street_id: 0,
  369. username: "",
  370. isdefault:0,
  371. }
  372. },
  373. //编辑收货地址
  374. editAddress(row) {
  375. console.log(row);
  376. this.edit_address_dialog_show++;
  377. this.edit_member_address = row;
  378. this.operationType = 'edit';
  379. },
  380. //选择收货地址
  381. selectSendAddress(row) {
  382. if(row.length != 0){
  383. this.member.member_address = row;
  384. this.modal_member_address_list = false;
  385. }
  386. },
  387. componentInteract(type) {
  388. if (type == 'edit') {
  389. this.showMemberAddressList(1);
  390. } else if(type == 'create') {
  391. this.showMemberAddressList(1);
  392. }
  393. },
  394. showMemberAddressList(request_status=0) {
  395. if (request_status) {
  396. this.request_member_address_list = true;
  397. }
  398. if (this.request_member_address_list) {
  399. this.$http.post("{!! yzWebFullUrl('plugin.help-user-buying.admin.member-address.get-member-address-list') !!}",{member_id:this.member.uid}).then(response => {
  400. console.log(response);
  401. if(response.data.result==1){
  402. this.member_address_list = response.data.data;
  403. } else{
  404. that.$message.error(response.data);
  405. }
  406. this.modal_member_address_list = true;
  407. this.request_member_address_list = false;
  408. }),function(res){
  409. console.log(res);
  410. };
  411. } else {
  412. this.modal_member_address_list = true;
  413. }
  414. },
  415. getOrderList(json){
  416. var that = this;
  417. that.loading = true;
  418. json['type'] = 5;
  419. that.$http.post(this.order_url.pre_url,json).then(response => {
  420. console.log(response);
  421. if(response.data.result==1){
  422. console.log(response);
  423. that.total_coupons = response.data.data.discount.member_coupons.length;
  424. that.no_deduction_ids = response.data.data.discount.default_deduction ? response.data.data.discount.default_deduction : 0;
  425. that.used_coupons = 0;
  426. that.address = response.data.data.dispatch.default_member_address;
  427. that.amount_items = response.data.data.amount_items;
  428. that.orders_list = response.data.data.orders;
  429. that.total_price = response.data.data.total_price;
  430. that.discounts_list = response.data.data.discount.member_coupons;//优惠券
  431. if(that.discounts_list.length>0) {
  432. that.discounts_list.forEach((item,index) => {
  433. if(item.checked){
  434. that.used_coupons++;
  435. }
  436. })
  437. }
  438. }
  439. else{
  440. that.$message.error(response.data.msg);
  441. that.is_discounts = false;
  442. window.location.href="{!! yzWebFullUrl('plugin.help-user-buying.admin.index.index') !!}";
  443. }
  444. that.loading = false;
  445. this.all_loading = false;
  446. }),function(res){
  447. console.log(res);
  448. that.loading = false;
  449. this.all_loading = false;
  450. };
  451. },
  452. // 获取省份信息
  453. getProvince() {
  454. var that = this;
  455. that.all_loading = true;
  456. that.$http.get("{!! yzWebFullUrl('plugin.help-user-buying.admin.member-address.get-address',['type' => 'province']) !!}",).then(response => {
  457. console.log(response);
  458. if(response.data.result==1){
  459. this.province_list = response.data.data;
  460. } else{
  461. that.$message.error(response.data);
  462. that.all_loading = false;
  463. }
  464. that.all_loading = false;
  465. }),function(res){
  466. console.log(res);
  467. that.all_loading = false;
  468. };
  469. },
  470. // 省份改变
  471. changeProvince(parentid) {
  472. var that = this;
  473. if(!parentid) {
  474. parentid = that.member.member_address.province.id;
  475. that.member.member_address.city_id = 0;
  476. that.member.member_address.city = '';
  477. that.member.member_address.district_id = 0;
  478. that.member.member_address.district = '';
  479. that.member.member_address.street_id = 0;
  480. that.member.member_address.street = '';
  481. }
  482. that.all_loading = true;
  483. that.$http.get("{!! yzWebFullUrl('plugin.help-user-buying.admin.member-address.get-address',['type' => 'city','parentid' => '']) !!}"+parentid).then(response => {
  484. console.log(response);
  485. if(response.data.result==1){
  486. this.city_list = response.data.data;
  487. }
  488. that.all_loading = false;
  489. }),function(res){
  490. console.log(res);
  491. that.all_loading = false;
  492. };
  493. },
  494. // 城市改变
  495. changeCity(parentid) {
  496. var that = this;
  497. if(!parentid) {
  498. parentid = that.member.member_address.city.id;
  499. that.member.member_address.district_id = 0;
  500. that.member.member_address.district = '';
  501. that.member.member_address.street_id = 0;
  502. that.member.member_address.street = '';
  503. }
  504. that.all_loading = true;
  505. that.$http.get("{!! yzWebFullUrl('plugin.help-user-buying.admin.member-address.get-address',['type' => 'district','parentid' => '']) !!}"+parentid).then(response => {
  506. if(response.data.result==1){
  507. that.district_list = response.data.data;
  508. }
  509. that.all_loading = false;
  510. }),function(res){
  511. console.log(res);
  512. that.all_loading = false;
  513. };
  514. },
  515. // 区域改变
  516. changeDistrict(parentid) {
  517. var that = this;
  518. if(this.is_street) {
  519. if(!parentid) {
  520. parentid = that.member.member_address.district.id;
  521. that.member.member_address.street_id = 0;
  522. that.member.member_address.street = '';
  523. }
  524. that.all_loading = true;
  525. that.$http.get("{!! yzWebFullUrl('plugin.help-user-buying.admin.member-address.get-address',['type' => 'street','parentid' => '']) !!}"+parentid).then(response => {
  526. if(response.data.result==1){
  527. that.street_list = response.data.data;
  528. }
  529. that.all_loading = false;
  530. }),function(res){
  531. console.log(res);
  532. that.all_loading = false;
  533. };
  534. }
  535. },
  536. // 积分、爱心值修改
  537. changePoint() {
  538. var that = this;
  539. // 优惠券传值
  540. let arr = [];
  541. this.discounts_list.forEach((item,index) => {
  542. if(item.checked) {
  543. arr.push(item.id);
  544. }
  545. })
  546. let member_coupon_ids = arr.join(",")
  547. // 积分、爱心值传值
  548. var orders = [];
  549. for(let i=0;i<this.orders_list.length;i++) {
  550. orders.push({deduction_ids:[],pre_id:''})
  551. for(var j in this.orders_list[i].order_deductions) {
  552. if(this.orders_list[i].order_deductions[j].checked==true){
  553. orders[i].deduction_ids.push(this.orders_list[i].order_deductions[j].code)
  554. }
  555. }
  556. orders[i].pre_id = this.orders_list[i].pre_id
  557. }
  558. console.log(orders)
  559. let json = {
  560. goods:JSON.stringify(this.goods.goods),
  561. orders:JSON.stringify(orders),
  562. dispatch_type_id: this.dispatch_type_id,
  563. address: {},
  564. member_coupon_ids:member_coupon_ids,
  565. store_id:this.goods.owner_id,
  566. no_deduction_ids:this.no_deduction_ids,
  567. }
  568. this.getOrderList(json)
  569. },
  570. // 优惠券修改
  571. changeDiscounts() {
  572. console.log(this.orders_list)
  573. this.changePoint()
  574. },
  575. // 立即下单
  576. order() {
  577. let that = this;
  578. let address = {};
  579. // 收货信息数据处理
  580. if (this.dispatch_type_id == 1) {
  581. if(!that.verification()) {
  582. return;
  583. }
  584. if(this.member.member_address.province.id) {
  585. address.province = this.member.member_address.province.areaname;
  586. }
  587. else {
  588. address.province = this.member.member_address.province;
  589. }
  590. if(this.member.member_address.city.id) {
  591. address.city = this.member.member_address.city.areaname;
  592. }
  593. else {
  594. address.city = this.member.member_address.city;
  595. }
  596. if(this.member.member_address.district.id) {
  597. address.district = this.member.member_address.district.areaname;
  598. }
  599. else {
  600. address.district = this.member.member_address.district;
  601. }
  602. if(this.is_street){
  603. if(this.member.member_address.street.id) {
  604. address.street = this.member.member_address.street.areaname;
  605. }
  606. else {
  607. address.street = this.member.member_address.street;
  608. }
  609. }
  610. else{
  611. delete(address.street);
  612. }
  613. address.uid = this.member.member_address.uid;
  614. address.username = this.member.member_address.username;
  615. address.mobile = this.member.member_address.mobile;
  616. address.address = this.member.member_address.address;
  617. } else if (this.dispatch_type_id == 2) {
  618. if(!this.member.member_address.username) {
  619. this.$message.error("请输入收件人!");
  620. return;
  621. }
  622. if(!this.member.member_address.mobile) {
  623. this.$message.error("请输入联系电话!");
  624. return;
  625. }
  626. }
  627. // 优惠券传值
  628. let arr = [];
  629. this.discounts_list.forEach((item,index) => {
  630. if(item.checked) {
  631. arr.push(item.id);
  632. }
  633. })
  634. let member_coupon_ids = arr.join(",")
  635. // 积分、爱心值传值
  636. var orders = [];
  637. for(let i=0;i<this.orders_list.length;i++) {
  638. orders.push({deduction_ids:[],pre_id:''})
  639. for(var j in this.orders_list[i].order_deductions) {
  640. if(this.orders_list[i].order_deductions[j].checked==true){
  641. orders[i].deduction_ids.push(this.orders_list[i].order_deductions[j].code)
  642. }
  643. }
  644. orders[i].pre_id = this.orders_list[i].pre_id
  645. }
  646. console.log(orders)
  647. let json = {};
  648. if(this.order_type == 32) {
  649. json = {
  650. type:5,
  651. goods:JSON.stringify(this.goods.goods),
  652. orders:JSON.stringify(orders),
  653. dispatch_type_id: this.dispatch_type_id,
  654. address: JSON.stringify(address),
  655. member_coupon_ids:member_coupon_ids,
  656. store_id:this.goods.owner_id,
  657. };
  658. if (this.dispatch_type_id == 2) {
  659. json.address = {};
  660. json.mobile = this.member.member_address.mobile;
  661. json.realname = this.member.member_address.username;
  662. }
  663. } else {
  664. json = {
  665. type:5,
  666. goods:JSON.stringify(this.goods.goods),
  667. orders:JSON.stringify(orders),
  668. dispatch_type_id: this.dispatch_type_id,
  669. address: JSON.stringify(address),
  670. member_coupon_ids:member_coupon_ids,
  671. // store_id:this.goods.owner_id,
  672. }
  673. }
  674. that.loading = true;
  675. that.$http.post(this.order_url.create_url,json).then(response => {
  676. console.log(response);
  677. if(response.data.result==1){
  678. console.log(response.data.data.order_ids);
  679. that.getPayType(response.data.data.order_ids);
  680. }
  681. else{
  682. that.$message.error(response.data.msg);
  683. }
  684. that.loading = false;
  685. }),function(res){
  686. console.log(res);
  687. that.loading = false;
  688. };
  689. },
  690. getPayType(order_ids) {
  691. var that = this;
  692. that.loading = true;
  693. that.$http.post("{!! yzApiUrl('plugin.help-user-buying.admin.user-merge-pay.index') !!}",{type:5,order_ids:order_ids}).then(response => {
  694. console.log(response);
  695. if(response.data.result==1){
  696. that.is_pay = true;
  697. let btns = response.data.data.buttons;
  698. for(let i in btns) {
  699. that.buttons.push(btns[i])
  700. }
  701. console.log(that.buttons);
  702. that.buttons = response.data.data.buttons;
  703. that.pay.credit2 = response.data.data.member.credit2;
  704. that.pay.amount = response.data.data.order_pay.amount;
  705. that.pay.pay_sn = response.data.data.order_pay.pay_sn;
  706. that.pay.id = response.data.data.order_pay.id;
  707. }
  708. else{
  709. that.$message.error(response.data.msg);
  710. }
  711. that.loading = false;
  712. }),function(res){
  713. console.log(res);
  714. that.loading = false;
  715. };
  716. },
  717. // 确认支付
  718. confirmPay(item) {
  719. var that = this;
  720. that.loading = true;
  721. // 余额支付
  722. if(item.value==3){
  723. that.$http.post("{!! yzApiUrl('plugin.help-user-buying.admin.user-merge-pay.credit2') !!}",{type:5,order_pay_id:that.pay.id}).then(response => {
  724. console.log(response);
  725. if(response.data.result==1){
  726. that.$message.success(response.data.msg);
  727. that.jump();
  728. }
  729. else{
  730. that.$message.error(response.data.msg);
  731. }
  732. that.loading = false;
  733. }),function(res){
  734. console.log(res);
  735. that.loading = false;
  736. };
  737. }
  738. // 找人代付
  739. if(item.value==17){
  740. that.$http.post("{!! yzApiUrl('plugin.help-user-buying.admin.user-merge-pay.COD') !!}",{type:5,order_pay_id:that.pay.id}).then(response => {
  741. console.log(response);
  742. if(response.data.result==1){
  743. that.$message.success(response.data.msg);
  744. that.jump();
  745. }
  746. else{
  747. that.$message.error(response.data.msg);
  748. }
  749. that.loading = false;
  750. }),function(res){
  751. console.log(res);
  752. that.loading = false;
  753. };
  754. }
  755. //确认支付
  756. if(item.value==54){
  757. that.$http.post("{!! yzApiUrl('plugin.help-user-buying.admin.user-merge-pay.confirmPay') !!}",{type:5,order_pay_id:that.pay.id}).then(response => {
  758. console.log(response);
  759. if(response.data.result==1){
  760. that.$message.success(response.data.msg);
  761. that.jump();
  762. }
  763. else{
  764. that.$message.error(response.data.msg);
  765. }
  766. that.loading = false;
  767. }),function(res){
  768. console.log(res);
  769. that.loading = false;
  770. };
  771. }
  772. },
  773. verification(){
  774. if(!this.member.member_address.username) {
  775. this.$message.error("请输入收件人!")
  776. return;
  777. }
  778. if(!this.member.member_address.mobile) {
  779. this.$message.error("请输入联系电话!")
  780. return;
  781. }
  782. if(!(/^1\d{10}$/.test(this.member.member_address.mobile))){
  783. this.$message.error("请输入正确的联系电话格式!")
  784. return;
  785. }
  786. if(!this.member.member_address.district){
  787. this.$message.error("请选择所在区域!")
  788. return;
  789. }
  790. if(this.is_street) {
  791. if(!this.member.member_address.street){
  792. this.$message.error("请选择所在区域!")
  793. return;
  794. }
  795. }
  796. if(!this.member.member_address.address){
  797. this.$message.error("请输入详细地址!")
  798. return;
  799. }
  800. return true;
  801. },
  802. jump() {
  803. window.location.href="{!! yzWebFullUrl('plugin.help-user-buying.admin.index.index') !!}";
  804. },
  805. },
  806. })
  807. </script>
  808. @endsection