MainForm.vue 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <template>
  2. <div>
  3. <el-form label-width="88px" ref="form" :model="form" style="display:flex;flex-wrap: wrap">
  4. <el-form-item :label="item.name" v-for="(item,index) in searchdata" :key="item.index" :label-width="item.labelSize + 'px'" :rules="[item.rules]" :prop="item.label" v-if="(index+1) <= inDex">
  5. <el-select v-if="item.form == 1" filterable @change="changeWarehouse(item)" :disabled="item.disabled" clearable v-model="form[item.label]" :style="{ width: item.width + 'px' }">
  6. <el-option v-for="(item,index) in item.data"
  7. :key="index"
  8. :label="item.label"
  9. :value="item.value"/>
  10. </el-select>
  11. <el-input v-if="item.form == 2" :placeholder="'请输入'+item.name" :disabled="item.disabled" v-model="form[item.label]" :style="{ width: item.width + 'px' }"></el-input>
  12. <el-input v-if="item.form == 4":disabled="item.disabled" type="textarea" v-model="form[item.label]" :style="{ width: item.width + 'px' }"></el-input>
  13. <el-date-picker
  14. v-if="item.form == 3"
  15. :disabled="item.disabled"
  16. v-model="form[item.label]"
  17. :style="{ width: item.width + 'px' }"
  18. type="date" placeholder="选择日期"
  19. format="yyyy - MM - dd"
  20. value-format="yyyy-MM-dd"/>
  21. <el-date-picker
  22. v-if="item.form == 6"
  23. :disabled="item.disabled"
  24. v-model="form[item.label]"
  25. type="daterange"
  26. range-separator="至"
  27. start-placeholder="开始日期"
  28. end-placeholder="结束日期"
  29. value-format="yyyy-MM-dd"
  30. :picker-options="pickerOptions"
  31. unlink-panels/>
  32. <div v-if="item.form == 5" v-model="form[item.label]" style="width: 100%;display:flex;">
  33. <el-input clearable v-model="form.first " oninput='this.value=this.value.replace(/[^\-?\d.]/g,"").replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3")'></el-input>
  34. <span style="padding-left: 10px;padding-right: 10px">至</span>
  35. <el-input v-model="form.last" clearable oninput='this.value=this.value.replace(/[^\-?\d.]/g,"").replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3")' @change="changeMoney"></el-input></div>
  36. </el-form-item>
  37. </el-form>
  38. </div>
  39. </template>
  40. <script>
  41. export default {
  42. name: 'MainForm',
  43. props:['searchdata','hidedata','display','queryParms','form','data','show','inDex'],
  44. data() {
  45. return{
  46. pickerOptions: {
  47. shortcuts: [{
  48. text: '最近一周',
  49. onClick(picker) {
  50. const end = new Date();
  51. const start = new Date();
  52. start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
  53. picker.$emit('pick', [start, end]);
  54. }
  55. }, {
  56. text: '最近一个月',
  57. onClick(picker) {
  58. const end = new Date();
  59. const start = new Date();
  60. start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
  61. picker.$emit('pick', [start, end]);
  62. }
  63. }, {
  64. text: '最近三个月',
  65. onClick(picker) {
  66. const end = new Date();
  67. const start = new Date();
  68. start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
  69. picker.$emit('pick', [start, end]);
  70. }
  71. }]
  72. },
  73. }
  74. },
  75. created() {
  76. console.log(this.searchdata)
  77. },
  78. methods:{
  79. changeWarehouse(item){
  80. this.$emit('changeWarehouse',item)
  81. },
  82. hide() {
  83. if(this.form.first && this.form.last){
  84. this.form.moneys = [this.form.first,this.form.last]
  85. }
  86. },
  87. rules(){
  88. console.log(this.form)
  89. this.$refs["form"].validate((valid) => {
  90. this.$emit('verificationRules',valid)
  91. })
  92. },
  93. saveRules(res){
  94. this.$refs["form"].validate((valid) => {
  95. if (res == 1 || res == 2){
  96. this.$emit('backSave',valid,res)
  97. }else {
  98. this.$emit('backSave',valid)
  99. }
  100. })
  101. },
  102. changeMoney(){
  103. if(parseInt(this.form.last) < parseInt(this.form.first)){
  104. this.$message.error("第二个金额不能小于第一个金额,请重新输入")
  105. this.form.last = ''
  106. }
  107. },
  108. }
  109. }
  110. </script>
  111. <style scoped>
  112. </style>