agent-order-edit.php 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. <?php
  2. //Yii::$app->loadComponentView('com-dialog-select');
  3. //use common\helpers\ComponentHelper;
  4. ////Yii::$app->loadPluginComponentView('agent-order-edit');
  5. //$diyPath = dirname(__DIR__) . '/components';
  6. //ComponentHelper::loadComponentView('agent-order-edit', $diyPath);
  7. ?>
  8. <template id="agent-order-edit">
  9. <el-dialog :visible.sync="edit.visible" width="30%" title="填写发货信息" center>
  10. <!-- <div>
  11. <el-form @submit.native.prevent size="small" label-width="150px">
  12. <el-form-item label="物流名称">
  13. <el-input v-model="ruleForm.express_name">
  14. </el-input>
  15. </el-form-item>
  16. <el-form-item label="物流单号">
  17. <el-input v-model="ruleForm.express_no">
  18. </el-input>
  19. </el-form-item>
  20. </el-form>
  21. </div> -->
  22. <el-tabs v-model="activeName1" type="card" style="margin-bottom: 30px;">
  23. <el-tab-pane label="商品信息" name="first">
  24. <el-table
  25. size="mini"
  26. :data="goodsData"
  27. style="width: 100%"
  28. class="myTable2">
  29. <el-table-column
  30. label="图片"
  31. align="center"
  32. >
  33. <template slot-scope="scope">
  34. <div style="justify-content: center;display: flex;">
  35. <img :src="scope.row.goods.cover_pic" style="display: block;width: 50px;height: 50px;" />
  36. </div>
  37. </template>
  38. </el-table-column>
  39. <el-table-column
  40. prop="goods_name"
  41. label="商品名称"
  42. align="center"
  43. >
  44. </el-table-column>
  45. <el-table-column
  46. prop="num"
  47. label="数量"
  48. align="center">
  49. </el-table-column>
  50. </el-table>
  51. </el-tab-pane>
  52. </el-tabs>
  53. <el-tabs v-model="activeName1" type="card" v-loading="loading">
  54. <el-tab-pane label="物流信息" name="first">
  55. <el-form :model="ruleForm" size="small" ref="ruleForm" label-width="80px" >
  56. <el-form-item label="物流选择" style="margin-bottom: 10px" required>
  57. <template>
  58. <el-radio v-model="ruleForm.kuaidi" :label="1">快递</el-radio>
  59. </template>
  60. </el-form-item>
  61. <el-form-item label="快递公司" style="margin-bottom: 10px" required>
  62. <el-select size="small" class="select" v-model='express_code' style="width:200px;margin-right: 20px;" placeholder="请选择快递公司">
  63. <el-option v-for="(item,index) in expressList" :label="item.name" :value="item.code"></el-option>
  64. </el-select>
  65. </el-form-item>
  66. <el-form-item label="快递单号" style="margin-bottom: 10px" required>
  67. <el-input v-model="express_no"></el-input>
  68. </el-form-item>
  69. </el-form>
  70. </el-tab-pane>
  71. </el-tabs>
  72. <span slot="footer" class="dialog-footer">
  73. <el-button @click="editCancel" type="default" size="small">取消</el-button>
  74. <el-button type="primary" :loading="edit.btnLoading" style="margin-bottom: 10px;" size="small"
  75. @click="editSave">确认发货</el-button>
  76. </span>
  77. </el-dialog>
  78. </template>
  79. <script>
  80. Vue.component('agent-order-edit', {
  81. template: '#agent-order-edit',
  82. props: {
  83. value: {
  84. type: Boolean,
  85. default: false
  86. },
  87. edit_row: {
  88. type: Object,
  89. default: null
  90. }
  91. },
  92. data() {
  93. return {
  94. edit: {
  95. visible: false,
  96. id: '',
  97. btnLoading: false,
  98. },
  99. ruleForm: {
  100. /* express_no: '',
  101. express_name: '',
  102. order_id: '', */
  103. kuaidi:1
  104. },
  105. level_list: [],
  106. goods: null,
  107. activeName1:'first',
  108. goodsData:[],
  109. loading:false,
  110. expressList:[],
  111. express_code:'',
  112. express_no:'',
  113. tableData:[
  114. {
  115. img:'http://zhenai.ruinuomei.com/product/db3c8dd2-af28-438f-be7d-e45297c95724',
  116. name:'商品名称商品名称商品名称商品名称商品名称商品名称商品名称',
  117. num:4
  118. }
  119. ]
  120. }
  121. },
  122. watch: {
  123. value() {
  124. if (this.value) {
  125. this.edit.visible = true;
  126. this.goodsData = [this.edit_row.data];
  127. this.getExpressList();
  128. /* if (this.edit_row.id > 0) {
  129. console.log(this.edit_row)
  130. this.ruleForm.order_id = this.edit_row.id;
  131. } else {
  132. this.edit.id = 0;
  133. } */
  134. } else {
  135. this.edit.visible = false;
  136. }
  137. },
  138. 'edit.visible'() {
  139. if (!this.edit.visible) {
  140. this.express_code = '';
  141. this.express_no = '';
  142. this.editCancel();
  143. }
  144. if (this.edit.id) {
  145. }
  146. }
  147. },
  148. mounted() {
  149. //this.edit.id = this.edit_row.id;
  150. },
  151. methods: {
  152. onInput(e) {
  153. this.$forceUpdate();
  154. },
  155. agentClick(row) {
  156. this.edit.id = row.id
  157. },
  158. editCancel() {
  159. this.$emit('input', false);
  160. },
  161. editSave() {
  162. /* if (this.ruleForm.order_id == 0) {
  163. this.$message.error('请选择订单');
  164. return;
  165. } */
  166. if(!this.express_code){
  167. this.$message.error('请选择快递公司');
  168. return;
  169. }
  170. if(!this.express_no){
  171. this.$message.error('请输入快递单号');
  172. return;
  173. }
  174. this.edit.btnLoading = true;
  175. request({
  176. params: {
  177. r: 'cloud-stock-two/order/delivery',//plugin/cloud_stock/mall/pick-up/delivery
  178. },
  179. method: 'post',
  180. data:{
  181. id:this.edit_row.data.id,
  182. express_code:this.express_code,
  183. express_no:this.express_no
  184. }
  185. }).then(response => {
  186. this.edit.btnLoading = false;
  187. if (response.data.code == 0) {
  188. this.$message.success(response.data.msg);
  189. this.$emit('success',1)
  190. this.editCancel();
  191. } else {
  192. this.$message.error(response.data.msg);
  193. }
  194. }).catch(response => {
  195. this.edit.btnLoading = false;
  196. });
  197. },
  198. keyUp() {
  199. },
  200. getExpressList(){
  201. this.loading = true;
  202. request({
  203. params: {
  204. r:'cloud-stock-two/order/express-list'
  205. },
  206. method: 'get',
  207. }).then(e => {
  208. this.loading = false;
  209. //console.log('快递列表='+JSON.stringify(e))
  210. if (e.data.code == 0) {
  211. this.expressList = e.data.data;
  212. } else {
  213. this.$message.error(e.data.msg);
  214. }
  215. }).catch(e => {
  216. this.loading = false;
  217. });
  218. }
  219. }
  220. });
  221. </script>
  222. <style>
  223. /* .myTable2 .el-table__footer-wrapper,.myTable2 .el-table__header-wrapper{
  224. border-bottom: 1.4px solid #D6D6D6;
  225. } */
  226. </style>