add.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <template>
  2. <div>
  3. <el-button size="mini" type="primary" @click="dialogFormVisible = true">新 增</el-button>
  4. <el-dialog title="新 增" :visible.sync="dialogFormVisible" width="50%">
  5. <div slot="title" style="font-size: 15px">
  6. 新增报价单
  7. </div>
  8. <el-row :gutter="20">
  9. <el-form :model="form" :rules="rules" ref="form" label-width="120px" label-position="left" size="mini">
  10. <el-col :span="12">
  11. <el-form-item label="项目名称" prop="projectname">
  12. <el-input v-model="form.projectname" placeholder="请输入项目名称"></el-input>
  13. </el-form-item>
  14. </el-col>
  15. <el-col :span="12">
  16. <el-form-item label="折扣率" prop="discountrate">
  17. <el-input v-model="form.discountrate" placeholder="请输入折扣率"></el-input>
  18. </el-form-item>
  19. </el-col>
  20. <el-col :span="12">
  21. <el-form-item label="地址" prop="address">
  22. <el-input v-model="form.address" placeholder="请输入地址"></el-input>
  23. </el-form-item>
  24. </el-col>
  25. <el-col :span="12">
  26. <el-form-item label="有效日期" prop="invaliddate">
  27. <el-date-picker
  28. v-model="form.invaliddate"
  29. type="date"
  30. placeholder="选择日期"
  31. @change="timeChange">
  32. </el-date-picker>
  33. </el-form-item>
  34. </el-col>
  35. <el-col :span="12">
  36. <el-form-item label="备注" prop="remarks">
  37. <el-input type="textarea" v-model="form.remarks" placeholder="请输入备注"></el-input>
  38. </el-form-item>
  39. </el-col>
  40. </el-form>
  41. </el-row>
  42. <div class="dialog-footer">
  43. <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
  44. <el-button size="small" type="warning" @click="onSubmit" class="normal-btn-width btn-warning">确 定</el-button>
  45. </div>
  46. </el-dialog>
  47. </div>
  48. </template>
  49. <script>
  50. export default {
  51. name: "add",
  52. inject:['detailData'],
  53. components:{},
  54. data(){
  55. return {
  56. dialogFormVisible:false,
  57. form:{
  58. "sa_quotedpriceid":0, //sat_notice_classid<=0时 为新增
  59. "sys_enterpriseid": "",
  60. "sa_projectid": "",
  61. "discountrate": "",
  62. "remarks": "",
  63. "invaliddate": "",
  64. "projectname": "",
  65. "address": ""
  66. },
  67. rules:{
  68. projectname:[
  69. { required: true, message: '输入项目名称', trigger: 'blur'},
  70. ],
  71. invaliddate:[
  72. { required: true, message: '请选择报价有效期', trigger: 'blur'}
  73. ],
  74. discountrate:[
  75. { required: true, message: '整单折扣率,保留2位小数', trigger: 'blur'}
  76. ],
  77. }
  78. }
  79. },
  80. methods:{
  81. onSubmit(){
  82. this.$refs['form'].validate(async (valid) => {
  83. if (!valid) return false
  84. this.form.sys_enterpriseid = this.detailData().sys_enterpriseid
  85. this.form.sa_projectid = parseInt(this.$route.query.id)
  86. const res = await this.$api.requested({
  87. "id": "20221020164803",
  88. "version":1,
  89. "content": this.form
  90. })
  91. this.tool.showMessage(res,()=>{
  92. this.$emit('onSuccess')
  93. this.$refs['form'].resetFields();
  94. this.dialogFormVisible = false
  95. })
  96. })
  97. },
  98. timeChange(e) {
  99. if(!e) {
  100. this.form.invaliddate = ''
  101. }
  102. let result = this.changeTimeFormat(e.getTime())
  103. this.form.invaliddate = result
  104. },
  105. changeTimeFormat(time) {
  106. var date = new Date(time);
  107. var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
  108. var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
  109. return date.getFullYear() + "-" + month + "-" + currentDate
  110. }
  111. }
  112. }
  113. </script>
  114. <style scoped>
  115. /deep/.el-select {
  116. height: 28px !important;
  117. width: 100%;
  118. }
  119. /deep/.el-input__inner {
  120. height: 28px !important;
  121. }
  122. </style>