basic.vue 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. <template>
  2. <div id="basic">
  3. <el-row>
  4. <el-col :span="24" class="basic">
  5. <el-form :model="basicForm" :rules="rules" ref="basicForm" label-width="120px">
  6. <el-form-item label="成果名称" prop="achieve_name">
  7. <el-input v-model="basicForm.achieve_name" placeholder="请输入成果名称"></el-input>
  8. </el-form-item>
  9. <el-form-item label="成果类别" prop="achieve_type">
  10. <el-select v-model="basicForm.achieve_type" multiple clearable filterable placeholder="请选择">
  11. <el-option v-for="item in achievetypeList" :key="item.name" :label="item.name" :value="item.name"> </el-option>
  12. </el-select>
  13. </el-form-item>
  14. <el-form-item label="成果编号" prop="achieve_num">
  15. <el-input v-model="basicForm.achieve_num" placeholder="请输入成果编号"></el-input>
  16. </el-form-item>
  17. <el-form-item label="成果取得时间" prop="achieve_date">
  18. <el-date-picker
  19. v-model="basicForm.achieve_date"
  20. type="datetime"
  21. placeholder="请选择开始时间"
  22. format="yyyy-MM-dd HH:mm:ss"
  23. value-format="yyyy-MM-dd HH:mm:ss"
  24. >
  25. </el-date-picker>
  26. </el-form-item>
  27. <el-form-item label="成果形式" prop="achieve_form">
  28. <el-select v-model="basicForm.achieve_form" clearable filterable allow-create placeholder="请选择">
  29. <el-option v-for="(i, index) in achieveformList" :key="index" :label="i.name" :value="i.name"></el-option>
  30. </el-select>
  31. </el-form-item>
  32. <el-form-item label="申请人" prop="apply_personal">
  33. <el-input v-model="basicForm.apply_personal" placeholder="请输入申请人"></el-input>
  34. </el-form-item>
  35. <el-form-item label="申请人电话" prop="apply_phone">
  36. <el-input v-model="basicForm.apply_phone" placeholder="请输入申请人电话"></el-input>
  37. </el-form-item>
  38. <el-form-item label="申请单位" prop="apply_company">
  39. <el-input v-model="basicForm.apply_company" placeholder="请输入申请单位"></el-input>
  40. </el-form-item>
  41. <el-form-item label="地址" prop="address">
  42. <el-input v-model="basicForm.address" placeholder="请输入地址"></el-input>
  43. </el-form-item>
  44. <el-form-item label="申请单位/申请人属性" prop="apply_nature">
  45. <el-select v-model="basicForm.apply_nature" clearable filterable allow-create placeholder="请选择">
  46. <el-option v-for="(i, index) in applynatureList" :key="index" :label="i.name" :value="i.name"></el-option>
  47. </el-select>
  48. </el-form-item>
  49. <el-form-item label="联系人" prop="contacts">
  50. <el-input v-model="basicForm.contacts" placeholder="请输入联系人"></el-input>
  51. </el-form-item>
  52. <el-form-item label="联系电话" prop="phone">
  53. <el-input v-model="basicForm.phone" placeholder="请输入联系电话"></el-input>
  54. </el-form-item>
  55. <el-form-item label="邮箱" prop="email">
  56. <el-input v-model="basicForm.email" placeholder="请输入邮箱"></el-input>
  57. </el-form-item>
  58. <el-form-item label="传真" prop="fax">
  59. <el-input v-model="basicForm.fax" placeholder="请输入传真"></el-input>
  60. </el-form-item>
  61. <el-form-item label="评价目的" prop="objective">
  62. <el-select v-model="basicForm.objective" clearable filterable allow-create placeholder="请选择">
  63. <el-option v-for="(i, index) in objectiveList" :key="index" :label="i.name" :value="i.name"></el-option>
  64. </el-select>
  65. </el-form-item>
  66. <el-form-item label="成果所处阶段" prop="stage">
  67. <el-select v-model="basicForm.stage" clearable filterable allow-create placeholder="请选择">
  68. <el-option v-for="(i, index) in stageList" :key="index" :label="i.name" :value="i.name"></el-option>
  69. </el-select>
  70. </el-form-item>
  71. <el-form-item label="经济效益产值" prop="output">
  72. <el-input v-model="basicForm.output" placeholder="请输入经济效益产值"></el-input>
  73. </el-form-item>
  74. <el-form-item label="经济效益利润" prop="profit">
  75. <el-input v-model="basicForm.profit" placeholder="请输入经济效益利润"></el-input>
  76. </el-form-item>
  77. <el-form-item label="经济效益税收" prop="revenue">
  78. <el-input v-model="basicForm.revenue" placeholder="请输入经济效益税收"></el-input>
  79. </el-form-item>
  80. <el-col :span="24" class="btn">
  81. <el-button type="primary" size="mini" @click="resetBtn">取消申报</el-button>
  82. <el-button type="primary" size="mini" @click="basicBtn('basicForm')">下一步</el-button>
  83. </el-col>
  84. </el-form>
  85. </el-col>
  86. </el-row>
  87. </div>
  88. </template>
  89. <script>
  90. const { achievetype, achieveform, applynature, objective, stage } = require('@common/src/store/achieve/achieveType');
  91. import { mapState, createNamespacedHelpers } from 'vuex';
  92. export default {
  93. name: 'basic',
  94. props: {
  95. basicForm: { type: Object },
  96. },
  97. components: {},
  98. data: function() {
  99. return {
  100. rules: {
  101. achieve_name: [{ required: true, message: '请输入成果名称', trigger: 'blur' }],
  102. achieve_type: [{ required: true, message: '请选择成果类别', trigger: 'change' }],
  103. achieve_num: [{ required: false, message: '请输入成果编号', trigger: 'blur' }],
  104. achieve_date: [{ required: true, message: '请选择开始时间', trigger: 'change' }],
  105. achieve_form: [{ required: true, message: '请输入成果形式', trigger: 'change' }],
  106. apply_personal: [{ required: true, message: '请输入申请人', trigger: 'blur' }],
  107. apply_phone: [{ required: true, message: '请输入申请人电话', trigger: 'blur' }],
  108. apply_company: [{ required: true, message: '请输入申请单位', trigger: 'blur' }],
  109. address: [{ required: true, message: '请输入地址', trigger: 'blur' }],
  110. apply_nature: [{ required: true, message: '请输入申请单位/申请人属性', trigger: 'change' }],
  111. contacts: [{ required: true, message: '请输入联系人', trigger: 'blur' }],
  112. phone: [{ required: true, message: '请输入联系电话', trigger: 'blur' }],
  113. email: [{ required: true, message: '请输入邮箱', trigger: 'blur' }],
  114. fax: [{ required: false, message: '请输入传真', trigger: 'blur' }],
  115. objective: [{ required: true, message: '请输入评价目的', trigger: 'change' }],
  116. stage: [{ required: true, message: '请输入成果所处阶段', trigger: 'blur' }],
  117. output: [{ required: true, message: '请输入经济效益产值', trigger: 'blur' }],
  118. profit: [{ required: true, message: '请输入经济效益利润', trigger: 'blur' }],
  119. revenue: [{ required: true, message: '请输入经济效益税收', trigger: 'blur' }],
  120. },
  121. // 成果类别
  122. achievetypeList: achievetype,
  123. // 成果形式
  124. achieveformList: achieveform,
  125. // 申请人属性
  126. applynatureList: applynature,
  127. // 评价目的
  128. objectiveList: objective,
  129. // 成果所处阶段
  130. stageList: stage,
  131. };
  132. },
  133. created() {},
  134. methods: {
  135. // 取消申报
  136. resetBtn() {
  137. window.history.back();
  138. },
  139. // 下一步
  140. basicBtn(formName) {
  141. this.$refs[formName].validate(valid => {
  142. if (valid) {
  143. this.$emit('basicBtn', { data: this.basicForm });
  144. } else {
  145. console.log('error submit!!');
  146. return false;
  147. }
  148. });
  149. },
  150. },
  151. computed: {
  152. ...mapState(['user']),
  153. pageTitle() {
  154. return `${this.$route.meta.title}`;
  155. },
  156. },
  157. metaInfo() {
  158. return { title: this.$route.meta.title };
  159. },
  160. };
  161. </script>
  162. <style lang="less" scoped>
  163. .basic {
  164. padding: 15px;
  165. .btn {
  166. text-align: center;
  167. }
  168. .el-select {
  169. width: 100%;
  170. }
  171. }
  172. </style>