dataModal.vue 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. <template>
  2. <hc-dialog is-to-body is-table widths="1200px" :show="isShow" title="材料计量单新增" @save="modalSave" @close="modalClose">
  3. <div class="relative h-full flex">
  4. <div id="hc_modal_tree">
  5. <hc-card-item scrollbar>
  6. <hc-lazy-tree :h-props="treeProps" @load="treeLoadNode" />
  7. </hc-card-item>
  8. </div>
  9. <div id="hc_modal_form">
  10. <hc-card-item>
  11. <el-form ref="baseFormRef" :model="baseForm" :rules="baseFormRules" label-position="top" label-width="auto">
  12. <el-row :gutter="20">
  13. <el-col :span="8">
  14. <el-form-item label="材料到场编号:">
  15. <el-input v-model="baseForm.key1" />
  16. </el-form-item>
  17. </el-col>
  18. <el-col :span="8">
  19. <el-form-item label="合同材料:">
  20. <el-input v-model="baseForm.key1" disabled />
  21. </el-form-item>
  22. </el-col>
  23. <el-col :span="8">
  24. <el-form-item label="计量期:">
  25. <el-input v-model="baseForm.key1" disabled />
  26. </el-form-item>
  27. </el-col>
  28. <el-col :span="8">
  29. <el-form-item label="单价:">
  30. <el-input v-model="baseForm.key1" />
  31. </el-form-item>
  32. </el-col>
  33. <el-col :span="8">
  34. <el-form-item label="数量:">
  35. <el-input v-model="baseForm.key1" />
  36. </el-form-item>
  37. </el-col>
  38. <el-col :span="8">
  39. <el-form-item label="计量金额:">
  40. <el-input v-model="baseForm.key1" disabled />
  41. </el-form-item>
  42. </el-col>
  43. <el-col :span="8">
  44. <el-form-item label="业务日期:">
  45. <el-date-picker v-model="baseForm.key3" class="block" format="YYYY-MM-DD" type="date" value-format="YYYY-MM-DD" disabled />
  46. </el-form-item>
  47. </el-col>
  48. <el-col :span="8">
  49. <el-form-item label="材料来源:">
  50. <el-input v-model="baseForm.key1" />
  51. </el-form-item>
  52. </el-col>
  53. <el-col :span="8">
  54. <el-form-item label="材料是否符合要求:">
  55. <el-select v-model="baseForm.key2" block>
  56. <el-option label="是" value="1" />
  57. <el-option label="否" value="2" />
  58. </el-select>
  59. </el-form-item>
  60. </el-col>
  61. <el-col :span="8">
  62. <el-form-item label="备料堆放地点:">
  63. <el-input v-model="baseForm.key1" />
  64. </el-form-item>
  65. </el-col>
  66. <el-col :span="8">
  67. <el-form-item label="存储情况:">
  68. <el-input v-model="baseForm.key1" />
  69. </el-form-item>
  70. </el-col>
  71. <el-col :span="8">
  72. <el-form-item label="存储方法是否符合要求:">
  73. <el-select v-model="baseForm.key2" block>
  74. <el-option label="是" value="1" />
  75. <el-option label="否" value="2" />
  76. </el-select>
  77. </el-form-item>
  78. </el-col>
  79. <el-col :span="8">
  80. <el-form-item label="合格证号:">
  81. <el-input v-model="baseForm.key1" />
  82. </el-form-item>
  83. </el-col>
  84. <el-col :span="16">
  85. <el-form-item label="备注:">
  86. <el-input v-model="baseForm.key1" />
  87. </el-form-item>
  88. </el-col>
  89. </el-row>
  90. </el-form>
  91. <!-- 附件列表 -->
  92. <div class="hc-flex my-5">
  93. <div class="flex-1 text-[16px] text-blue">附件列表</div>
  94. <div class="font-400 text-orange">可上传 图片(png、jpg、jpeg)、Excel(xls、xlsx)、PDF、Word(doc、docx)文件</div>
  95. </div>
  96. <el-form :model="baseForm" label-position="top">
  97. <el-form-item label="">
  98. <hc-form-upload type="list" :src="baseForm.key11" />
  99. </el-form-item>
  100. </el-form>
  101. </hc-card-item>
  102. </div>
  103. </div>
  104. </hc-dialog>
  105. </template>
  106. <script setup>
  107. import { nextTick, ref, watch } from 'vue'
  108. const props = defineProps({
  109. ids: {
  110. type: [String, Number],
  111. default: '',
  112. },
  113. })
  114. //事件
  115. const emit = defineEmits(['close'])
  116. //双向绑定
  117. // eslint-disable-next-line no-undef
  118. const isShow = defineModel('modelValue', {
  119. default: false,
  120. })
  121. //监听
  122. watch(() => [
  123. props.ids,
  124. ], ([ids]) => {
  125. console.log('ids', ids)
  126. }, { immediate: true })
  127. //监听
  128. watch(isShow, (val) => {
  129. if (val) {
  130. detailsModalShow()
  131. }
  132. })
  133. const detailsModalShow = () => {
  134. nextTick(() => {
  135. window.$split(['#hc_modal_tree', '#hc_modal_form'], {
  136. sizes: [30, 70],
  137. snapOffset: 0,
  138. minSize: [170, 500],
  139. })
  140. })
  141. }
  142. //数据格式
  143. const treeProps = {
  144. label: 'name',
  145. children: 'children',
  146. isLeaf: 'leaf',
  147. }
  148. //懒加载的数据
  149. const treeLoadNode = ({ level }, resolve) => {
  150. if (level === 0) {
  151. return resolve([{ name: 'region' }])
  152. }
  153. if (level > 3) {
  154. return resolve([])
  155. }
  156. setTimeout(() => {
  157. resolve([
  158. { name: 'leaf', leaf: true },
  159. { name: 'zone' },
  160. ])
  161. }, 500)
  162. }
  163. //基础表单
  164. const baseFormRef = ref(null)
  165. const baseForm = ref({})
  166. const baseFormRules = {}
  167. const modalSave = () => {
  168. modalClose()
  169. }
  170. const modalClose = () => {
  171. isShow.value = false
  172. emit('close')
  173. }
  174. </script>
  175. <style scoped lang="scss">
  176. </style>