add.vue 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <template>
  2. <div>
  3. <el-button size="mini" type="primary" @click="dialogFormVisible = true">新 建</el-button>
  4. <el-drawer title="新建返退单" append-to-body :visible.sync="dialogFormVisible" size="40%" :show-close="false">
  5. <div class="drawer__panel">
  6. <el-row :gutter="20">
  7. <el-form :model="form" :rules="rules" ref="form" label-width="100px" label-position="right" size="mini">
  8. <!-- <el-col :span="24">
  9. <el-form-item label="经销商:" prop="enterprisename">
  10. <selectAgent ref="agent" @selectRow="agentChange">
  11. <el-input readonly type="text" slot="input" size="small" @focus="$refs.agent.visible=true" v-model="form.enterprisename"></el-input>
  12. </selectAgent>
  13. </el-form-item>
  14. </el-col> -->
  15. <el-col :span="24">
  16. <el-form-item label="订单号:" prop="sonum">
  17. <selectOrder ref="order" @selectRow="orderChange">
  18. <el-input readonly type="text" slot="input" size="small" @focus="$refs.order.listData(),$refs.order.visible=true" v-model="form.sonum"></el-input>
  19. </selectOrder>
  20. </el-form-item>
  21. </el-col>
  22. <!-- <el-col :span="24">
  23. <el-form-item label="返退单类型:" prop="type">
  24. <el-select style="width:100%" v-model="form.type" placeholder="请选择返退单类型">
  25. <el-option label="借用归还单" value="借用归还单"></el-option>
  26. <el-option label="退货单" value="退货单"></el-option>
  27. </el-select>
  28. </el-form-item>
  29. </el-col> -->
  30. <el-col :span="24">
  31. <el-form-item label="单据日期:" prop="billdate">
  32. <el-date-picker
  33. style="width:100%"
  34. v-model="form.billdate"
  35. type="date"
  36. value-format="yyyy-MM-dd"
  37. placeholder="选择开始日期">
  38. </el-date-picker>
  39. </el-form-item>
  40. </el-col>
  41. <el-col :span="24">
  42. <el-form-item label="返退原因:" prop="reason">
  43. <el-input type="textarea" size="small" v-model="form.reason"></el-input>
  44. </el-form-item>
  45. </el-col>
  46. <el-col :span="24">
  47. <el-form-item label="是否实物退回" prop="isitemreturn">
  48. <el-checkbox :true-label="1" :false-label="0" v-model="form.isitemreturn"></el-checkbox>
  49. </el-form-item>
  50. </el-col>
  51. </el-form>
  52. </el-row>
  53. </div>
  54. <div class="fixed__btn__panel">
  55. <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
  56. <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width">确 定</el-button>
  57. </div>
  58. </el-drawer>
  59. </div>
  60. </template>
  61. <script>
  62. import selectAgent from '@/template/selectAgent/index'
  63. import selectOrder from './selectOrder'
  64. export default {
  65. name: "add",
  66. components:{selectAgent,selectOrder},
  67. data(){
  68. return {
  69. visible:false,
  70. dialogFormVisible:false,
  71. form:{
  72. "sa_aftersalesmagid":0,
  73. "sa_orderid":0,
  74. "reason":"",
  75. "isitemreturn":true,
  76. "billdate":"",
  77. "enterprisename":'',
  78. "sonum":"",
  79. "type":'借用归还单'
  80. },
  81. rules:{
  82. enterprisename:[
  83. { required: true, message: '请选择经销商', trigger: 'change'},
  84. ],
  85. sonum:[
  86. { required: true, message: '请选择订单', trigger: 'change'}
  87. ],
  88. billdate:[
  89. { required: true, message: '请选择单据日期', trigger: 'change'}
  90. ],
  91. type:[
  92. { required: true, message: '请选择返退单类型', trigger: 'change'}
  93. ],
  94. }
  95. }
  96. },
  97. watch: {
  98. dialogFormVisible (val) {
  99. if (!val) {
  100. this.$refs['form'].resetFields()
  101. }
  102. }
  103. },
  104. created () {
  105. this.form.billdate = new Date().getFullYear() + '-' + parseInt(new Date().getMonth() + 1) + '-' + parseInt(new Date().getDate())
  106. },
  107. methods:{
  108. onSubmit(){
  109. console.log(this.form)
  110. this.$refs['form'].validate(async (valid) => {
  111. if (!valid) return false
  112. const res = await this.$api.requested({
  113. "id": "20230104160503",
  114. "version":1,
  115. "content": this.form
  116. })
  117. this.tool.showMessage(res,()=>{
  118. this.$emit('onSuccess')
  119. this.dialogFormVisible = false
  120. })
  121. })
  122. },
  123. agentChange (data) {
  124. console.log(data);
  125. this.form.sys_enterpriseid = data.sys_enterpriseid
  126. this.form.enterprisename = data.enterprisename
  127. this.$refs.order.param.content.sys_enterpriseid = data.sys_enterpriseid
  128. this.$refs.agent.visible = false
  129. },
  130. orderChange (data) {
  131. this.form.sa_orderid = data.sa_orderid
  132. this.form.sonum = data.sonum
  133. this.$refs.order.visible = false
  134. }
  135. }
  136. }
  137. </script>
  138. <style scoped>
  139. .dialog-footer {
  140. margin-top: 0;
  141. }
  142. .el-input {
  143. width: 100% !important;
  144. }
  145. </style>