approve.vue 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. <template>
  2. <el-form ref="formRef" :model="form" :rules="rules" :disabled="disabled" label-width="110px">
  3. <div class="dialog-title">{{ titleMap[handler] }}</div>
  4. <el-row>
  5. <template v-if="handler == 'agree'">
  6. <el-col :span="12">
  7. <el-form-item label="是否入库" prop="isInWh">
  8. <el-radio-group v-model="form.isInWh" @change="form.inWhType = null">
  9. <el-radio v-for="(label, key) in whetherDic" :key="key" :label="label" :value="parseInt(key)"></el-radio>
  10. </el-radio-group>
  11. </el-form-item>
  12. </el-col>
  13. <el-col :span="12">
  14. <el-form-item label="分值(0-10)" :prop="!isMaster && 'score'">
  15. <el-input-number v-model="form.score" :min="0" :max="10" :step="0.1" :precision="2" :controls="false" placeholder="请输入分值"></el-input-number>
  16. </el-form-item>
  17. </el-col>
  18. <el-col v-if="form.isInWh == 1" :span="12">
  19. <el-form-item label="入库类型" prop="inWhType">
  20. <el-select v-model="form.inWhType" placeholder="请选择入库类型">
  21. <el-option v-for="item in storageTypeDic" :key="item" :label="item" :value="item"></el-option>
  22. </el-select>
  23. </el-form-item>
  24. </el-col>
  25. </template>
  26. <el-col v-else :span="24">
  27. <el-form-item label="意见" prop="remark">
  28. <el-input v-model="form.remark" type="textarea" :rows="4" placeholder="请输入意见"></el-input>
  29. </el-form-item>
  30. </el-col>
  31. </el-row>
  32. </el-form>
  33. </template>
  34. <script>
  35. import API from "@/api/policy/share";
  36. import { storageTypeDic, whetherDic } from "./main";
  37. export default {
  38. props: {
  39. isMaster: { type: Boolean, default: false },
  40. handler: { type: String, default: "agree" },
  41. disabled: { type: Boolean, default: true },
  42. rowData: { type: Object, default: () => {} }
  43. },
  44. data() {
  45. return {
  46. storageTypeDic, whetherDic,
  47. titleMap: {
  48. agree: "考核评分",
  49. refuse: "退回意见"
  50. },
  51. form: {
  52. score: null,
  53. isInWh: 0,
  54. inWhType: null
  55. },
  56. rules: {
  57. score: [{ required: true, message: "请输入分值" }],
  58. isInWh: [{ required: true }],
  59. inWhType: [{ required: true, message: "请选择入库类型" }],
  60. // remark: [{ required: true, message: "请输入退回意见" }]
  61. },
  62. }
  63. },
  64. watch: {
  65. rowData: {
  66. deep: true,
  67. handler(value) {
  68. if (value.id) {
  69. this.form = Object.assign({}, this.rowData);
  70. }
  71. }
  72. }
  73. },
  74. mounted() {
  75. this.form = Object.assign({}, this.rowData);
  76. },
  77. methods: {
  78. submit() {
  79. this.$refs.formRef.validate(valid => {
  80. if (valid) {
  81. API[this.handler](this.form).then(() => {
  82. ElMessage.success("操作成功");
  83. this.visible = false;
  84. this.$emit("success");
  85. });
  86. } else {
  87. return false;
  88. }
  89. });
  90. }
  91. }
  92. }
  93. </script>
  94. <style lang="scss" scoped>
  95. .dialog-title {
  96. margin-bottom: 15px;
  97. font-size: 15px;
  98. font-weight: 600;
  99. color: var(--el-text-color-primary);
  100. }
  101. .el-input-number {
  102. width: 100%;
  103. :deep(.el-input) .el-input__wrapper {
  104. padding: 1px 11px;
  105. .el-input__inner {
  106. text-align: unset;
  107. }
  108. }
  109. }
  110. </style>