term.vue 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. <template>
  2. <div>
  3. <div class="content_box" v-if="list.length > 0">
  4. <div class="content_box_list" v-for="(item, idx) in list" :key="idx">
  5. <div class="content_ll">
  6. <div class="name">质检类型</div>
  7. <div>
  8. {{ item.categoryLevelName }}
  9. </div>
  10. </div>
  11. <div class="content_ll">
  12. <div class="name">标准类型</div>
  13. <div>
  14. {{
  15. getDictValue(
  16. '质检标准类型',
  17. item.qualityStandard && item.qualityStandard.type
  18. )
  19. }}
  20. </div>
  21. </div>
  22. <div class="content_ll">
  23. <div class="name">标准编码</div>
  24. <div class="">{{
  25. item.qualityStandard && item.qualityStandard.code
  26. }}</div>
  27. </div>
  28. <div class="content_ll">
  29. <div class="name">标准名称</div>
  30. <div class="">{{
  31. item.qualityStandard && item.qualityStandard.name
  32. }}</div>
  33. </div>
  34. <el-form ref="form" style="width: 100%">
  35. <el-table
  36. style="margin-top: 15px"
  37. :data="
  38. item.qualityStandard && item.qualityStandard.parameterStandards
  39. "
  40. border
  41. >
  42. <el-table-column
  43. :label="
  44. item.qualityStandard &&
  45. item.qualityStandard.singleWeightDivision == 'undefined undefined'? '' : item.qualityStandard.singleWeightDivision
  46. "
  47. align="center"
  48. >
  49. <el-table-column
  50. label="参数上限"
  51. align="center"
  52. v-if="
  53. item.qualityStandard &&
  54. item.qualityStandard.parameterType == 3
  55. "
  56. >
  57. <template slot-scope="scope">
  58. <el-form-item label-width="0" prop="finalValue">
  59. <el-input
  60. clearable
  61. disabled
  62. v-model="scope.row.finalValue"
  63. placeholder="请输入"
  64. />
  65. </el-form-item>
  66. </template>
  67. </el-table-column>
  68. <el-table-column
  69. label="参数下限"
  70. align="center"
  71. v-if="
  72. item.qualityStandard &&
  73. item.qualityStandard.parameterType == 3
  74. "
  75. >
  76. <template slot-scope="scope">
  77. <el-form-item label-width="0" prop="initialValue">
  78. <el-input
  79. clearable
  80. disabled
  81. v-model="scope.row.initialValue"
  82. placeholder="请输入"
  83. />
  84. </el-form-item>
  85. </template>
  86. </el-table-column>
  87. <el-table-column
  88. label="默认值"
  89. align="center"
  90. v-if="
  91. item.qualityStandard &&
  92. item.qualityStandard.parameterType != 3
  93. "
  94. >
  95. <template slot-scope="scope">
  96. <el-form-item label-width="0" prop="defaultValue">
  97. {{ scope.row.defaultValue }}
  98. </el-form-item>
  99. </template>
  100. </el-table-column>
  101. </el-table-column>
  102. <el-table-column
  103. :label="item.qualityStandard && item.qualityStandard.tolerance == 'undefined undefined' ? '' : item.qualityStandard.tolerance "
  104. align="center"
  105. >
  106. <el-table-column label="质检标准" align="center">
  107. <template slot-scope="scope">
  108. <el-form-item label-width="0" prop="inspectionStandard">
  109. {{ scope.row.symbol }}
  110. {{ scope.row.toleranceValue }}
  111. </el-form-item>
  112. </template>
  113. </el-table-column>
  114. </el-table-column>
  115. <el-table-column label="质检结果" align="center">
  116. <template slot-scope="scope">
  117. <el-input
  118. clearable
  119. v-model="scope.row.qualityResults"
  120. placeholder="请输入质检结果"
  121. >
  122. </el-input>
  123. </template>
  124. </el-table-column>
  125. </el-table>
  126. </el-form>
  127. </div>
  128. </div>
  129. </div>
  130. </template>
  131. <script>
  132. import dictMixins from '@/mixins/dictMixins';
  133. import { getByCode } from '@/api/system/dictionary-data';
  134. export default {
  135. components: {},
  136. mixins: [dictMixins],
  137. props: {
  138. qualityParam: {
  139. type: Array
  140. }
  141. },
  142. watch: {
  143. qualityParam: {
  144. handler(val) {
  145. this.list = val;
  146. this.$forceUpdate();
  147. },
  148. deep: true,
  149. immediate: true
  150. }
  151. },
  152. data() {
  153. return {
  154. list: [],
  155. dictList: []
  156. };
  157. },
  158. created() {
  159. this.requestDict('质检标准类型');
  160. this.getDictList('mathematical_symbol');
  161. },
  162. methods: {
  163. updateOrCreateObjectInArray(array, newObj, idKey = 'id') {
  164. // 用来检查是否已存在具有特定 id 的对象
  165. const exists = array.some((obj) => obj[idKey] === newObj[idKey]);
  166. if (exists) {
  167. // 如果存在,使用 map 来替换找到的对象
  168. return array.map((obj) =>
  169. obj[idKey] === newObj[idKey] ? newObj : obj
  170. );
  171. } else {
  172. // 如果不存在,将新对象添加到数组中
  173. return [...array, newObj];
  174. }
  175. },
  176. async getDictList(code) {
  177. let { data: res } = await getByCode(code);
  178. this.dictList = res.map((item) => {
  179. let values = Object.keys(item);
  180. return {
  181. value: Number(values[0]),
  182. label: item[values[0]]
  183. };
  184. });
  185. },
  186. getDate() {
  187. return this.list;
  188. }
  189. }
  190. };
  191. </script>
  192. <style lang="scss" scoped>
  193. .content_box {
  194. width: 100%;
  195. margin-top: 12px;
  196. max-height: 42vh;
  197. overflow-y: scroll;
  198. }
  199. .content_box_list {
  200. display: flex;
  201. flex-wrap: wrap;
  202. margin-bottom: 30px;
  203. }
  204. .content_ll {
  205. width: 23%;
  206. display: flex;
  207. flex-direction: row;
  208. margin: auto;
  209. margin-top: 10px;
  210. .name {
  211. width: 130px;
  212. color: #000;
  213. font-weight: 500;
  214. }
  215. }
  216. </style>