detail.vue 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <template>
  2. <a-card :bordered="false">
  3. <a-page-header
  4. :title="formData.id ? '编辑一线径予放行业务记账管理' : '新增一线径予放行业务记账管理'"
  5. @back="onClose"
  6. >
  7. <template #extra>
  8. <a-button style="margin-right: 8px" @click="onClose">关闭</a-button>
  9. <a-popconfirm title="请确认是否保存?" @confirm="onSubmit" v-if="!isView">
  10. <a-button type="primary" :loading="submitLoading">保存</a-button>
  11. </a-popconfirm>
  12. </template>
  13. </a-page-header>
  14. <a-form ref="formRef" :model="formData" :rules="formRules" layout="vertical">
  15. <a-row :gutter="16">
  16. <a-col :span="12">
  17. <a-form-item label="企业编码:" name="companyCode">
  18. <a-input v-model:value="formData.companyCode" :disabled="isView" placeholder="请输入企业编码" allow-clear />
  19. </a-form-item>
  20. </a-col>
  21. <a-col :span="12">
  22. <a-form-item label="企业名称:" name="companyName">
  23. <a-input v-model:value="formData.companyName" :disabled="isView" placeholder="请输入企业名称" allow-clear />
  24. </a-form-item>
  25. </a-col>
  26. <a-col :span="12">
  27. <a-form-item label="账册类型:" name="accountType">
  28. <a-select v-model:value="formData.accountType" :disabled="isView" placeholder="请选择账册类型" :options="accountTypeOptions" show-search allow-clear option-filter-prop="label"/>
  29. </a-form-item>
  30. </a-col>
  31. <a-col :span="12">
  32. <a-form-item label="账册编号:" name="accountCode">
  33. <a-input v-model:value="formData.accountCode" :disabled="isView" placeholder="请输入账册编号" allow-clear />
  34. </a-form-item>
  35. </a-col>
  36. <a-col :span="12">
  37. <a-form-item label="商品编码:" name="commodityCode">
  38. <a-input v-model:value="formData.commodityCode" :disabled="isView" placeholder="请输入商品编码" allow-clear />
  39. </a-form-item>
  40. </a-col>
  41. <a-col :span="12">
  42. <a-form-item label="商品名称:" name="commodityName">
  43. <a-input v-model:value="formData.commodityName" :disabled="isView" placeholder="请输入商品名称" allow-clear />
  44. </a-form-item>
  45. </a-col>
  46. <a-col :span="12">
  47. <a-form-item label="出库&入库类型(0入库,1出库):" name="warehouseType">
  48. <a-input v-model:value="formData.warehouseType" :disabled="isView" placeholder="请输入出库&入库类型(0入库,1出库)" allow-clear />
  49. </a-form-item>
  50. </a-col>
  51. <a-col :span="12">
  52. <a-form-item label="业务类型:" name="businessType">
  53. <a-select v-model:value="formData.businessType" :disabled="isView" placeholder="请选择业务类型" :options="businessTypeOptions" show-search allow-clear option-filter-prop="label"/>
  54. </a-form-item>
  55. </a-col>
  56. <a-col :span="12">
  57. <a-form-item label="记账数量:" name="accountNumber">
  58. <a-input-number v-model:value="formData.accountNumber" :disabled="isView" :min="1" :max="10000" style="width: 100%" />
  59. </a-form-item>
  60. </a-col>
  61. <a-col :span="12">
  62. <a-form-item label="法定计量单位:" name="measurementUnit">
  63. <a-select v-model:value="formData.measurementUnit" :disabled="isView" placeholder="请选择法定计量单位" :options="measurementUnitOptions" show-search allow-clear option-filter-prop="label"/>
  64. </a-form-item>
  65. </a-col>
  66. <a-col :span="12">
  67. <a-form-item label="一线径予放行单号:" name="frontlineRelesasNumber">
  68. <a-input v-model:value="formData.frontlineRelesasNumber" :disabled="isView" placeholder="请输入一线径予放行单号" allow-clear />
  69. </a-form-item>
  70. </a-col>
  71. <a-col :span="12">
  72. <a-form-item label="出/入库单号:" name="warehouseNumber">
  73. <a-input v-model:value="formData.warehouseNumber" :disabled="isView" placeholder="请输入出/入库单号" allow-clear />
  74. </a-form-item>
  75. </a-col>
  76. <a-col :span="12">
  77. <a-form-item label="入库日期:" name="warehouseTime">
  78. <a-date-picker v-model:value="formData.warehouseTime" :disabled="isView" value-format="YYYY-MM-DD HH:mm:ss" show-time placeholder="请选择入库日期" style="width: 100%" allow-clear/>
  79. </a-form-item>
  80. </a-col>
  81. <a-col :span="12">
  82. <a-form-item label="记账日期:" name="accountTime">
  83. <a-date-picker v-model:value="formData.accountTime" :disabled="isView" value-format="YYYY-MM-DD HH:mm:ss" show-time placeholder="请选择记账日期" style="width: 100%" allow-clear/>
  84. </a-form-item>
  85. </a-col>
  86. <a-col :span="12">
  87. <a-form-item label="备注:" name="remark">
  88. <a-input v-model:value="formData.remark" :disabled="isView" placeholder="请输入备注" allow-clear />
  89. </a-form-item>
  90. </a-col>
  91. <a-col :span="12">
  92. <a-form-item label="文件路径:" name="fileUrl">
  93. <a-input v-model:value="formData.fileUrl" :disabled="isView" placeholder="请输入文件路径" allow-clear />
  94. </a-form-item>
  95. </a-col>
  96. <a-col :span="12">
  97. <a-form-item label="制单人:" name="creator">
  98. <a-input v-model:value="formData.creator" :disabled="isView" placeholder="请输入制单人" allow-clear />
  99. </a-form-item>
  100. </a-col>
  101. <a-col :span="12">
  102. <a-form-item label="规格:" name="specs">
  103. <a-input v-model:value="formData.specs" :disabled="isView" placeholder="请输入规格" allow-clear />
  104. </a-form-item>
  105. </a-col>
  106. <a-col :span="12">
  107. <a-form-item label="单价:" name="unitPrice">
  108. <a-input v-model:value="formData.unitPrice" :disabled="isView" placeholder="请输入单价" allow-clear />
  109. </a-form-item>
  110. </a-col>
  111. </a-row>
  112. </a-form>
  113. </a-card>
  114. </template>
  115. <script setup name="qyFrontlineWarehouseDetail">
  116. import tool from '@/utils/tool'
  117. import { cloneDeep } from 'lodash-es'
  118. import { required } from '@/utils/formRules'
  119. import qyFrontlineWarehouseApi from '@/api/yqyc/qyFrontlineWarehouseApi'
  120. // 抽屉状态
  121. const emit = defineEmits({ successful: null })
  122. const formRef = ref()
  123. // 表单数据
  124. const formData = ref({})
  125. const submitLoading = ref(false)
  126. const isView = ref(false)
  127. const accountTypeOptions = ref([])
  128. const businessTypeOptions = ref([])
  129. const measurementUnitOptions = ref([])
  130. // 打开抽屉
  131. const onOpen = (record, view = false) => {
  132. isView.value = view
  133. if (record) {
  134. let recordData = cloneDeep(record)
  135. formData.value = Object.assign({}, recordData)
  136. }
  137. accountTypeOptions.value = tool.dictList('account_type')
  138. businessTypeOptions.value = tool.dictList('bussiness_type')
  139. measurementUnitOptions.value = tool.dictList('measurement unit')
  140. }
  141. // 关闭抽屉
  142. const onClose = () => {
  143. formRef.value?.resetFields()
  144. formData.value = {}
  145. isView.value = true
  146. emit('onClose')
  147. }
  148. // 默认要校验的
  149. const formRules = {
  150. }
  151. // 验证并提交数据
  152. const onSubmit = () => {
  153. formRef.value
  154. .validate()
  155. .then(() => {
  156. submitLoading.value = true
  157. const formDataParam = cloneDeep(formData.value)
  158. qyFrontlineWarehouseApi
  159. .qyFrontlineWarehouseSubmitForm(formDataParam, formDataParam.id)
  160. .then(() => {
  161. onClose()
  162. emit('successful')
  163. })
  164. .finally(() => {
  165. submitLoading.value = false
  166. })
  167. })
  168. .catch(() => {})
  169. }
  170. // 抛出函数
  171. defineExpose({
  172. onOpen
  173. })
  174. </script>