fault-handle.vue 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <template>
  2. <div class="fault" v-if="faultDetails!=null">
  3. <div class="title-fault" >
  4. 产品名称:&nbsp;&nbsp;{{faultDetails.materialName}}
  5. </div>
  6. <div class="title-fault">
  7. 产品编码:&nbsp;&nbsp;{{faultDetails.materialCode}}
  8. </div>
  9. </div>
  10. <div class="mainContentBox">
  11. <avue-crud
  12. ref="crudRef"
  13. v-model:search="search"
  14. v-model="form"
  15. :data="data"
  16. :option="option"
  17. v-model:page="page"
  18. @row-save="createRow"
  19. @row-update="updateRow"
  20. @row-del="deleteRow"
  21. @search-change="searchChange"
  22. @search-reset="resetChange"
  23. @selection-change="selectionChange"
  24. >
  25. </avue-crud>
  26. </div>
  27. <div class="fault">
  28. <div class="image-title">图片</div>
  29. <div v-for="(image, index) in faultImg" :key="index" class="fault-image">
  30. <!-- 使用v-for循环渲染图片列表 -->
  31. <img :src="dictDataUtil.img_url+image.fileUrl" alt="图片" width="150px" class="fault-img">
  32. </div>
  33. </div>
  34. <div class="fault" v-if="faultDetails!=null">
  35. <div class="fault-detail" >序列号:&nbsp;&nbsp;{{faultDetails.seqNo}}</div>
  36. <div class="fault-detail">故障描述:&nbsp;&nbsp;{{faultDetails.remark}}</div>
  37. <div class="title-fault" style="margin-top: 10px">
  38. 报故人:&nbsp;&nbsp;{{faultDetails.creator}}
  39. </div>
  40. <div class="title-fault" style="margin-top: 10px">
  41. 报故工位:&nbsp;&nbsp;{{faultDetails.stationName}}
  42. </div>
  43. <div class="title-fault" style="margin-top: 10px">
  44. 报故数量:&nbsp;&nbsp;{{faultDetails.unqualifiedNum}}
  45. </div>
  46. <div class="title-fault" style="margin-top: 10px">
  47. 处理结果:&nbsp;&nbsp;{{faultDetails.disposalMeasures}}
  48. </div>
  49. </div>
  50. </template>
  51. <script setup>
  52. import { ref, getCurrentInstance } from "vue";
  53. import { useCrud } from "@/hooks/userCrud";
  54. import ButtonPermKeys from "@/common/configs/buttonPermission";
  55. import { useCommonStoreHook, useDictionaryStoreHook } from "@/store";
  56. const { isShowTable, tableType } = toRefs(useCommonStoreHook());
  57. import {getFault,getFaultDetails} from "@/api/fault"
  58. import dictDataUtil from "@/common/configs/dictDataUtil";
  59. // 数据字典相关
  60. const { dicts } = useDictionaryStoreHook();
  61. const test = () => {
  62. isShowTable.value = true;
  63. tableType.value = tableType.value == 1 ? 2 : 1;
  64. };
  65. const props = defineProps({
  66. escalationId: {
  67. type: Number,
  68. default: () => {
  69. return 0;
  70. }
  71. },
  72. dialog1:{
  73. type:Object,
  74. default:()=>{
  75. return {};
  76. }
  77. }
  78. })
  79. // 传入一个url,后面不带/
  80. const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
  81. useCrud({
  82. src: "/api/v1/process/escalationDefects",
  83. });
  84. const { dataNoPageList, createRow, updateRow, deleteRow, searchChange, resetChange } =
  85. Methords; //增删改查
  86. const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
  87. const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
  88. // checkBtnPerm(ButtonPermKeys.PLAN.BTNS.order_add) :permission="permission"
  89. // const permission = reactive({
  90. // delBtn: checkPerm(buttonPermission.PLAN.BTNS.order_del),
  91. // addBtn: checkPerm(buttonPermission.PLAN.BTNS.order_add),
  92. // editBtn: checkPerm(buttonPermission.PLAN.BTNS.order_edit),
  93. // menu: true,
  94. // });
  95. const crudRef = ref(null); //crudRef.value 获取avue-crud对象
  96. const router = useRouter();
  97. const faultImg=ref(null);
  98. const formData=ref({});
  99. const faultDetails=ref(null);
  100. onMounted(() => {
  101. // console.log("crudRef", crudRef)
  102. search.value.escalationFaultId=props.escalationId;
  103. dataNoPageList();
  104. formData.value.escalationFaultId=props.escalationId;
  105. getFault(formData).then((data) => {
  106. faultImg.value=data.data;
  107. console.info(faultImg.value);
  108. });
  109. getFaultDetails(props.escalationId).then((data) => {
  110. faultDetails.value=data.data;
  111. for(let i=0;i<dicts.disposal_measures_type.length;i++){
  112. if(faultDetails.value.disposalMeasures===dicts.disposal_measures_type[i].dictValue){
  113. faultDetails.value.disposalMeasures=dicts.disposal_measures_type[i].dictLabel;
  114. }
  115. }
  116. });
  117. });
  118. // 设置表格列或者其他自定义的option
  119. option.value = Object.assign(option.value, {
  120. addBtn: false,
  121. editBtn:false,
  122. delBtn:false,
  123. viewBtn:false,
  124. menu:false,
  125. column: [
  126. {
  127. label: "缺陷大类",
  128. prop: "bugType",
  129. dicData:dicts.defect_mana,
  130. props: { label: "dictLabel", value: "dictValue" },
  131. },
  132. {
  133. label: "缺陷小类",
  134. prop: "bugName",
  135. },
  136. ],
  137. });
  138. </script>
  139. <style>
  140. .title-fault{
  141. float: left;
  142. width: 300px;
  143. }
  144. .fault{
  145. margin-left: 15px;
  146. margin-top: 10px;
  147. display: block;
  148. overflow: hidden;
  149. }
  150. .fault-image{
  151. width: 150px;
  152. float: left;
  153. margin-left: 10px;
  154. overflow: hidden;
  155. }
  156. .image-title{
  157. margin-bottom: 15px;
  158. }
  159. .fault-img{
  160. display: inline-block;
  161. }
  162. .fault-detail{
  163. margin-top: 20px;
  164. }
  165. </style>