8134e91bb8a392001f056384a267a56ce4059ace.svn-base 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. <template>
  2. <a-card :body-style="{padding: '24px 32px'}" :bordered="false">
  3. <a-form @submit="handleSubmit" :form="form">
  4. <a-form-item
  5. label="标题"
  6. :labelCol="{lg: {span: 7}, sm: {span: 7}}"
  7. :wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
  8. <a-input
  9. v-decorator="[
  10. 'name',
  11. {rules: [{ required: true, message: '请输入标题' }]}
  12. ]"
  13. name="name"
  14. placeholder="给目标起个名字" />
  15. </a-form-item>
  16. <a-form-item
  17. label="起止日期"
  18. :labelCol="{lg: {span: 7}, sm: {span: 7}}"
  19. :wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
  20. <a-range-picker
  21. name="buildTime"
  22. style="width: 100%"
  23. v-decorator="[
  24. 'buildTime',
  25. {rules: [{ required: true, message: '请选择起止日期' }]}
  26. ]" />
  27. </a-form-item>
  28. <a-form-item
  29. label="目标描述"
  30. :labelCol="{lg: {span: 7}, sm: {span: 7}}"
  31. :wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
  32. <a-textarea
  33. rows="4"
  34. placeholder="请输入你阶段性工作目标"
  35. v-decorator="[
  36. 'description',
  37. {rules: [{ required: true, message: '请输入目标描述' }]}
  38. ]" />
  39. </a-form-item>
  40. <a-form-item
  41. label="衡量标准"
  42. :labelCol="{lg: {span: 7}, sm: {span: 7}}"
  43. :wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
  44. <a-textarea
  45. rows="4"
  46. placeholder="请输入衡量标准"
  47. v-decorator="[
  48. 'type',
  49. {rules: [{ required: true, message: '请输入衡量标准' }]}
  50. ]" />
  51. </a-form-item>
  52. <a-form-item
  53. label="客户"
  54. :labelCol="{lg: {span: 7}, sm: {span: 7}}"
  55. :wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
  56. <a-input
  57. placeholder="请描述你服务的客户,内部客户直接 @姓名/工号"
  58. v-decorator="[
  59. 'customer',
  60. {rules: [{ required: true, message: '请描述你服务的客户' }]}
  61. ]" />
  62. </a-form-item>
  63. <a-form-item
  64. label="邀评人"
  65. :labelCol="{lg: {span: 7}, sm: {span: 7}}"
  66. :wrapperCol="{lg: {span: 10}, sm: {span: 17} }"
  67. :required="false"
  68. >
  69. <a-input placeholder="请直接 @姓名/工号,最多可邀请 5 人" />
  70. </a-form-item>
  71. <a-form-item
  72. label="权重"
  73. :labelCol="{lg: {span: 7}, sm: {span: 7}}"
  74. :wrapperCol="{lg: {span: 10}, sm: {span: 17} }"
  75. :required="false"
  76. >
  77. <a-input :min="0" :max="100" />
  78. <span> %</span>
  79. </a-form-item>
  80. <a-form-item
  81. label="目标公开"
  82. :labelCol="{lg: {span: 7}, sm: {span: 7}}"
  83. :wrapperCol="{lg: {span: 10}, sm: {span: 17} }"
  84. :required="false"
  85. help="客户、邀评人默认被分享"
  86. >
  87. <a-radio-group v-model="value">
  88. <a-radio :value="1">公开</a-radio>
  89. <a-radio :value="2">部分公开</a-radio>
  90. <a-radio :value="3">不公开</a-radio>
  91. </a-radio-group>
  92. <a-form-item>
  93. <a-select mode="multiple" v-if="value === 2">
  94. <a-select-option value="4">同事一</a-select-option>
  95. <a-select-option value="5">同事二</a-select-option>
  96. <a-select-option value="6">同事三</a-select-option>
  97. </a-select>
  98. </a-form-item>
  99. </a-form-item>
  100. <a-form-item
  101. :wrapperCol="{ span: 24 }"
  102. style="text-align: center"
  103. >
  104. <a-button htmlType="submit" type="primary">提交</a-button>
  105. <a-button style="margin-left: 8px">保存</a-button>
  106. </a-form-item>
  107. </a-form>
  108. </a-card>
  109. </template>
  110. <script>
  111. export default {
  112. name: 'BaseForm',
  113. data () {
  114. return {
  115. description: '表单页用于向用户收集或验证信息,基础表单常见于数据项较少的表单场景。',
  116. value: 1,
  117. // form
  118. form: this.$form.createForm(this),
  119. }
  120. },
  121. methods: {
  122. // handler
  123. handleSubmit (e) {
  124. e.preventDefault()
  125. this.form.validateFields((err, values) => {
  126. if (!err) {
  127. // eslint-disable-next-line no-console
  128. console.log('Received values of form: ', values)
  129. }
  130. })
  131. }
  132. }
  133. }
  134. </script>