order.blade.php 44 KB

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