firstInfoForm.vue 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421
  1. <template>
  2. <div>
  3. <el-form ref="basicInfoForm" label-position="top" :model="info" :rules="rules" label-width="150px">
  4. <div class="fomebox">
  5. <div class="ftop flexc">
  6. <img class="timg flex0" src="@/assets/images/project/tabtit.png"/>
  7. <div class="flex1 tit">签约双方信息</div>
  8. <!-- <el-button type="primary" plain>保存</el-button> -->
  9. </div>
  10. <div class="rowbox">
  11. <el-row :gutter="22">
  12. <el-col :span="6">
  13. <el-form-item label="项目编号" prop="xmbh">
  14. <el-input disabled placeholder="内容提交后自动生成" v-model="info.xmbh" clearable/>
  15. </el-form-item>
  16. </el-col>
  17. <el-col :span="18">
  18. <el-form-item label="项目名称" prop="xmmc">
  19. <el-input placeholder="输入项目名称" v-model="info.xmmc" clearable/>
  20. </el-form-item>
  21. </el-col>
  22. <el-col :span="6">
  23. <el-form-item label="投资方" prop="className">
  24. <el-input placeholder="输入投资方名称" v-model="info.tzf" clearable/>
  25. </el-form-item>
  26. </el-col>
  27. <el-col :span="6">
  28. <el-form-item label="属地政府" prop="functionAuthor">
  29. <el-input placeholder="输入属地政府名称" v-model="info.sdzf" clearable/>
  30. </el-form-item>
  31. </el-col>
  32. <el-col :span="6">
  33. <el-form-item label="签约日期" prop="qyrq">
  34. <el-date-picker
  35. v-model="info.qyrq"
  36. type="date"
  37. value-format="yyyy-MM-dd"
  38. placeholder="年 / 月 / 日">
  39. </el-date-picker>
  40. </el-form-item>
  41. </el-col>
  42. </el-row>
  43. <el-row :gutter="22">
  44. <el-col :span="6">
  45. <el-form-item label="项目录入人" prop="xmlrr">
  46. <el-input placeholder="输入项目录入人" v-model="info.xmlrr" clearable/>
  47. </el-form-item>
  48. </el-col>
  49. <el-col :span="6">
  50. <el-form-item label="职务" prop="job">
  51. <el-input placeholder="输入职务" v-model="info.job" clearable/>
  52. </el-form-item>
  53. </el-col>
  54. <el-col :span="6">
  55. <el-form-item label="联系方式" prop="lrrPhone">
  56. <el-input placeholder="输入联系方式" type="number" v-model="info.lrrPhone" clearable/>
  57. </el-form-item>
  58. </el-col>
  59. </el-row>
  60. </div>
  61. </div>
  62. <div class="fomebox">
  63. <div class="ftop flexc mb14">
  64. <img class="timg flex0" src="@/assets/images/project/tabtit.png"/>
  65. <div class="flex1 tit">签约项目信息</div>
  66. <!-- <el-button type="primary" plain>保存</el-button> -->
  67. </div>
  68. <div class="ftab flexc">
  69. <div class="line"></div>项目信息
  70. </div>
  71. <div class="rowbox">
  72. <el-row :gutter="22">
  73. <el-col :span="6">
  74. <el-form-item label="备案总投资额(亿元)" prop="baztze">
  75. <el-input placeholder="输入总投资额" type="number" v-model="info.baztze" clearable/>
  76. </el-form-item>
  77. </el-col>
  78. <el-col :span="6">
  79. <el-form-item label="立项时间" prop="lxsjTime">
  80. <el-date-picker
  81. v-model="info.lxsjTime"
  82. type="date"
  83. value-format="yyyy-MM-dd"
  84. placeholder="年 / 月 / 日">
  85. </el-date-picker>
  86. </el-form-item>
  87. </el-col>
  88. <el-col :span="6">
  89. <el-form-item label="产业类型" prop="cylb">
  90. <el-select v-model="info.cylb" placeholder="选择产业类型">
  91. <el-option
  92. v-for="item in cylbOptions"
  93. :key="item.dictValue"
  94. :label="item.dictLabel"
  95. :value="item.dictValue">
  96. </el-option>
  97. </el-select>
  98. </el-form-item>
  99. </el-col>
  100. <el-col :span="6">
  101. <el-form-item label="投资企业背景" prop="tzqybj">
  102. <el-select v-model="info.tzqybj" placeholder="选择投资企业背景">
  103. <el-option
  104. v-for="item in qybjOptions"
  105. :key="item.dictValue"
  106. :label="item.dictLabel"
  107. :value="item.dictValue">
  108. </el-option>
  109. </el-select>
  110. </el-form-item>
  111. </el-col>
  112. </el-row>
  113. <el-row :gutter="22">
  114. <el-col :span="24">
  115. <el-form-item label="建设内容" prop="jsnr">
  116. <el-input type="textarea" placeholder="输入建设内容…" v-model="info.jsnr" clearable></el-input>
  117. </el-form-item>
  118. </el-col>
  119. </el-row>
  120. </div>
  121. <div class="ftab flexc">
  122. <div class="line"></div>投资企业信息
  123. </div>
  124. <div class="rowbox">
  125. <el-row :gutter="22">
  126. <el-col :span="6">
  127. <el-form-item label="在潜注册公司名称" prop="zcqymc">
  128. <el-input placeholder="输入公司名称" v-model="info.zcqymc" clearable/>
  129. </el-form-item>
  130. </el-col>
  131. <el-col :span="6">
  132. <el-form-item label="注册资金(万元)" prop="zczj">
  133. <el-input placeholder="输入注册资金" type="number" v-model="info.zczj" clearable/>
  134. </el-form-item>
  135. </el-col>
  136. <el-col :span="6">
  137. <el-form-item label="企业注册时间" prop="zcrq">
  138. <el-date-picker
  139. v-model="info.zcrq"
  140. type="date"
  141. value-format="yyyy-MM-dd"
  142. placeholder="年 / 月 / 日">
  143. </el-date-picker>
  144. </el-form-item>
  145. </el-col>
  146. <el-col :span="6">
  147. <el-form-item label="经营范围" prop="jyfw">
  148. <el-input placeholder="输入经营范围" v-model="info.jyfw" clearable/>
  149. </el-form-item>
  150. </el-col>
  151. </el-row>
  152. <el-row :gutter="22">
  153. <el-col :span="6">
  154. <el-form-item label="法定代表人" prop="fddbr">
  155. <el-input placeholder="输入法定代表人" v-model="info.fddbr" clearable/>
  156. </el-form-item>
  157. </el-col>
  158. <el-col :span="6">
  159. <el-form-item label="联系方式" prop="lxfs">
  160. <el-input placeholder="输入联系方式" type="number" v-model="info.lxfs" clearable/>
  161. </el-form-item>
  162. </el-col>
  163. </el-row>
  164. </div>
  165. <div class="ftab flexc">
  166. <div class="line"></div>用地情况
  167. </div>
  168. <div class="rowbox">
  169. <el-row :gutter="22">
  170. <el-col :span="6">
  171. <el-form-item label="供地面积(亩)" prop="gdmj">
  172. <el-input placeholder="输入供地面积" type="number" v-model="info.gdmj" clearable/>
  173. </el-form-item>
  174. </el-col>
  175. <el-col :span="6">
  176. <el-form-item label="租赁厂房面积(平)" prop="zlcf">
  177. <el-input placeholder="输入租赁厂房面积" type="number" v-model="info.zlcf" clearable/>
  178. </el-form-item>
  179. </el-col>
  180. <el-col :span="6">
  181. <el-form-item label="流转土地面积(亩)" prop="lztd">
  182. <el-input placeholder="输入流转土地面积" type="number" v-model="info.lztd" clearable/>
  183. </el-form-item>
  184. </el-col>
  185. </el-row>
  186. </div>
  187. <div class="ftab flexc">
  188. <div class="line"></div>其他信息
  189. </div>
  190. <div class="rowbox">
  191. <el-row :gutter="22">
  192. <el-col :span="6">
  193. <el-form-item label="实际投资总额(亿元)" prop="sjtzze">
  194. <el-input placeholder="输入实际投资总额" type="number" v-model="info.sjtzze" clearable/>
  195. </el-form-item>
  196. </el-col>
  197. <el-col :span="6">
  198. <el-form-item label="实际固定资产投资额(亿元)" prop="sjgdzctze">
  199. <el-input placeholder="输入实际固定资产投资额" type="number" v-model="info.sjgdzctze" clearable/>
  200. </el-form-item>
  201. </el-col>
  202. <el-col :span="6">
  203. <el-form-item label="亩均投资强度(万元/亩)" prop="mjtzqd">
  204. <el-input placeholder="输入亩均投资强度" type="number" v-model="info.mjtzqd" clearable/>
  205. </el-form-item>
  206. </el-col>
  207. <el-col :span="6">
  208. <el-form-item label="亩均收入(万元/亩)" prop="mjsr">
  209. <el-input placeholder="输入亩均收入" type="number" v-model="info.mjsr" clearable/>
  210. </el-form-item>
  211. </el-col>
  212. <el-col :span="6">
  213. <el-form-item label="预计年产值(亿元)" prop="yjncz">
  214. <el-input placeholder="输入预计年产值" type="number" v-model="info.yjncz" clearable/>
  215. </el-form-item>
  216. </el-col>
  217. <el-col :span="6">
  218. <el-form-item label="预计利税(万元)" prop="yjls">
  219. <el-input placeholder="输入预计利税" type="number" v-model="info.yjls" clearable/>
  220. </el-form-item>
  221. </el-col>
  222. <el-col :span="6">
  223. <el-form-item label="投资回收周期(年)" prop="tzhszq">
  224. <el-input placeholder="输入投资回收周期" type="number" v-model="info.tzhszq" clearable/>
  225. </el-form-item>
  226. </el-col>
  227. </el-row>
  228. </div>
  229. </div>
  230. <div class="fomebox">
  231. <div class="ftop flexc">
  232. <img class="timg flex0" src="@/assets/images/project/tabtit.png"/>
  233. <div class="flex1 tit">上传附件</div>
  234. <!-- <el-button type="primary" plain>保存</el-button> -->
  235. </div>
  236. <div class="rowbox pt24">
  237. <el-table :data="tableData" border style="width: 100%;margin-bottom: 15px;">
  238. <el-table-column align="center" type="index" label="序号" width="10%"></el-table-column>
  239. <el-table-column align="center" prop="fjlx" label="附件类型" width="30%"> </el-table-column>
  240. <el-table-column align="center" label="操作" width="30%">
  241. <template slot-scope="scope">
  242. <div class="flexcc">
  243. <div class="btna flexc coa">
  244. <!-- <div class="imgs">
  245. <img class="imga" src="@/assets/images/project/upa.png"/>
  246. </div>上传 -->
  247. <fileUploads v-model="info.zsyzFjList" :data="scope.row['datas']" />
  248. <!-- <fileUploads v-model="info.zsyzFjList" :xmbh="xmbha" v-if="scope.row['type']==1" :data="xmkxx" />
  249. <fileUploads v-model="info.zsyzFjList" :xmbh="xmbha" v-if="scope.row['type']==2" :data="xmxd" />
  250. <fileUploads v-model="info.zsyzFjList" :xmbh="xmbha" v-if="scope.row['type']==3" :data="yyzz" />
  251. <fileUploads v-model="info.zsyzFjList" :xmbh="xmbha" v-if="scope.row['type']==4" :data="fgwlx" />
  252. <fileUploads v-model="info.zsyzFjList" :xmbh="xmbha" v-if="scope.row['type']==5" :data="tzht" /> -->
  253. <!-- <file-upload :limit="1" v-model="form.staffImage"/> -->
  254. </div>
  255. <!-- <div class="btna flexc cob">
  256. <div class="imgs">
  257. <img class="imgb" src="@/assets/images/project/upb.png"/>
  258. </div>预览
  259. </div> -->
  260. <!-- <div class="btna flexc coc">
  261. <div class="imgs">
  262. <img class="imga" src="@/assets/images/project/upc.png"/>
  263. </div>下载
  264. </div> -->
  265. <!-- <div class="btna flexc cod">
  266. <div class="imgs">
  267. <img class="imgc" src="@/assets/images/project/upd.png"/>
  268. </div>删除
  269. </div> -->
  270. </div>
  271. </template>
  272. </el-table-column>
  273. </el-table>
  274. </div>
  275. </div>
  276. </el-form>
  277. <div class="flexcc pt7">
  278. <!-- <el-button type="primary" plain>暂存</el-button> -->
  279. <el-button type="primary" v-hasPermi="['zhaoshangV3:qyxx:add']" @click="getSubmit" style="margin-left: 26px;">提交</el-button>
  280. </div>
  281. </div>
  282. </template>
  283. <script>
  284. import {addQyxx, updateQyxx, delQyxx, getQyxx } from "@/api/zhaoshang/qyxx"
  285. export default {
  286. props: {
  287. info: {
  288. type: Object,
  289. default: null
  290. },
  291. cylbOptions:{
  292. type:Array,
  293. default: []
  294. },
  295. qybjOptions:{
  296. type:Array,
  297. default: []
  298. },
  299. },
  300. watch: {
  301. info: {
  302. handler(newVal, oldVal) {
  303. this.xmbha=newVal.xmbh
  304. var newArr=this.tableData;
  305. newArr.forEach(ite=>{
  306. ite.datas.xmbh=newVal.xmbh
  307. })
  308. this.tableData=JSON.parse(JSON.stringify(newArr))
  309. // this.xmkxx.xmbh=newVal.xmbh
  310. // this.xmxd.xmbh=newVal.xmbh
  311. // this.yyzz.xmbh=newVal.xmbh
  312. // this.fgwlx.xmbh=newVal.xmbh
  313. // this.tzht.xmbh=newVal.xmbh;
  314. // if(newVal.zsyzFjList){
  315. // }
  316. },
  317. deep: true
  318. },
  319. },
  320. data() {
  321. return {
  322. tableData: [
  323. {fjlx: '项目可行性研究报告',type:'1',datas:{xmbh:null,bigType:'a',type:'1',fileName:null}},
  324. {fjlx: '项目尽调报告',type:'2',datas:{xmbh:null,bigType:'a',type:'2',fileName:null}},
  325. {fjlx: '营业执照',type:'3',datas:{xmbh:null,bigType:'a',type:'3',fileName:null}},
  326. {fjlx: '发改委立项',type:'4',datas:{xmbh:null,bigType:'a',type:'4',fileName:null}},
  327. {fjlx: '投资合同',type:'5',datas:{xmbh:null,bigType:'a',type:'5',fileName:null}},
  328. ],
  329. xmkxx:{xmbh:null,bigType:'a',type:1,fileName:null},
  330. xmxd:{xmbh:null,bigType:'a',type:2,fileName:null},
  331. yyzz:{xmbh:null,bigType:'a',type:3,fileName:null},
  332. fgwlx:{xmbh:null,bigType:'a',type:4,fileName:null},
  333. tzht:{xmbh:null,bigType:'a',type:5,fileName:null},
  334. xmbha:'',
  335. rules: {
  336. zcqymc: [
  337. { required: true, message: "请输入在潜注册公司名称", trigger: "blur" }
  338. ],
  339. }
  340. }
  341. },
  342. mounted() {
  343. // this.$nextTick(() => {
  344. // this.initChart()
  345. // })
  346. },
  347. methods:{
  348. getSubmit(){
  349. console.log(this.info)
  350. this.$refs.basicInfoForm.validate(valid => {
  351. if(valid){
  352. var params=JSON.parse(JSON.stringify(this.info))
  353. let regphone = /^1[3|4|5|6|7|8|9][0-9]\d{8}$/
  354. if(params.lrrPhone && !regphone.test(params.lrrPhone)) {
  355. this.$message.error('请输入正确的联系方式');
  356. return
  357. }
  358. if(params.lxfs && !regphone.test(params.lxfs)) {
  359. this.$message.error('请输入正确的联系方式');
  360. return
  361. }
  362. var id=params.id
  363. if(id!=-1){
  364. updateQyxx(params).then(res=>{
  365. if(res.code==200){
  366. this.$message.success('修改成功');
  367. }
  368. })
  369. }else{
  370. addQyxx(params).then(res=>{
  371. if(res.code==200){
  372. this.$message.success('保存成功');
  373. this.$emit("getSubmit",res.data)
  374. }
  375. })
  376. }
  377. }
  378. })
  379. },
  380. }
  381. }
  382. </script>
  383. <style lang="scss" scoped>
  384. ::v-deep {
  385. .fomebox{
  386. .el-button--primary{font-size: 14px;padding: 8px 14px;}
  387. .el-form-item__label{padding-bottom: 0;line-height: 38px;}
  388. .el-form-item{margin-bottom: 15px;}
  389. .el-input__inner{height: 40px;line-height: 40px;}
  390. .el-date-editor.el-input{width: 100%;}
  391. .el-select{width: 100%;}
  392. table{width: 100% !important;}
  393. .el-table .el-table__header-wrapper th{background: #F6FAFD;}
  394. }
  395. }
  396. .fomebox{background: #FFFFFF;margin-bottom: 15px;border-radius: 4px;
  397. .ftop{padding: 10px 17px 10px 16px;border-bottom: 1px solid #E6E6E6;
  398. .timg{width: 20px;height: 20px;margin-right: 13px;}
  399. .tit{font-weight: bold;font-size: 16px;color: #222838;}
  400. }
  401. .rowbox{padding: 10px 15px 9px;}
  402. .ftab{font-weight: bold;font-size: 14px;color: #2777D0;padding: 7px 16px 0px;
  403. .line{width: 6px;margin-right: 9px;height: 20px;background: #2777D0;}
  404. }
  405. .btna{font-weight: 500;font-size: 14px;padding: 0 13px;
  406. .imgs{width: 15px;height: 15px;display: flex;align-items: center;justify-content: center;margin-right: 7px;
  407. .imga{width: 13px;height: 14px;}
  408. .imgb{width: 14px;height: 14px;}
  409. .imgc{width: 15px;height: 15px;}
  410. .imgd{width: 13px;height: 14px;}
  411. }
  412. &.coa{color: #1890FF;}
  413. &.cob{color: #FE7F0E;}
  414. &.coc{color: #00A854;}
  415. &.cod{color: #F25858;}
  416. }
  417. }
  418. </style>