HeadStdinfo.vue 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <template>
  2. <div class="head-stdinfo card-head-body-spin">
  3. <div
  4. class="stdinfo-item"
  5. v-for="(info, index) in data.businessParams"
  6. :key="index"
  7. >
  8. <span :style="paramStyle">{{ info.name }}</span>
  9. <span>:</span>
  10. <span>{{ fieldInfos[info.field] }}</span>
  11. </div>
  12. </div>
  13. </template>
  14. <script>
  15. export default {
  16. name: "head-stdinfo",
  17. props: {
  18. data: {
  19. type: Object
  20. }
  21. },
  22. data() {
  23. return {
  24. fieldInfos: this.data["fieldInfos"] || {},
  25. paramStyle: {},
  26. lenWidths: {
  27. 3: 42,
  28. 4: 60,
  29. 5: 70,
  30. 6: 84,
  31. 7: 98,
  32. 8: 112
  33. }
  34. };
  35. },
  36. created() {
  37. this.init();
  38. },
  39. methods: {
  40. init() {
  41. const nameNums = this.data.businessParams.map(item => item.name.length);
  42. const maxNameLen = Math.max.apply(null, nameNums);
  43. const num = maxNameLen < 3 ? 3 : maxNameLen > 8 ? 8 : maxNameLen;
  44. this.paramStyle = {
  45. width: this.lenWidths[num] + "px"
  46. };
  47. }
  48. }
  49. };
  50. </script>