You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

230 lines
6.4 KiB

  1. <template>
  2. <div class="customer-css">
  3. <div
  4. :style="{ minHeight: searchData.height + 'px', padding: '20px' }"
  5. v-loading="dataListLoading"
  6. >
  7. <!-- 产品信息 -->
  8. <el-form
  9. :model="currentpart"
  10. ref="partForm"
  11. label-position="top"
  12. class="part-form"
  13. >
  14. <div class="form-section">
  15. <el-row :gutter="20">
  16. <el-col :span="6">
  17. <el-form-item label="产品编码" prop="partNo">
  18. <el-input v-model="currentpart.partNo" disabled></el-input>
  19. </el-form-item>
  20. </el-col>
  21. <el-col :span="6">
  22. <el-form-item label="NPC货号" prop="npc">
  23. <el-input v-model="currentpart.npc" disabled></el-input>
  24. </el-form-item>
  25. </el-col>
  26. <el-col :span="6">
  27. <el-form-item label="产品分类" prop="category">
  28. <el-input v-model="currentpart.category" disabled></el-input>
  29. </el-form-item>
  30. </el-col>
  31. <el-col :span="6">
  32. <el-form-item label="计量单位" prop="unit">
  33. <el-input v-model="currentpart.unit" disabled></el-input>
  34. </el-form-item>
  35. </el-col>
  36. </el-row>
  37. <el-row :gutter="20">
  38. <el-col :span="12">
  39. <el-form-item label="产品名称" prop="partDesc">
  40. <el-input v-model="currentpart.partDesc" disabled></el-input>
  41. </el-form-item>
  42. </el-col>
  43. <el-col :span="12">
  44. <el-form-item label="产品规格" prop="partSpec">
  45. <el-input v-model="currentpart.partSpec" disabled></el-input>
  46. </el-form-item>
  47. </el-col>
  48. </el-row>
  49. </div>
  50. <div class="form-section">
  51. <el-row :gutter="20">
  52. <el-col :span="6">
  53. <el-form-item label="采购员" prop="buyerName">
  54. <el-input v-model="currentpart.buyerName" disabled></el-input>
  55. </el-form-item>
  56. </el-col>
  57. <el-col :span="6">
  58. <el-form-item label="sourcing专员" prop="sourcingName">
  59. <el-input v-model="currentpart.sourcingName" disabled></el-input>
  60. </el-form-item>
  61. </el-col>
  62. <el-col :span="6">
  63. <el-form-item label="属性模板" prop="codeNo">
  64. <el-input v-model="currentpart.codeNo" disabled></el-input>
  65. </el-form-item>
  66. </el-col>
  67. <el-col :span="6">
  68. <el-form-item label="是否在用">
  69. <el-input v-model="statusText" disabled></el-input>
  70. </el-form-item>
  71. </el-col>
  72. </el-row>
  73. </div>
  74. <div class="form-section">
  75. <el-row :gutter="20">
  76. <el-col :span="24">
  77. <el-form-item label="备注">
  78. <el-input
  79. v-model="currentpart.remark"
  80. disabled
  81. type="textarea"
  82. :rows="2"
  83. resize="none"
  84. ></el-input>
  85. </el-form-item>
  86. </el-col>
  87. </el-row>
  88. </div>
  89. </el-form>
  90. </div>
  91. </div>
  92. </template>
  93. <script>
  94. import { searchPartInfo } from '@/api/part/partInfo.js'
  95. export default {
  96. data() {
  97. return {
  98. searchData: {
  99. site: '',
  100. partNo:'',
  101. partDesc:'',
  102. height: 200
  103. },
  104. tagNo: '',
  105. tagNo1: '',
  106. dataListLoading: false,
  107. currentpart: {
  108. partNo: '',
  109. npc: '',
  110. partDesc: '',
  111. partSpec: '',
  112. buyerName: '',
  113. sourcingName: '',
  114. category: '',
  115. unit: '',
  116. status: '',
  117. codeNo: '',
  118. createBy: '',
  119. remark: '',
  120. site: ''
  121. }
  122. }
  123. },
  124. computed: {
  125. // 状态显示转换
  126. statusText() {
  127. return this.currentpart.status === 'Y' ? '在用' :
  128. this.currentpart.status === 'N' ? '禁用' : ''
  129. }
  130. },
  131. methods: {
  132. // 获取基础数据列表
  133. getBaseList(val, type) {
  134. this.tagNo = val
  135. this.tagNo1 = type
  136. this.$nextTick(() => {
  137. let strVal = ''
  138. this.$refs.baseList.init(val, strVal)
  139. })
  140. },
  141. /* 列表方法的回调 */
  142. getBaseData(val) {
  143. // 基础数据选择回调,可根据需要实现
  144. },
  145. // 初始化组件的参数
  146. init(inData) {
  147. // 初始化参数
  148. this.searchData = JSON.parse(JSON.stringify(inData))
  149. // 查询数据
  150. this.getPartData()
  151. },
  152. getPartData() {
  153. if (!this.searchData.partNo) {
  154. return
  155. }
  156. this.dataListLoading = true
  157. searchPartInfo(this.searchData)
  158. .then(({ data }) => {
  159. if (data && data.code === 0 && data.data) {
  160. // 将查询到的数据赋值给currentpart对象
  161. this.currentpart = {
  162. partNo: data.data.partNo || '',
  163. npc: data.data.npc || '',
  164. partDesc: data.data.partDesc || '',
  165. partSpec: data.data.partSpec || '',
  166. buyerName: data.data.buyerName || '',
  167. sourcingName: data.data.sourcingName || '',
  168. category: data.data.category || '',
  169. unit: data.data.unit || '',
  170. status: data.data.status || '',
  171. codeNo: data.data.codeNo || '',
  172. createBy: data.data.createBy || '',
  173. remark: data.data.remark || '',
  174. site: data.data.site || ''
  175. }
  176. } else {
  177. this.$message.error('查询产品信息失败:' + (data ? data.msg : '网络错误'))
  178. // 清空数据
  179. this.resetPartData()
  180. }
  181. this.dataListLoading = false
  182. })
  183. .catch((error) => {
  184. this.$message.error('查询产品信息失败:' + error.message)
  185. this.resetPartData()
  186. this.dataListLoading = false
  187. })
  188. },
  189. // 重置产品数据
  190. resetPartData() {
  191. this.currentpart = {
  192. partNo: '',
  193. npc: '',
  194. partDesc: '',
  195. partSpec: '',
  196. buyerName: '',
  197. sourcingName: '',
  198. category: '',
  199. unit: '',
  200. status: '',
  201. codeNo: '',
  202. createBy: '',
  203. remark: '',
  204. site: ''
  205. }
  206. }
  207. }
  208. }
  209. </script>
  210. <style scoped lang="scss">
  211. .customer-css {
  212. width: 100%;
  213. }
  214. .form-section {
  215. margin-bottom: 20px;
  216. }
  217. .part-form {
  218. width: 100%;
  219. }
  220. </style>