formItems.vue 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <template>
  2. <div id="inforsPoint">
  3. <el-form ref="ruleForm" :model="form" label-width="150px" :inline="true" :label-position="'left'">
  4. <el-form-item :label="item.InfoPointName" v-for="item in InforsList" :key="item.InfoPointCode"
  5. :class="{FloorTypeSelect:item.InputMode == 'D1'||item.Unit}">
  6. <el-input v-model="form[item.Path]" v-if="item.Visible && (item.InputMode == 'B1')"></el-input>
  7. <el-input v-model="form[item.Path]" v-else-if="item.Visible && (item.InputMode == 'A1'||item.InputMode == 'A2')" type="number">
  8. <template slot="append" v-if="item.Unit">{{item.Unit}}</template>
  9. </el-input>
  10. <el-select v-model="form[item.Path]" placeholder="请选择" v-else-if="item.Visible && (item.InputMode == 'D1')">
  11. <el-option v-for="op in item.options" :key="op.Code" :label="op.Name" :value="op.Code">
  12. </el-option>
  13. </el-select>
  14. <el-input v-model="form[item.Path]"
  15. v-else-if="item.Visible && (item.InputMode == 'L'||item.InputMode == 'L1'||item.InputMode == 'L2'||item.InputMode == 'M')"></el-input>
  16. <el-input v-model="form[item.Path]" v-else readonly title="暂不支持"></el-input>
  17. </el-form-item>
  18. </el-form>
  19. </div>
  20. </template>
  21. <script>
  22. import { getDataDictionary } from "@/api/scan/request";
  23. export default {
  24. props: {
  25. type: {
  26. default: 'Floor'
  27. }
  28. },
  29. data() {
  30. return {
  31. form: {},
  32. InforsList: []
  33. };
  34. },
  35. created() {
  36. this.getInforsPoint()
  37. },
  38. methods: {
  39. getInforsPoint() {
  40. let params = {
  41. data: {
  42. Orders: "sort asc,InfoPointCode asc",
  43. PageNumber: 1,
  44. PageSize: 50
  45. },
  46. type: 'Building '
  47. };
  48. getDataDictionary(params, res => {
  49. this.InforsList = res.Content.map(item => {
  50. if (item.InputMode === 'D1') {
  51. item.options = JSON.parse(item.DataSource)
  52. }
  53. return item
  54. })
  55. })
  56. },
  57. }
  58. };
  59. </script>
  60. <style lang="scss" scoped>
  61. #inforsPoint {
  62. .el-form-item {
  63. /deep/ label.el-form-item__label {
  64. font-size: 12px;
  65. }
  66. }
  67. /deep/ .FloorTypeSelect .el-form-item__content {
  68. width: 178px;
  69. }
  70. }
  71. </style>