deliverGoods.vue 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. <template>
  2. <zj-page-container>
  3. <zj-page-fill>
  4. <div style="box-sizing: border-box; padding:10px;">
  5. <zj-form-container ref="formRef" :form-data="formData" :form-attributes="{ size: 'mini' }">
  6. <zj-form-module title="客户信息" label-width="80px" :form-data="formData" :form-items="formItems" />
  7. <zj-form-module title="商品信息" label-width="80px" :form-data="formData" :form-items="formItems2" />
  8. </zj-form-container>
  9. </div>
  10. </zj-page-fill>
  11. <div style="box-sizing: border-box; padding: 10px; text-align: right;">
  12. <el-button type="primary" size="small" @click="queding">确定</el-button>
  13. </div>
  14. </zj-page-container>
  15. </template>
  16. <script>
  17. import getLbsAmapRegion from "./getLbsAmapRegion.js"
  18. import ImageUpload from '@/components/file-upload'
  19. import editTable from '@/components/template/editTable.js'
  20. import { esOrderSend } from '@/api/orderManagement'
  21. import { required, mobileRequired, mobile, httpUrl, email } from '@/components/template/rules_verify.js'
  22. import { esOrderDetail } from "@/api/orderManagement";
  23. import { getCompanyList } from "@/api/common";
  24. export default {
  25. components: {ImageUpload},
  26. mixins: [getLbsAmapRegion, editTable],
  27. props:{
  28. detailsId: {
  29. type: [String, Number],
  30. default: ""
  31. },
  32. },
  33. data(){
  34. return {
  35. formData: {
  36. esOrderInfos:[],
  37. pickType:"",
  38. logisticsCode:"",
  39. logisticsName:"",
  40. logisticsNo:"",
  41. },
  42. classifyList:[]
  43. }
  44. },
  45. created(){
  46. getCompanyList().then(res=>{
  47. this.classifyList = res.data
  48. })
  49. },
  50. computed: {
  51. formItems(){
  52. return [{
  53. name: 'el-radio',
  54. options: [
  55. { label: '自提', value: "YES" },
  56. { label: '物流快递', value: "NO" },
  57. ],
  58. md: 12,
  59. attributes: { disabled: this.disabled },
  60. formItemAttributes: { label: '发货方式', prop: 'pickType', rules:[{ required: true, message: '请填写', trigger: 'blur' }] }
  61. },
  62. {
  63. name: 'slot-component',
  64. md: 12,
  65. formItemAttributes: {
  66. label: '',
  67. 'label-width': '0px',
  68. prop: '',
  69. rules: []
  70. },
  71. render: ()=>{
  72. return null
  73. }
  74. },
  75. {
  76. isShow: this.formData.pickType==="NO",
  77. name: 'el-select',
  78. options: this.classifyList.map(item=>({label: item.name, value: item.code})),
  79. md: 6,
  80. attributes: { disabled: this.disabled },
  81. formItemAttributes: { label: '物流公司', prop: 'logisticsCode', rules:[{ required: true, message: '请填写', trigger: 'blur' }] }
  82. },{
  83. isShow: this.formData.pickType==="NO",
  84. name: 'el-input',
  85. md: 6,
  86. attributes: { disabled: this.disabled },
  87. formItemAttributes: { label: '快递单号', prop: 'logisticsNo', rules:[{ required: true, message: '请填写', trigger: 'blur' }] }
  88. }]
  89. },
  90. formItems2(){
  91. return [{
  92. name: 'slot-component',
  93. md: 24,
  94. formItemAttributes: {
  95. label: '',
  96. 'label-width': '0px',
  97. prop: 'esOrderInfos',
  98. rules: [{ required: true, message: '请填写', trigger: 'blur' }]
  99. },
  100. render: (h, { props, onInput }) => {
  101. var { value } = props
  102. return this.convertTableJson(
  103. value,
  104. [
  105. {
  106. columnAttributes: {
  107. label: '商品分类',
  108. prop: 'esCategoryName'
  109. },
  110. },
  111. {
  112. columnAttributes: {
  113. label: '商品名称',
  114. prop: 'esGoodsName'
  115. },
  116. },
  117. {
  118. columnAttributes: {
  119. label: '单位',
  120. prop: 'unit'
  121. }
  122. },
  123. {
  124. columnAttributes: {
  125. label: '订单数量',
  126. prop: 'num'
  127. },
  128. },
  129. {
  130. columnAttributes: {
  131. label: '商品价格',
  132. prop: 'goodsPrice'
  133. },
  134. },
  135. {
  136. columnAttributes: {
  137. label: '金额',
  138. prop: 'totalAmount'
  139. }
  140. },
  141. {
  142. columnAttributes: {
  143. label: '商品品牌',
  144. prop: 'brandName'
  145. }
  146. },
  147. {
  148. columnAttributes: {
  149. label: '功率(W)',
  150. prop: 'power'
  151. }
  152. },
  153. {
  154. columnAttributes: {
  155. label: '制造日期',
  156. prop: 'productionTime'
  157. }
  158. },
  159. {
  160. columnAttributes: {
  161. label: '能效标识',
  162. prop: 'energyLabel'
  163. }
  164. },
  165. ],
  166. {
  167. isEdit: false,
  168. isAdd: false,
  169. isDel: false
  170. },
  171. {}
  172. )
  173. }
  174. }]
  175. }
  176. },
  177. watch: {
  178. detailsId: {
  179. handler(newVal, oldVal) {
  180. this.getEsOrderDetail()
  181. },
  182. deep: true,
  183. immediate: true,
  184. },
  185. },
  186. methods: {
  187. getEsOrderDetail(){
  188. esOrderDetail({
  189. esOrderId: this.detailsId
  190. }).then(res=>{
  191. this.formData = {
  192. esOrderInfos:[{...res.data}]
  193. }
  194. })
  195. },
  196. queding(){
  197. this.$refs.formRef.validate((valid, invalidFields, errLabels) => {
  198. if(valid){
  199. esOrderSend({
  200. esOrderId: this.detailsId,
  201. ...this.formData,
  202. esOrderInfos: undefined
  203. }).then(res=>{
  204. this.$message({ type: 'success', message: `发货成功!` })
  205. this.$emit("removeTab")
  206. })
  207. }
  208. })
  209. }
  210. }
  211. }
  212. </script>
  213. <style lang="scss" scoped>
  214. </style>