supRecAdd.vue 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. <template>
  2. <div>
  3. <a-drawer
  4. :title="title"
  5. placement="right"
  6. :closable="false"
  7. :visible="visible"
  8. width="600"
  9. :maskClosable="false"
  10. >
  11. <a-form-model ref="ruleForm" :model="form" :rules="rules">
  12. <a-row :gutter="24">
  13. <a-col :span="24">
  14. <a-form-model-item
  15. :label-col="labelCol"
  16. :wrapper-col="wrapperCol"
  17. label="编码"
  18. prop="code"
  19. style="width:100%"
  20. >
  21. <a-input v-model="form.code" placeholder="请输入用品编码" />
  22. </a-form-model-item>
  23. </a-col>
  24. <a-col :span="24">
  25. <a-form-model-item
  26. :label-col="labelCol"
  27. :wrapper-col="wrapperCol"
  28. label="用品名称"
  29. prop="supName"
  30. style="width:100%"
  31. >
  32. <a-select v-model="form.supName" show-search placeholder="请选择名称" style="width: 100%" >
  33. <a-select-option value="长尾文件夹">长尾文件夹</a-select-option>
  34. <a-select-option value="A4打印纸">A4打印纸</a-select-option>
  35. </a-select>
  36. </a-form-model-item>
  37. </a-col>
  38. <a-col :span="24">
  39. <a-form-model-item
  40. :label-col="labelCol"
  41. :wrapper-col="wrapperCol"
  42. label="规格"
  43. prop="size"
  44. style="width:100%"
  45. >
  46. <a-input v-model="form.size" placeholder="请输入规格" />
  47. </a-form-model-item>
  48. </a-col>
  49. <a-col :span="24">
  50. <a-form-model-item
  51. :label-col="labelCol"
  52. :wrapper-col="wrapperCol"
  53. label="库存数量"
  54. prop="inventoryNum"
  55. style="width:100%"
  56. >
  57. <a-input-number
  58. placeholder="请输入库存数量"
  59. :default-value="0"
  60. style="width: 100%"
  61. v-model="form.inventoryNum"
  62. :min="0"
  63. />
  64. </a-form-model-item>
  65. </a-col>
  66. <a-col :span="24">
  67. <a-form-model-item
  68. :label-col="labelCol"
  69. :wrapper-col="wrapperCol"
  70. label="领用数量"
  71. prop="receiveNum"
  72. style="width:100%">
  73. <a-input v-model="form.receiveNum" placeholder="请输入领用数量" />
  74. </a-form-model-item>
  75. </a-col>
  76. <a-col :span="24">
  77. <a-form-model-item
  78. :label-col="labelCol"
  79. :wrapper-col="wrapperCol"
  80. label="申请人"
  81. prop="proposer"
  82. style="width:100%">
  83. <a-input-number v-model="form.proposer" placeholder="请输入申请人" style="width: 100%" />
  84. </a-form-model-item>
  85. </a-col>
  86. <a-col :span="24">
  87. <a-form-model-item
  88. :label-col="labelCol"
  89. :wrapper-col="wrapperCol"
  90. label="所属部门"
  91. prop="department"
  92. style="width:100%">
  93. <a-select v-model="form.department" show-search placeholder="所属选择部门" style="width: 100%">
  94. <a-select-option value="行政部">行政部</a-select-option>
  95. <a-select-option value="销售部">销售部</a-select-option>
  96. <a-select-option value="实施部">实施部</a-select-option>
  97. <a-select-option value="开发部">开发部</a-select-option>
  98. </a-select>
  99. </a-form-model-item>
  100. </a-col>
  101. <!-- 日期 -->
  102. <a-col :span="24">
  103. <a-form-model-item
  104. :label-col="labelCol"
  105. :wrapper-col="wrapperCol"
  106. label="申请日期"
  107. allowClear
  108. showTime
  109. prop="applicationDate"
  110. type="date"
  111. style="width:100%">
  112. <a-date-picker
  113. format="YYYY/MM/DD"
  114. v-model="form.applicationDate"
  115. placeholder="请选择申请日期"
  116. style="width: 100%"
  117. @change="onChange"
  118. >
  119. </a-date-picker></a-form-model-item>
  120. </a-col>
  121. </a-row>
  122. </a-form-model>
  123. <!-- 底部按钮 -->
  124. <div
  125. :style="{
  126. position: 'absolute',
  127. right: 0,
  128. bottom: 0,
  129. width: '100%',
  130. borderTop: '1px solid #e9e9e9',
  131. padding: '10px 16px',
  132. background: '#fff',
  133. textAlign: 'right',
  134. zIndex: 1
  135. }"
  136. >
  137. <a-button :style="{ marginRight: '8px' }" @click="close">关闭</a-button>
  138. <a-button type="primary" @click="save">保存</a-button>
  139. </div>
  140. </a-drawer>
  141. </div>
  142. </template>
  143. <script>
  144. import moment from 'moment'
  145. import 'moment/locale/zh-cn'
  146. export default {
  147. data () {
  148. return {
  149. labelCol: {
  150. xs: { span: 24 },
  151. sm: { span: 5 }
  152. },
  153. wrapperCol: {
  154. xs: { span: 24 },
  155. sm: { span: 16 }
  156. },
  157. visible: false,
  158. // 表单属性
  159. form: {
  160. id: '',
  161. code: '',
  162. supName: [],
  163. size: '',
  164. inventoryNum: '',
  165. receiveNum: '',
  166. proposer: '',
  167. department: [],
  168. applicationDate: null
  169. // 默认值必须是 moment 对象
  170. },
  171. // 表单校验
  172. rules: {
  173. supName: [{ required: true, message: '请用品名称', trigger: 'blur' }],
  174. size: [{ required: true, message: '请输入规格', trigger: 'blur' }],
  175. receiveNum: [{ required: true, message: '请输入领用数量', trigger: 'blur' }],
  176. proposer: [{ required: true, message: '请输入申请人', trigger: 'blur' }]
  177. },
  178. title: ''
  179. }
  180. },
  181. methods: {
  182. // 打开抽屉
  183. showDrawer () {
  184. this.visible = true
  185. },
  186. getInfo () {
  187. },
  188. // 拿到选择的日期
  189. onChange (value, dateString) {
  190. console.log('Selected Time: ', value)
  191. console.log('Formatted Selected Time: ', dateString)
  192. },
  193. // 保存按钮
  194. save () {
  195. this.$refs.ruleForm.validate(valid => {
  196. if (valid) {
  197. // 校验成功
  198. console.log(this.form)
  199. } else {
  200. return false
  201. }
  202. })
  203. },
  204. // 关闭按钮
  205. close () {
  206. this.$refs.ruleForm.resetFields() // 清空
  207. this.visible = false
  208. }
  209. }
  210. }
  211. </script>