PlanInfo.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <template>
  2. <div class="other">
  3. <el-form label-width="120px" ref="form" :model="form">
  4. <div class="divider">
  5. <div class="title">
  6. <div class="ele-bg-primary"></div>
  7. <span>计划</span>
  8. </div>
  9. <div class="ele-bg-primary ele-width"></div>
  10. </div>
  11. <el-row :gutter="24">
  12. <el-col :span="8">
  13. <el-form-item label="固定提前期" prop="fixLeadTime">
  14. <el-input v-model="form.fixLeadTime" @input="inputFix"/>
  15. </el-form-item>
  16. </el-col>
  17. <el-col :span="8">
  18. <el-form-item label="变动提前期" prop="changeLeadTime">
  19. <el-input v-model="form.changeLeadTime" @input="inputChange"/>
  20. </el-form-item>
  21. </el-col>
  22. <el-col :span="8">
  23. <el-form-item label="检验提前期" prop="checkLeadTime">
  24. <el-input v-model="form.checkLeadTime" @input="inputCheck"/>
  25. </el-form-item>
  26. </el-col>
  27. <el-col :span="8">
  28. <el-form-item label="累计提前期" prop="cumLeadTime">
  29. <el-input v-model="form.cumLeadTime" readonly/>
  30. </el-form-item>
  31. </el-col>
  32. <el-col :span="8">
  33. <el-form-item label="提前期单位" prop="unit">
  34. <DictSelection dictName="提前期单位" clearable v-model="form.unit">
  35. </DictSelection>
  36. </el-form-item>
  37. </el-col>
  38. <el-col :span="8">
  39. <el-form-item label="订货间隔期" prop="scheduleType">
  40. <div class="form-line">
  41. <el-input v-model="form.orderIntervalTime"/>
  42. <DictSelection class="line-select" dictName="提前期单位" clearable v-model="form.orderIntervalUnit">
  43. </DictSelection>
  44. </div>
  45. </el-form-item>
  46. </el-col>
  47. </el-row>
  48. </el-form>
  49. </div>
  50. </template>
  51. <script>
  52. export default {
  53. props: {
  54. form: {
  55. type: Object,
  56. default: {}
  57. }
  58. },
  59. components: { },
  60. data() {
  61. return {
  62. };
  63. },
  64. methods: {
  65. inputFix(val){
  66. const changeLeadTime = this.form.changeLeadTime?Number(this.form.changeLeadTime):0
  67. const checkLeadTime = this.form.checkLeadTime?Number(this.form.checkLeadTime):0
  68. val = val?Number(val):0
  69. this.form.cumLeadTime = val + changeLeadTime + checkLeadTime
  70. },
  71. inputChange(val){
  72. const fixLeadTime = this.form.fixLeadTime?Number(this.form.fixLeadTime):0
  73. const checkLeadTime = this.form.checkLeadTime?Number(this.form.checkLeadTime):0
  74. val = val?Number(val):0
  75. this.form.cumLeadTime = val + fixLeadTime + checkLeadTime
  76. },
  77. inputCheck(val){
  78. const fixLeadTime = this.form.fixLeadTime?Number(this.form.fixLeadTime):0
  79. const changeLeadTime = this.form.changeLeadTime?Number(this.form.changeLeadTime):0
  80. val = val?Number(val):0
  81. this.form.cumLeadTime = val + fixLeadTime + changeLeadTime
  82. }
  83. }
  84. };
  85. </script>
  86. <style lang="scss" scoped>
  87. .other{
  88. background: #fff;
  89. padding: 1px 17px;
  90. }
  91. .divider {
  92. margin: 0px 0 20px;
  93. .title {
  94. display: flex;
  95. align-items: center;
  96. margin-bottom: 10px;
  97. div {
  98. width: 8px;
  99. height: 20px;
  100. margin-right: 10px;
  101. }
  102. span {
  103. font-size: 20px;
  104. }
  105. }
  106. .ele-width{
  107. width: 100%;
  108. height: 2px;
  109. }
  110. }
  111. .form-line{
  112. display: flex;
  113. align-items: center;
  114. justify-content: space-between;
  115. .line-select{
  116. margin-left:15px;
  117. }
  118. }
  119. </style>