detail.vue 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. <template>
  2. <el-dialog
  3. :model-value="isShow"
  4. title="产品工艺流程"
  5. destroy-on-close
  6. :before-close="()=>{emits('destroy')}"
  7. style="width: 80vw; height: 80vh"
  8. >
  9. <el-form
  10. inline
  11. label-position="left"
  12. @submit.native.prevent
  13. >
  14. <el-form-item
  15. label="工单编号"
  16. >
  17. <el-input
  18. v-model="input"
  19. style="width: 120px;"
  20. @keyup.enter="handleShowDetail"
  21. placeholder="Enter回车"
  22. />
  23. </el-form-item>
  24. <el-form-item
  25. label="印件号"
  26. >
  27. <el-input
  28. v-model="yjno"
  29. style="width: 120px;"
  30. @keyup.enter="handleShowDetail"
  31. placeholder="Enter回车"
  32. />
  33. </el-form-item>
  34. <el-table
  35. :data="detailData"
  36. border
  37. height="50vh"
  38. :row-style="{ height: '20px' }"
  39. :cell-style="{ padding: '0px' }"
  40. :header-row-style="{ height: '20px' }"
  41. :header-cell-style="{ padding: '0px' }"
  42. >
  43. <el-table-column
  44. label="印件及工序"
  45. width="100"
  46. prop="Gy0_yjno"
  47. />
  48. <el-table-column
  49. label="工序名称"
  50. width="300"
  51. prop="Gy0_gxmc"
  52. />
  53. <el-table-column
  54. label="基础损耗"
  55. width="100"
  56. prop="Gy0_rate0"
  57. />
  58. <el-table-column
  59. label="损耗率"
  60. width="100"
  61. prop="Gy0_rate1"
  62. />
  63. <el-table-column
  64. label="损耗系数"
  65. width="100"
  66. prop="损耗系数"
  67. />
  68. <el-table-column
  69. label="无形损减免比例"
  70. width="150"
  71. >
  72. <template #default="{ row }">
  73. <el-input v-model="row['loss_one']" />
  74. </template>
  75. </el-table-column>
  76. <el-table-column
  77. label="超节损承担比例"
  78. width="150"
  79. >
  80. <template #default="{ row }">
  81. <el-input v-model="row['loss_two']" />
  82. </template>
  83. </el-table-column>
  84. <el-table-column
  85. label="超节损核算单价"
  86. width="150"
  87. >
  88. <template #default="{ row }">
  89. <el-input v-model="row['loss_thr']" />
  90. </template>
  91. </el-table-column>
  92. </el-table>
  93. </el-form>
  94. <template #footer>
  95. <div class="dialog-footer">
  96. <el-button @click="()=>{emits('destroy')}">取 消</el-button>
  97. <el-button
  98. type="primary"
  99. @click="handleUpdateDatail"
  100. >更 新
  101. </el-button>
  102. </div>
  103. </template>
  104. </el-dialog>
  105. </template>
  106. <script>
  107. export default {
  108. name: 'Detail',
  109. }
  110. import service from '@/utils/request'
  111. // 3.1查改-获取工单工艺流程
  112. const getOrderGy = (params) => {
  113. return service({
  114. url: '/mes_server/order_super_loss/getOrderGy',
  115. method: 'get',
  116. params
  117. })
  118. }
  119. // 3.2查改-更新产品工艺资料
  120. const updateOrderGy = (data) => {
  121. return service({
  122. url: '/mes_server/order_super_loss/updateOrderGy',
  123. method: 'post',
  124. data
  125. })
  126. }
  127. </script>
  128. <script setup>
  129. import { defineEmits, defineProps, ref } from 'vue'
  130. import { ElMessage } from 'element-plus'
  131. const props = defineProps({
  132. isShow: {
  133. type: Boolean,
  134. default: false,
  135. },
  136. gdbh: {
  137. type: String,
  138. default: '',
  139. },
  140. yjno: {
  141. type: Number,
  142. default: '',
  143. },
  144. })
  145. const emits = defineEmits(['destroy'])
  146. const detailData = ref([])
  147. const input = ref(props['gdbh'])
  148. const yjno = ref(props['yjno'])
  149. console.log(yjno)
  150. console.log(122)
  151. const handleShowDetail = async() => {
  152. if (!input.value) {
  153. ElMessage({
  154. type: 'info',
  155. message: '请输入工单编号',
  156. })
  157. return
  158. }
  159. const res = await getOrderGy({ order: input.value ,yjno:yjno.value})
  160. if (res['code'] === 0) {
  161. const { data } = res
  162. detailData.value = data.map(item => ({
  163. ...item,
  164. Gy0_yjno: item['Gy0_yjno'] + '-' + item['Gy0_gxh'],
  165. }))
  166. }
  167. }
  168. const handleUpdateDatail = async() => {
  169. const val = detailData.value.map(item => ({
  170. UniqId: item['UniqId'],
  171. loss_one: item['loss_one'],
  172. loss_two: item['loss_two'],
  173. loss_thr: item['loss_thr'],
  174. }))
  175. const res = await updateOrderGy(val)
  176. if (res['code'] === 0) {
  177. ElMessage({
  178. type: 'success',
  179. message: '更新成功',
  180. })
  181. }
  182. }
  183. </script>
  184. <style scoped>
  185. </style>