orderOperation.blade.php 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. <script>
  2. var orderOperation = {
  3. delimiters: ['[[', ']]'],
  4. props: {
  5. order: {
  6. type: Object,
  7. default: {}
  8. }
  9. },
  10. template: `
  11. <div>
  12. <div style="text-align: right;">
  13. <span style="padding: 5px" v-for="(button,key) in order.button_models" :key="key">
  14. <el-button @click="orderOperation(button)" style="margin-bottom:5px" :type="button.type">[[button.name]]</el-button>
  15. </span>
  16. </div>
  17. <el-dialog title="订单发货" :visible.sync="dialogSendVisible" >
  18. <el-form :model="sendOperate" label-width="17%" v-loading="loadingSendInfo">
  19. <el-form-item label="收件人 :" >
  20. [[address.realname]]/[[address.mobile]]
  21. </el-form-item>
  22. <el-form-item label="收货地址 :">
  23. [[address.address]]
  24. </el-form-item>
  25. <el-form-item label="快递公司 :">
  26. <el-row>
  27. <el-col :span='18'>
  28. <el-select v-model="sendOperate.express_code" filterable placeholder="请选择">
  29. <el-option
  30. v-for="expressCompany in expressCompanies"
  31. :key="expressCompany.name"
  32. :label="expressCompany.name"
  33. :value="expressCompany.value">
  34. </el-option>
  35. </el-select>
  36. </el-col>
  37. </el-row>
  38. </el-form-item>
  39. <el-form-item label="快递单号 :">
  40. <el-row>
  41. <el-col :span='16'>
  42. <el-input placeholder="快递单号" v-model="sendOperate.express_sn"></el-input>
  43. </el-col>
  44. </el-row>
  45. </el-form-item>
  46. </el-form>
  47. <div slot="footer" class="dialog-footer">
  48. <el-button @click="dialogSendVisible = false">取 消</el-button>
  49. <el-button type="primary" @click="
  50. confirmSend();
  51. ">确 定
  52. </el-button>
  53. </div>
  54. </el-dialog>
  55. </div>
  56. `,
  57. data() {
  58. return {
  59. dialogSendVisible: false,
  60. loadingSendInfo: false,
  61. sendOperate: {
  62. express_code: '',
  63. express_sn: '',
  64. },
  65. address: {
  66. address: '',
  67. mobile: '',
  68. realname: ''
  69. },
  70. expressCompanies: []
  71. }
  72. },
  73. methods: {
  74. orderOperation(button) {
  75. console.log(button.value);
  76. switch (button.value) {
  77. case 2:
  78. this.orderSend(button);
  79. break;
  80. default:
  81. this.confirmOperation(button);
  82. break;
  83. }
  84. },
  85. confirmSend(button) {
  86. this.$http.post(`{!! yzWebUrl('') !!}plugin.fight-groups.admin.controllers.order.send&order_id=${this.order.id}`, this.sendOperate).then(response => {
  87. if (response.data.result) {
  88. this.$message({
  89. message: response.data.msg,
  90. type: 'success'
  91. });
  92. this.dialogSendVisible = false;
  93. window.location.reload();
  94. } else {
  95. this.$message({
  96. message: response.data.msg,
  97. type: 'error'
  98. });
  99. }
  100. }, response => {
  101. this.$message.error('发货信息读取失败');
  102. console.log(response);
  103. });
  104. },
  105. orderSend(button) {
  106. this.dialogSendVisible = true;
  107. this.loadSendInfo(button);
  108. },
  109. confirmOperation(button) {
  110. this.$confirm(button.name + '?').then(_ => {
  111. this.$http.get(`{!! yzWebUrl('') !!}${button.api}&order_id=${this.order.id}`).then(response => {
  112. if (response.data.result) {
  113. this.$message({
  114. message: response.data.msg,
  115. type: 'success'
  116. });
  117. window.location.reload();
  118. } else {
  119. this.$message({
  120. message: response.data.msg,
  121. type: 'error'
  122. });
  123. }
  124. }, response => {
  125. this.$message.error('发货信息读取失败');
  126. console.log(response);
  127. });
  128. })
  129. .catch(_ => {
  130. });
  131. },
  132. loadSendInfo(button) {
  133. this.loadingSendInfo = true;
  134. this.$http.get(`{!! yzWebUrl('') !!}order.send&order_id=${this.order.id}`).then(response => {
  135. if (response.data.result) {
  136. console.log(response);
  137. this.expressCompanies = response.data.data.express_companies;
  138. if(response.data.data.address){
  139. this.address = response.data.data.address;
  140. }
  141. this.loadingSendInfo = false;
  142. } else {
  143. this.loadingSendInfo = false;
  144. this.$message({
  145. message: response.data.msg,
  146. type: 'error'
  147. });
  148. }
  149. }, response => {
  150. this.loadingSendInfo = false;
  151. this.$message.error('发货信息读取失败');
  152. console.log(response);
  153. });
  154. }
  155. }
  156. };
  157. </script>