addEvaluate.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <template>
  2. <div>
  3. <DialogCom
  4. :visible.sync="isShow"
  5. :width="'500px'"
  6. :title="`${id ? '编辑' : '新增'}扣分规则`"
  7. @close="closeHandler"
  8. destroy-on-close
  9. >
  10. <el-form
  11. :model="ruleForm"
  12. :rules="rules"
  13. ref="ruleForm"
  14. label-width="100px"
  15. class="demo-ruleForm"
  16. >
  17. <el-form-item label="计算项目" prop="indicatorNote">
  18. <el-input
  19. placeholder="请输入计算项目"
  20. v-model="ruleForm.indicatorNote"
  21. clearable
  22. >
  23. </el-input>
  24. </el-form-item>
  25. <el-form-item label="计算类型">
  26. <!-- 1累计数,2连续数,3 分类,4 固化值 -->
  27. <el-radio-group v-model="ruleForm.calculateType">
  28. <el-radio :label="1">累计数</el-radio>
  29. <el-radio :label="2">连续数</el-radio>
  30. <!-- <el-radio :label="3">分类</el-radio>
  31. <el-radio :label="4">固化值</el-radio> -->
  32. </el-radio-group>
  33. </el-form-item>
  34. <el-form-item
  35. label="连续数"
  36. v-if="ruleForm.calculateType == 2"
  37. prop="indicatorDays"
  38. >
  39. <el-input
  40. placeholder="请输入连续数"
  41. v-model.number="ruleForm.indicatorDays"
  42. clearable
  43. >
  44. </el-input>
  45. </el-form-item>
  46. <el-form-item label="系数" prop="itemValue">
  47. <el-input
  48. placeholder="请输入系数"
  49. v-model="ruleForm.itemValue"
  50. clearable
  51. >
  52. </el-input>
  53. </el-form-item>
  54. <el-form-item>
  55. <el-button @click="resetFormHandler('ruleForm')">取消</el-button>
  56. <el-button type="primary" @click="submitForm('ruleForm')"
  57. >确定</el-button
  58. >
  59. </el-form-item>
  60. </el-form>
  61. </DialogCom>
  62. </div>
  63. </template>
  64. <script>
  65. import { guid } from "@/utils/index.js";
  66. export default {
  67. name: "SocWebAddEvaluate",
  68. dicts: ["evaluate_type"],
  69. data() {
  70. var valiNumberPass1 = (rule, value, callback) => {
  71. //包含小数的数字
  72. let reg = /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g;
  73. if (value === "") {
  74. callback(new Error("请输入内容"));
  75. } else if (!reg.test(value)) {
  76. callback(new Error("请输入数字"));
  77. } else {
  78. callback();
  79. }
  80. };
  81. return {
  82. ruleForm: {
  83. calculateType: 1,
  84. indicatorDays: "",
  85. itemValue: "",
  86. indicatorNote: "",
  87. },
  88. rules: {
  89. indicatorNote: [{ required: true, message: "请选择评价类型" }],
  90. indicatorDays: [
  91. { type: "number", message: "连续数只能为数字" },
  92. { required: true, message: "请输入连续数" },
  93. ],
  94. itemValue: [{ validator: valiNumberPass1 }],
  95. },
  96. id: "", //编辑时候ID
  97. isShow: false,
  98. };
  99. },
  100. mounted() {},
  101. methods: {
  102. show() {
  103. this.isShow = true;
  104. },
  105. resetFormHandler() {
  106. this.isShow = false;
  107. },
  108. closeHandler() {
  109. this.ruleForm = {};
  110. },
  111. submitForm(formName) {
  112. this.$refs[formName].validate((valid) => {
  113. if (valid) {
  114. if (this.ruleForm.uid) {
  115. //当前是编辑
  116. } else {
  117. //当前是新增
  118. this.ruleForm.uid = guid();
  119. }
  120. this.$emit("submitHandler", this.ruleForm);
  121. this.isShow = false;
  122. } else {
  123. return false;
  124. }
  125. });
  126. },
  127. },
  128. };
  129. </script>
  130. <style lang="scss" scoped>
  131. .el-select {
  132. width: 100%;
  133. }
  134. </style>