projectForm.vue 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382
  1. <template>
  2. <div id="projectForm">
  3. <el-row>
  4. <el-col :span="24" class="main">
  5. <el-form ref="form" :model="form" :rules="rules" label-width="125px">
  6. <el-col :span="24" class="one">
  7. <el-col :span="24" class="txt">
  8. <span> 项目基本信息</span>
  9. </el-col>
  10. <el-col :span="24" class="info">
  11. <el-col :span="24">
  12. <el-form-item prop="name">
  13. <el-col :span="21" slot="label">
  14. 项目名称:
  15. </el-col>
  16. <el-col :span="24">
  17. <el-input v-model="form.name" placeholder="请输入项目名称"></el-input>
  18. </el-col>
  19. </el-form-item>
  20. </el-col>
  21. <el-col :span="12">
  22. <el-form-item prop="pro_user">
  23. <el-col :span="21" slot="label">
  24. 项目负责人:
  25. </el-col>
  26. <el-col :span="24">
  27. <el-input v-model="form.pro_user" placeholder="请输入项目负责人"></el-input>
  28. </el-col>
  29. </el-form-item>
  30. </el-col>
  31. <el-col :span="12">
  32. <el-form-item prop="pro_phone">
  33. <el-col :span="21" slot="label">
  34. 联系电话:
  35. </el-col>
  36. <el-col :span="24">
  37. <el-input v-model="form.pro_phone" placeholder="请输入联系电话"></el-input>
  38. </el-col>
  39. </el-form-item>
  40. </el-col>
  41. <el-col :span="12" class="langSelect">
  42. <el-form-item prop="techol_stage">
  43. <el-col :span="21" slot="label">
  44. 技术阶段:
  45. </el-col>
  46. <el-col :span="24">
  47. <el-select v-model="form.techol_stage" filterable>
  48. <el-option v-for="(item, index) in techolstageList" :key="index" :value="item.name" :label="item.name"></el-option>
  49. </el-select>
  50. </el-col>
  51. </el-form-item>
  52. </el-col>
  53. <el-col :span="12" class="langSelect">
  54. <el-form-item prop="techol_level">
  55. <el-col :span="21" slot="label">
  56. 技术水平:
  57. </el-col>
  58. <el-col :span="24">
  59. <el-select v-model="form.techol_level" filterable>
  60. <el-option v-for="(item, index) in techollevelList" :key="index" :value="item.name" :label="item.name"></el-option>
  61. </el-select>
  62. </el-col>
  63. </el-form-item>
  64. </el-col>
  65. <el-col :span="12" class="langSelect">
  66. <el-form-item prop="field">
  67. <el-col :span="21" slot="label">
  68. 领域分类:
  69. </el-col>
  70. <el-col :span="24">
  71. <el-select v-model="form.field" filterable>
  72. <el-option v-for="(item, index) in fieldList" :key="index" :value="item.name" :label="item.name"></el-option>
  73. </el-select>
  74. </el-col>
  75. </el-form-item>
  76. </el-col>
  77. <el-col :span="12">
  78. <el-form-item prop="scale">
  79. <el-col :span="21" slot="label">
  80. 市场预估:
  81. </el-col>
  82. <el-col :span="24">
  83. <p>关键技术所支撑的产品市场规模<el-input v-model.number="form.scale" class="scale"></el-input>(亿元/年)</p>
  84. </el-col>
  85. </el-form-item>
  86. </el-col>
  87. </el-col>
  88. </el-col>
  89. <el-col :span="24" class="one">
  90. <el-col :span="24" class="txt">
  91. <span>项目建议单位</span>
  92. </el-col>
  93. <el-col :span="24" class="info">
  94. <el-col :span="24">
  95. <el-form-item prop="proposal_company">
  96. <el-col :span="21" slot="label">
  97. 建议单位名称:
  98. </el-col>
  99. <el-col :span="24">
  100. <el-input v-model="form.proposal_company" placeholder="请输入建议单位名称"></el-input>
  101. </el-col>
  102. </el-form-item>
  103. </el-col>
  104. <el-col :span="12">
  105. <el-form-item prop="proposal_user">
  106. <el-col :span="21" slot="label">
  107. 联系人:
  108. </el-col>
  109. <el-col :span="24">
  110. <el-input v-model="form.proposal_user" placeholder="请输入联系人"></el-input>
  111. </el-col>
  112. </el-form-item>
  113. </el-col>
  114. <el-col :span="12">
  115. <el-form-item prop="proposal_phone">
  116. <el-col :span="21" slot="label">
  117. 联系电话:
  118. </el-col>
  119. <el-col :span="24">
  120. <el-input v-model="form.proposal_phone" placeholder="请输入联系电话"></el-input>
  121. </el-col>
  122. </el-form-item>
  123. </el-col>
  124. </el-col>
  125. </el-col>
  126. <el-col :span="24" class="one">
  127. <el-col :span="24" class="txt">
  128. <span>主要合作单位</span>
  129. </el-col>
  130. <el-col :span="24" class="info">
  131. <el-col :span="24">
  132. <el-form-item prop="coopera_company">
  133. <el-col :span="21" slot="label">
  134. 合作单位名称:
  135. </el-col>
  136. <el-col :span="24">
  137. <el-input v-model="form.coopera_company" placeholder="请输入合作单位名称"></el-input>
  138. </el-col>
  139. </el-form-item>
  140. </el-col>
  141. <el-col :span="12">
  142. <el-form-item prop="coopera_user">
  143. <el-col :span="21" slot="label">
  144. 联系人:
  145. </el-col>
  146. <el-col :span="24">
  147. <el-input v-model="form.coopera_user" placeholder="请输入联系人"></el-input>
  148. </el-col>
  149. </el-form-item>
  150. </el-col>
  151. <el-col :span="12">
  152. <el-form-item prop="coopera_phone">
  153. <el-col :span="21" slot="label">
  154. 联系电话:
  155. </el-col>
  156. <el-col :span="24">
  157. <el-input v-model="form.coopera_phone" placeholder="请输入联系电话"></el-input>
  158. </el-col>
  159. </el-form-item>
  160. </el-col>
  161. </el-col>
  162. </el-col>
  163. <el-col :span="24" class="one">
  164. <el-col :span="24" class="txt">
  165. <span>项目内容简介</span>
  166. </el-col>
  167. <el-col :span="24" class="info">
  168. <el-col :span="24" class="langInfo">
  169. <el-col :span="24" class="title"> <span>立项背景</span>(含解决“卡脖子”技术问题及在行业中所处的地位和作用):</el-col>
  170. <el-col :span="24" class="textarea">
  171. <el-input
  172. v-model="form.sign"
  173. type="textarea"
  174. maxlength="500"
  175. show-word-limit
  176. :autosize="{ minRows: 5, maxRows: 5 }"
  177. placeholder="请输入立项背景(含解决“卡脖子”技术问题及在行业中所处的地位和作用)"
  178. ></el-input>
  179. </el-col>
  180. </el-col>
  181. <el-col :span="24" class="langInfo">
  182. <el-col :span="24" class="title"> <span>前期基础</span>(含知识产权状况):</el-col>
  183. <el-col :span="24" class="textarea">
  184. <el-input
  185. v-model="form.work_basics"
  186. type="textarea"
  187. maxlength="500"
  188. show-word-limit
  189. :autosize="{ minRows: 5, maxRows: 5 }"
  190. placeholder="请输入前期基础(含知识产权状况)"
  191. ></el-input>
  192. </el-col>
  193. </el-col>
  194. <el-col :span="24" class="langInfo">
  195. <el-col :span="24" class="title"> <span>研究内容</span>(含项目创新点):</el-col>
  196. <el-col :span="24" class="textarea">
  197. <el-input
  198. v-model="form.content"
  199. type="textarea"
  200. maxlength="500"
  201. show-word-limit
  202. :autosize="{ minRows: 5, maxRows: 5 }"
  203. placeholder="请输入研究内容(含项目创新点)"
  204. ></el-input>
  205. </el-col>
  206. </el-col>
  207. <el-col :span="24" class="langInfo">
  208. <el-col :span="24" class="title"> <span>技术路线</span>(含拟解决关键技术):</el-col>
  209. <el-col :span="24" class="textarea">
  210. <el-input
  211. v-model="form.route"
  212. type="textarea"
  213. maxlength="500"
  214. show-word-limit
  215. :autosize="{ minRows: 5, maxRows: 5 }"
  216. placeholder="请输入技术路线(含拟解决关键技术)"
  217. ></el-input>
  218. </el-col>
  219. </el-col>
  220. <el-col :span="24" class="langInfo">
  221. <el-col :span="24" class="title"> <span>核心指标</span>(要求可量化、可考核、可检测):</el-col>
  222. <el-col :span="24" class="textarea">
  223. <el-input
  224. v-model="form.quota"
  225. type="textarea"
  226. maxlength="500"
  227. show-word-limit
  228. :autosize="{ minRows: 5, maxRows: 5 }"
  229. placeholder="请输入核心指标(要求可量化、可考核、可检测)"
  230. ></el-input>
  231. </el-col>
  232. </el-col>
  233. <el-col :span="24" class="langInfo">
  234. <el-col :span="24" class="title"> <span>经济效益</span>(含市场分析和产业化预期):</el-col>
  235. <el-col :span="24" class="textarea">
  236. <el-input
  237. v-model="form.influence"
  238. type="textarea"
  239. maxlength="500"
  240. show-word-limit
  241. :autosize="{ minRows: 5, maxRows: 5 }"
  242. placeholder="请输入经济效益(含市场分析和产业化预期)"
  243. ></el-input>
  244. </el-col>
  245. </el-col>
  246. </el-col>
  247. </el-col>
  248. <el-col :span="24" class="btn">
  249. <el-button type="danger" size="mini" @click="resetBtn">取消</el-button>
  250. <el-button type="primary" size="mini" @click="onSubmit('0')">保存</el-button>
  251. <el-button type="success" size="mini" @click="onSubmit('1')">提交</el-button>
  252. </el-col>
  253. </el-form>
  254. </el-col>
  255. </el-row>
  256. </div>
  257. </template>
  258. <script>
  259. import { mapState, createNamespacedHelpers } from 'vuex';
  260. export default {
  261. name: 'projectForm',
  262. props: {
  263. form: { type: Object },
  264. },
  265. components: {},
  266. data: function() {
  267. return {
  268. rules: {},
  269. // 领域分类
  270. fieldList: [{ name: '新材料' }, { name: '先进制造' }, { name: '光电子' }, { name: '新一代信息技术' }, { name: '先进技术' }],
  271. techolstageList: [{ name: '理论研究' }, { name: '小试' }, { name: '中试' }, { name: '规模化试制' }, { name: '其他' }],
  272. // 项目技术水平
  273. techollevelList: [{ name: '国际领先' }, { name: '国际先进' }, { name: '国内领先' }, { name: '国内先进' }],
  274. };
  275. },
  276. created() {},
  277. methods: {
  278. // 取消添加
  279. resetBtn() {
  280. this.$emit('resetBtn');
  281. },
  282. onSubmit(status) {
  283. this.$emit('onSubmit', { data: { ...this.form, status } });
  284. },
  285. // onSubmit(status) {
  286. // if (status == '0') {
  287. // this.$alert(
  288. // '<strong><p>1:用户</p><p>当您进行项目征集时,系统会自动提取项目负责人和联系电话进行平台用户注册,您可用【联系电话】和【初始密码(111111)】进行登录。</p><p>2:保存按钮</p><p>保存按钮,是您填写的信息处于草稿状态,您可到个人中心查看并进行修改与提交。</p></strong>',
  289. // '信息提示',
  290. // {
  291. // dangerouslyUseHTMLString: true,
  292. // showConfirmButton: true,
  293. // showCancelButton: true,
  294. // confirmButtonText: '确定',
  295. // cancelButtonText: '取消',
  296. // }
  297. // )
  298. // .then(() => {
  299. // this.$emit('onSubmit', { data: { ...this.form, status } });
  300. // })
  301. // .catch(() => {});
  302. // } else {
  303. // this.$alert(
  304. // '<strong><p>1:用户</p><p>当您进行项目征集时,系统会自动提取项目负责人和联系电话进行平台用户注册,您可用【联系电话】和【初始密码(111111)】进行登录。</p><p>2:提交按钮</p><p>提交按钮,是您填写的信息处于已发布状态,已发布状态下的项目征集信息是不允许修改的,请您谨慎填写。您也可到个人中心查看提交记录。</p></strong>',
  305. // '信息提示',
  306. // {
  307. // dangerouslyUseHTMLString: true,
  308. // showConfirmButton: true,
  309. // showCancelButton: true,
  310. // confirmButtonText: '确定',
  311. // cancelButtonText: '取消',
  312. // }
  313. // )
  314. // .then(() => {
  315. // this.$emit('onSubmit', { data: { ...this.form, status } });
  316. // })
  317. // .catch(() => {});
  318. // }
  319. // },
  320. },
  321. computed: {
  322. ...mapState(['user']),
  323. },
  324. watch: {},
  325. };
  326. </script>
  327. <style lang="less" scoped>
  328. .main {
  329. margin: 15px 0 0 0;
  330. .one {
  331. position: relative;
  332. border: 1px solid #41719c;
  333. margin: 0 0 35px 0;
  334. min-height: 150px;
  335. .txt {
  336. position: absolute;
  337. top: -22px;
  338. text-align: center;
  339. span {
  340. height: 40px;
  341. line-height: 40px;
  342. display: inline-block;
  343. padding: 0 35px;
  344. background: #fff;
  345. font-weight: bold;
  346. font-size: 18px;
  347. }
  348. }
  349. .info {
  350. padding: 20px 10px 10px 10px;
  351. /deep/.langSelect .el-select {
  352. width: 100%;
  353. }
  354. .scale {
  355. width: 16%;
  356. margin: 0 5px;
  357. /deep/.el-input__inner {
  358. padding: 0 5px;
  359. }
  360. }
  361. .langInfo {
  362. margin: 0 0 10px 0;
  363. .title {
  364. font-size: 14px;
  365. color: #606266;
  366. padding: 10px 0;
  367. span {
  368. font-size: 18px;
  369. font-weight: bold;
  370. }
  371. }
  372. }
  373. }
  374. }
  375. .btn {
  376. text-align: center;
  377. padding: 10px 0;
  378. }
  379. }
  380. </style>