audit.vue 80 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161
  1. <template>
  2. <div class="detailWrapper">
  3. <section class="section1 public-flex">
  4. <div class="public-margin-r-20">
  5. <h4>
  6. 投资项目
  7. <span class="alreadyStop" v-if="detailInfo.delFlag === '1'"
  8. >已终止</span
  9. >
  10. </h4>
  11. <p class="projectNameTit">{{ detailInfo.projectName }}</p>
  12. </div>
  13. </section>
  14. <el-divider></el-divider>
  15. <section>
  16. <el-divider></el-divider>
  17. <div class="public-flex-between basicsInfo" v-if="detailInfo.projectState != '1'">
  18. <div class="public-flex-center-column">
  19. <div>项目公司名称</div>
  20. <p style="width: 250px; text-align: center" class="yichu1"
  21. v-if="
  22. detailInfo.tProjectCompany &&
  23. detailInfo.tProjectCompany.companyName
  24. ">
  25. {{ detailInfo.tProjectCompany.companyName }}
  26. </p>
  27. </div>
  28. <div class="public-flex-center-column">
  29. <div>渠道</div>
  30. <p
  31. v-if="
  32. detailInfo.tProjectChannel &&
  33. detailInfo.tProjectChannel.channelName
  34. "
  35. >
  36. {{ detailInfo.tProjectChannel.channelName }}
  37. </p>
  38. <p v-else-if="detailInfo.channel=='1'" >
  39. 直接触达
  40. </p>
  41. <p v-else="detailInfo.channel=='2'" >
  42. 内部推荐
  43. </p>
  44. </div>
  45. <div class="public-flex-center-column">
  46. <div>项目负责人</div>
  47. <p>{{ detailInfo.investHead }}</p>
  48. </div>
  49. <div class="public-flex-center-column" v-if="detailInfo.projectDate">
  50. <div>立项通过日期</div>
  51. <p>{{ detailInfo.projectDate }}</p>
  52. </div>
  53. <div class="public-flex-center-column" v-if="detailInfo.decisionDate">
  54. <div>投决通过日期</div>
  55. <p>{{ detailInfo.decisionDate }}</p>
  56. </div>
  57. <div class="public-flex-center-column">
  58. <div>投前估值(万元)</div>
  59. <p>{{ detailInfo.investValuation }}</p>
  60. </div>
  61. <div class="public-flex-center-column">
  62. <div>预计投资金额(万元)</div>
  63. <p>{{ detailInfo.investMoney }}</p>
  64. </div>
  65. </div>
  66. </section>
  67. <section class="section3">
  68. <el-tabs v-model="activeName" @tab-click="handleClick">
  69. <el-tab-pane label="立项信息" name="0"></el-tab-pane>
  70. <el-tab-pane label="项目基本信息" name="1"></el-tab-pane>
  71. </el-tabs>
  72. <section>
  73. <div v-if="activeName === '0'" class="public-padded-20 detail-meeting">
  74. <el-tabs type="border-card" v-model="activeTab">
  75. <el-tab-pane label="项目立项申请表" name="apply">
  76. <el-form
  77. v-if="formLXApply.id"
  78. class="special-el-form public-padded-t-20"
  79. ref="formLXApply"
  80. :model="formLXApply"
  81. :rules="rulesLXApply"
  82. label-width="120px"
  83. >
  84. <el-form-item
  85. label="项目概况"
  86. prop="projectOverview"
  87. class="special-el-form-item"
  88. >
  89. <el-input
  90. rows="4"
  91. type="textarea"
  92. maxlength="200"
  93. v-model="formLXApply.projectOverview"
  94. disabled
  95. />
  96. </el-form-item>
  97. <el-form-item
  98. label="项目亮点"
  99. prop="projectSparkle"
  100. class="special-el-form-item"
  101. >
  102. <el-input
  103. rows="4"
  104. type="textarea"
  105. maxlength="200"
  106. v-model="formLXApply.projectSparkle"
  107. disabled
  108. />
  109. </el-form-item>
  110. <el-form-item label="立项申请报告" prop="listFile" class="special-el-form-item">
  111. <fileItem ref="fileItemLXApply" :id="formLXApply.id" :is-detail="true"></fileItem>
  112. </el-form-item>
  113. <el-form-item label="项目行研报告" class="special-el-form-item" v-if="formLXApply.taskDefKey=='president'">
  114. <fileItem ref="industryFileItem" :id="formLXApply.id" :is-detail="true"></fileItem>
  115. </el-form-item>
  116. <el-form-item label="项目技术报告" class="special-el-form-item" v-if="formLXApply.taskDefKey=='president'">
  117. <fileItem ref="technicalFileItem" :id="formLXApply.id" :is-detail="true"></fileItem>
  118. </el-form-item>
  119. <el-form-item label="其他附件" prop="otherListFile" class="special-el-form-item">
  120. <fileItem ref="otherFileItem" :id="formLXApply.id" :is-detail="true"></fileItem>
  121. </el-form-item>
  122. <el-form-item label="项目行研报告" prop="industryListFile" class="special-el-form-item" v-if="formLXApply.taskDefKey=='industryResearch'">
  123. <fileItem ref="industryFileItem" :id="formLXApply.id" @getFileList="getIndustryFileList"></fileItem>
  124. </el-form-item>
  125. <el-form-item label="项目技术报告" prop="technicalListFile" class="special-el-form-item" v-if="formLXApply.taskDefKey=='technicalResearch'">
  126. <fileItem ref="technicalFileItem" :id="formLXApply.id" @getFileList="getTechnicalFileList"></fileItem>
  127. </el-form-item>
  128. </el-form>
  129. <div
  130. v-else
  131. class="public-flex-center public-padded-20"
  132. style="color: #909399"
  133. >
  134. 暂无数据
  135. </div>
  136. </el-tab-pane>
  137. <!-- <el-tab-pane :label="formType === 1 ? '项目立项评估评审表' : '项目立项评估评审汇总表'" v-if="formLXApply.taskDefKey!='deptLeader'&&formLXApply.taskDefKey!='meeting'" name="review">
  138. <el-form
  139. class="table-form ss_scoreTable"
  140. ref="scoreForm"
  141. :model="scoreForm"
  142. :rules="scoreRules"
  143. label-width="0px"
  144. >
  145. <table v-if="formType === 1" border="1" cellpadding="0" cellspacing="0">
  146. <thead>
  147. <tr>
  148. <th colspan="10" class="bg-blue">项目立项评估评审表</th>
  149. </tr>
  150. <tr class="specificTr">
  151. <th>项目名称</th>
  152. <th>
  153. <textarea
  154. class="table-textarea"
  155. v-model="scoreForm.projectName"
  156. name=""
  157. disabled
  158. ></textarea>
  159. </th>
  160. <th>项目所属公司</th>
  161. <th colspan="3">
  162. <textarea
  163. class="table-textarea"
  164. v-model="form1.tProjectPool.company"
  165. name=""
  166. disabled
  167. ></textarea>
  168. </th>
  169. <th>项目负责人</th>
  170. <th>
  171. <textarea
  172. class="table-textarea"
  173. v-model="scoreForm.investCommissioner"
  174. name=""
  175. disabled
  176. ></textarea>
  177. </th>
  178. <th>打分人</th>
  179. <th>
  180. <textarea
  181. v-model="user.nickName"
  182. class="table-textarea"
  183. name=""
  184. disabled
  185. ></textarea>
  186. </th>
  187. </tr>
  188. <tr class="bg-blue">
  189. <th>序号</th>
  190. <th>评审类别</th>
  191. <th>评审事项</th>
  192. <th colspan="3">评审指标</th>
  193. <th>标准分值(满分50)</th>
  194. <th colspan="2">市场部/投资部打分</th>
  195. <th>备注【如不适用,需说明情况】</th>
  196. </tr>
  197. </thead>
  198. <tbody class="text-center">
  199. <tr>
  200. <td rowspan="2">1</td>
  201. <td rowspan="2">模式先进</td>
  202. <td>产业优势</td>
  203. <td colspan="3" class="text-left">
  204. 满足以下条件之一:市场热点、新经济、强势传统产业
  205. </td>
  206. <td>
  207. 阶段性:0-1<br />
  208. 持久:2-3<br />
  209. 持久重大:4-5
  210. </td>
  211. <td colspan="2">
  212. <el-form-item prop="industryAdvantage">
  213. <el-input
  214. :disabled="readonly"
  215. v-model="scoreForm.industryAdvantage"
  216. name="industryAdvantage"
  217. type="text"
  218. class="table-input"
  219. prop="industryAdvantage"
  220. :min="0"
  221. oninput="if(value){value=value.replace(/[^\d.]/g,'').replace(/^(\-)*(\d+)\.(\d).*$/,'$1$2.$3');if(value>5){value=5}}"
  222. />
  223. </el-form-item>
  224. </td>
  225. <td>
  226. <textarea
  227. :disabled="readonly"
  228. v-model="scoreForm.industryAdvantageNote"
  229. name="industryAdvantageNote"
  230. class="table-textarea"
  231. ></textarea>
  232. </td>
  233. </tr>
  234. <tr>
  235. <td>商业模式</td>
  236. <td colspan="3" class="text-left">
  237. 满足以下条件之一:技术/行业/渠道优势明显、模式创新度高、降本增效显著
  238. </td>
  239. <td>
  240. 先进:0-3<br />
  241. 非常先进:4-5<br />
  242. 超级先进:6-7<br />
  243. 颠覆性的:8-9
  244. </td>
  245. <td colspan="2">
  246. <el-form-item prop="businessModel">
  247. <el-input
  248. :disabled="readonly"
  249. v-model="scoreForm.businessModel"
  250. name="businessModel"
  251. type="text"
  252. class="table-input"
  253. :min="0"
  254. oninput="if(value){value=value.replace(/[^\d.]/g,'').replace(/^(\-)*(\d+)\.(\d).*$/,'$1$2.$3');if(value>9){value=9}}"
  255. />
  256. </el-form-item>
  257. </td>
  258. <td>
  259. <textarea
  260. :disabled="readonly"
  261. v-model="scoreForm.businessModelNote"
  262. name="businessModelNote"
  263. class="table-textarea"
  264. ></textarea>
  265. </td>
  266. </tr>
  267. <tr>
  268. <td rowspan="4">2</td>
  269. <td rowspan="4">团队优秀</td>
  270. <td rowspan="4">核心团队优秀</td>
  271. <td colspan="3">
  272. 创业团队专业,产业背景出身,至少十年以上行业经验
  273. </td>
  274. <td>
  275. 10年以上产业经验:0-2<br />
  276. 15年以上产业经验:3-4
  277. </td>
  278. <td colspan="2">
  279. <el-form-item prop="teamExperience">
  280. <el-input
  281. :disabled="readonly"
  282. v-model="scoreForm.teamExperience"
  283. name="teamExperience"
  284. type="text"
  285. class="table-input"
  286. :min="0"
  287. oninput="if(value){value=value.replace(/[^\d.]/g,'').replace(/^(\-)*(\d+)\.(\d).*$/,'$1$2.$3');if(value>4){value=4}}"
  288. />
  289. </el-form-item>
  290. </td>
  291. <td>
  292. <textarea
  293. :disabled="readonly"
  294. class="table-textarea"
  295. v-model="scoreForm.teamExperienceNote"
  296. name="teamExperienceNote"
  297. ></textarea>
  298. </td>
  299. </tr>
  300. <tr>
  301. <td colspan="3">
  302. 创始团队背景为行业内专家/教授/名校哈佛大学博士/行业内龙头企业技术团队等
  303. </td>
  304. <td>
  305. 硕士博士团队:0-2<br />
  306. 行业内知名专家、世界名校博士、行业内龙头企业技术团队:3-4
  307. </td>
  308. <td colspan="2">
  309. <el-form-item prop="teamBackground">
  310. <el-input
  311. :disabled="readonly"
  312. type="text"
  313. v-model="scoreForm.teamBackground"
  314. name="teamBackground"
  315. class="table-input"
  316. :min="0"
  317. oninput="if(value){value=value.replace(/[^\d.]/g,'').replace(/^(\-)*(\d+)\.(\d).*$/,'$1$2.$3');if(value>4){value=4}}"
  318. />
  319. </el-form-item>
  320. </td>
  321. <td>
  322. <textarea
  323. :disabled="readonly"
  324. class="table-textarea"
  325. v-model="scoreForm.teamBackgroundNote"
  326. name="teamBackgroundNote"
  327. ></textarea>
  328. </td>
  329. </tr>
  330. <tr>
  331. <td colspan="3">
  332. 拥有3位以上德才兼备、同心同德的核心团队成员,能够支撑企业快速扩张
  333. </td>
  334. <td>
  335. 强:0-2 <br />
  336. 很强:3-4
  337. </td>
  338. <td colspan="2">
  339. <el-form-item prop="teamHeart">
  340. <el-input
  341. :disabled="readonly"
  342. type="text"
  343. v-model="scoreForm.teamHeart"
  344. name="teamHeart"
  345. class="table-input"
  346. :min="0"
  347. oninput="if(value){value=value.replace(/[^\d.]/g,'').replace(/^(\-)*(\d+)\.(\d).*$/,'$1$2.$3');if(value>4){value=4}}"
  348. />
  349. </el-form-item>
  350. </td>
  351. <td>
  352. <textarea
  353. :disabled="readonly"
  354. class="table-textarea"
  355. v-model="scoreForm.teamHeartNote"
  356. name="teamHeartNote"
  357. ></textarea>
  358. </td>
  359. </tr>
  360. <tr>
  361. <td colspan="3">
  362. 团队领袖诚信、学习能力意愿强,具有很强的职业精神、职业道德、职业技能
  363. </td>
  364. <td>
  365. 合格:0-2<br />
  366. 优秀:3-5 <br />
  367. 卓越:6-8
  368. </td>
  369. <td colspan="2">
  370. <el-form-item prop="teamFaith">
  371. <el-input
  372. :disabled="readonly"
  373. type="text"
  374. v-model="scoreForm.teamFaith"
  375. name="teamFaith"
  376. class="table-input"
  377. :min="0"
  378. oninput="if(value){value=value.replace(/[^\d.]/g,'').replace(/^(\-)*(\d+)\.(\d).*$/,'$1$2.$3');if(value>8){value=8}}"
  379. />
  380. </el-form-item>
  381. </td>
  382. <td>
  383. <textarea
  384. :disabled="readonly"
  385. class="table-textarea"
  386. v-model="scoreForm.teamFaithNote"
  387. name="teamFaithNote"
  388. ></textarea>
  389. </td>
  390. </tr>
  391. <tr>
  392. <td rowspan="5">3</td>
  393. <td rowspan="5">企业价值</td>
  394. <td rowspan="2">初步产品原型</td>
  395. <td colspan="3">
  396. 具备一定的技术基础和原型,能够证明产品的可行性和创新性,能够为用户真正带来价值。
  397. </td>
  398. <td>2</td>
  399. <td colspan="2">
  400. <el-form-item prop="productBase">
  401. <el-input
  402. :disabled="readonly"
  403. type="text"
  404. v-model="scoreForm.productBase"
  405. name="productBase"
  406. class="table-input"
  407. :min="0"
  408. oninput="if(value){value=value.replace(/[^\d.]/g,'').replace(/^(\-)*(\d+)\.(\d).*$/,'$1$2.$3');if(value>2){value=2}}"
  409. />
  410. </el-form-item>
  411. </td>
  412. <td>
  413. <textarea
  414. :disabled="readonly"
  415. class="table-textarea"
  416. v-model="scoreForm.productBaseNote"
  417. name="productBaseNote"
  418. ></textarea>
  419. </td>
  420. </tr>
  421. <tr>
  422. <td colspan="3">具有明确的盈利模式</td>
  423. <td>2</td>
  424. <td colspan="2">
  425. <el-form-item prop="productProfit">
  426. <el-input
  427. :disabled="readonly"
  428. type="text"
  429. v-model="scoreForm.productProfit"
  430. name="productProfit"
  431. class="table-input"
  432. :min="0"
  433. oninput="if(value){value=value.replace(/[^\d.]/g,'').replace(/^(\-)*(\d+)\.(\d).*$/,'$1$2.$3');if(value>2){value=2}}"
  434. />
  435. </el-form-item>
  436. </td>
  437. <td>
  438. <textarea
  439. :disabled="readonly"
  440. class="table-textarea"
  441. v-model="scoreForm.productProfitNote"
  442. name="productProfitNote"
  443. ></textarea>
  444. </td>
  445. </tr>
  446. <tr>
  447. <td rowspan="2">机构认可</td>
  448. <td colspan="3">
  449. 清科、投中年度排行前一百位的投资机构或上市公司、中国500强知名企业或知名投资人投资。
  450. </td>
  451. <td>1</td>
  452. <td colspan="2">
  453. <el-form-item prop="organInvest">
  454. <el-input
  455. :disabled="readonly"
  456. type="text"
  457. v-model="scoreForm.organInvest"
  458. name="organInvest"
  459. class="table-input"
  460. :min="0"
  461. oninput="if(value){value=value.replace(/[^\d.]/g,'').replace(/^(\-)*(\d+)\.(\d).*$/,'$1$2.$3');if(value>1){value=1}}"
  462. />
  463. </el-form-item>
  464. </td>
  465. <td>
  466. <textarea
  467. :disabled="readonly"
  468. class="table-textarea"
  469. v-model="scoreForm.organInvestNote"
  470. name="organInvestNote"
  471. ></textarea>
  472. </td>
  473. </tr>
  474. <tr>
  475. <td colspan="3">
  476. 公司近期12个月内估值XX万元以上,且与项目公司无关联关系的专业化投资机构(人)的投资超过500万元。
  477. </td>
  478. <td>1</td>
  479. <td colspan="2">
  480. <el-form-item prop="organValuation">
  481. <el-input
  482. :disabled="readonly"
  483. v-model="scoreForm.organValuation"
  484. type="text"
  485. class="table-input"
  486. :min="0"
  487. oninput="if(value){value=value.replace(/[^\d.]/g,'').replace(/^(\-)*(\d+)\.(\d).*$/,'$1$2.$3');if(value>1){value=1}}"
  488. />
  489. </el-form-item>
  490. </td>
  491. <td>
  492. <textarea
  493. :disabled="readonly"
  494. v-model="scoreForm.organValuationNote"
  495. class="table-textarea"
  496. name="organValuationNote"
  497. ></textarea>
  498. </td>
  499. </tr>
  500. <tr>
  501. <td>估值</td>
  502. <td colspan="3">估值水平、预期收益合理</td>
  503. <td>1</td>
  504. <td colspan="2">
  505. <el-form-item prop="valuation">
  506. <el-input
  507. :disabled="readonly"
  508. type="text"
  509. v-model="scoreForm.valuation"
  510. name="valuation"
  511. class="table-input"
  512. :min="0"
  513. oninput="if(value){value=value.replace(/[^\d.]/g,'').replace(/^(\-)*(\d+)\.(\d).*$/,'$1$2.$3');if(value>1){value=1}}"
  514. />
  515. </el-form-item>
  516. </td>
  517. <td>
  518. <textarea
  519. :disabled="readonly"
  520. class="table-textarea"
  521. v-model="scoreForm.valuationNote"
  522. name="valuationNote"
  523. ></textarea>
  524. </td>
  525. </tr>
  526. <tr>
  527. <td rowspan="2">4</td>
  528. <td rowspan="2">市场广阔</td>
  529. <td>市场空间大</td>
  530. <td colspan="3">
  531. 行业具有高成长性,细分市场年销售规模已经达到或五年内达到50亿元。
  532. </td>
  533. <td>
  534. 50-100亿:0.5<br />
  535. 100-200亿:1<br />
  536. 200亿以上:2
  537. </td>
  538. <td colspan="2">
  539. <el-form-item prop="marketSpace">
  540. <el-input
  541. :disabled="readonly"
  542. type="text"
  543. v-model="scoreForm.marketSpace"
  544. name="marketSpace"
  545. class="table-input"
  546. :min="0"
  547. oninput="if(value){value=value.replace(/[^\d.]/g,'').replace(/^(\-)*(\d+)\.(\d).*$/,'$1$2.$3');if(value>2){value=2}}"
  548. />
  549. </el-form-item>
  550. </td>
  551. <td>
  552. <textarea
  553. :disabled="readonly"
  554. class="table-textarea"
  555. v-model="scoreForm.marketSpaceNote"
  556. name="marketSpaceNote"
  557. ></textarea>
  558. </td>
  559. </tr>
  560. <tr>
  561. <td>成长空间大</td>
  562. <td colspan="3">预计年增长率在30%以上</td>
  563. <td>
  564. 收入年增长率30%以上:1<br />
  565. 收入年增长率50%以上:2<br />
  566. 收入年增长率70%以上:3
  567. </td>
  568. <td colspan="2">
  569. <el-form-item prop="developSpace">
  570. <el-input
  571. :disabled="readonly"
  572. type="text"
  573. v-model="scoreForm.developSpace"
  574. name="developSpace"
  575. class="table-input"
  576. :min="0"
  577. oninput="if(value){value=value.replace(/[^\d.]/g,'').replace(/^(\-)*(\d+)\.(\d).*$/,'$1$2.$3');if(value>3){value=3}}"
  578. />
  579. </el-form-item>
  580. </td>
  581. <td>
  582. <textarea
  583. :disabled="readonly"
  584. class="table-textarea"
  585. v-model="scoreForm.developSpaceNote"
  586. name="developSpaceNote"
  587. ></textarea>
  588. </td>
  589. </tr>
  590. <tr>
  591. <td>5</td>
  592. <td>股权收益</td>
  593. <td>退出方式</td>
  594. <td colspan="3">通过并购、股权转让、股权回购等方式退出</td>
  595. <td>
  596. 退出收益5%-15%:1<br />
  597. 退出收益15%-50%:2<br />
  598. 退出收益50%-100%:3<br />
  599. 退出收益1倍以上:4
  600. </td>
  601. <td colspan="2">
  602. <el-form-item prop="quitWay">
  603. <el-input
  604. :disabled="readonly"
  605. type="text"
  606. v-model="scoreForm.quitWay"
  607. name="quitWay"
  608. class="table-input"
  609. :min="0"
  610. oninput="if(value){value=value.replace(/[^\d.]/g,'').replace(/^(\-)*(\d+)\.(\d).*$/,'$1$2.$3');if(value>4){value=4}}"
  611. />
  612. </el-form-item>
  613. </td>
  614. <td>
  615. <textarea
  616. :disabled="readonly"
  617. class="table-textarea"
  618. v-model="scoreForm.quitWayNote"
  619. name="quitWayNote"
  620. ></textarea>
  621. </td>
  622. </tr>
  623. <tr>
  624. <td colspan="3" class="big-font">同意或不同意说明</td>
  625. <td colspan="7" class="big-font">
  626. <el-form-item prop="illustrate">
  627. <el-input
  628. :disabled="readonly"
  629. type="textarea"
  630. style="width: 95%; margin-top: 20px"
  631. class="table-textarea"
  632. v-model="scoreForm.illustrate"
  633. name="illustrate"
  634. />
  635. </el-form-item>
  636. </td>
  637. </tr>
  638. <tr>
  639. <td colspan="10" class="text-left big-font">
  640. 评分说明:<br />
  641. 1.
  642. 固定指标分值部分,评分人需根据项目实际情况,评分范围仅有0分和满分,满分为各评审指标对应的标准分值。<br />
  643. 2.
  644. 浮动指标分值部分,最高分值为各评审指标对应的最高区间分值,最低分值为0分,分值保留小数点后一位数字。
  645. </td>
  646. </tr>
  647. </tbody>
  648. </table>
  649. <table
  650. v-if="formType === 2"
  651. border="1"
  652. cellpadding="0"
  653. cellspacing="0"
  654. class="allScoring"
  655. >
  656. <thead>
  657. <tr>
  658. <th colspan="10" class="bg-blue">项目立项评估评审汇总表</th>
  659. </tr>
  660. <tr class="specificTr">
  661. <th>项目名称</th>
  662. <th>
  663. <textarea
  664. class="table-textarea"
  665. v-model="scoreForm.projectName"
  666. name=""
  667. disabled
  668. ></textarea>
  669. </th>
  670. <th>项目所属公司</th>
  671. <th colspan="3">
  672. <textarea
  673. class="table-textarea"
  674. v-model="form1.tProjectPool.company"
  675. name=""
  676. disabled
  677. ></textarea>
  678. </th>
  679. <th>项目负责人</th>
  680. <th>
  681. <textarea
  682. class="table-textarea"
  683. name=""
  684. v-model="collectForm.investCommissioner"
  685. disabled
  686. ></textarea>
  687. </th>
  688. <th>总人数</th>
  689. <th>
  690. <textarea
  691. v-model="collectForm.totalPerson"
  692. class="table-textarea"
  693. name=""
  694. disabled
  695. ></textarea>
  696. </th>
  697. </tr>
  698. <tr class="bg-blue">
  699. <th>序号</th>
  700. <th>评审类别</th>
  701. <th>评审事项</th>
  702. <th colspan="3">评审指标</th>
  703. <th>标准分值(满分50)</th>
  704. <th colspan="2">汇总分数</th>
  705. <th>平均分数</th>
  706. </tr>
  707. </thead>
  708. <tbody class="text-center">
  709. <tr>
  710. <td rowspan="2">1</td>
  711. <td rowspan="2">模式先进</td>
  712. <td>产业优势</td>
  713. <td colspan="3" class="text-left">
  714. 满足以下条件之一:市场热点、新经济、强势传统产业
  715. </td>
  716. <td>
  717. 阶段性:0-1<br />
  718. 持久:2-3<br />
  719. 持久重大:4-5
  720. </td>
  721. <td colspan="2">
  722. <input
  723. autocomplete="off"
  724. v-model="collectForm.industryAdvantageSum"
  725. name="industryAdvantageSum"
  726. type="text"
  727. class="table-input"
  728. disabled
  729. />
  730. </td>
  731. <td>
  732. <input
  733. autocomplete="off"
  734. type="text"
  735. v-model="collectForm.industryAdvantageAvg"
  736. name="industryAdvantageAvg"
  737. class="table-input"
  738. disabled
  739. />
  740. </td>
  741. </tr>
  742. <tr>
  743. <td>商业模式</td>
  744. <td colspan="3" class="text-left">
  745. 满足以下条件之一:技术/行业/渠道优势明显、模式创新度高、降本增效显著
  746. </td>
  747. <td>
  748. 先进:0-3<br />
  749. 非常先进:4-5<br />
  750. 超级先进:6-7<br />
  751. 颠覆性的:8-9
  752. </td>
  753. <td colspan="2">
  754. <input
  755. autocomplete="off"
  756. type="text"
  757. v-model="collectForm.businessModelSum"
  758. name="businessModelSum"
  759. class="table-input"
  760. disabled
  761. />
  762. </td>
  763. <td>
  764. <input
  765. autocomplete="off"
  766. type="text"
  767. v-model="collectForm.businessModelAvg"
  768. name="businessModelAvg"
  769. class="table-input"
  770. disabled
  771. />
  772. </td>
  773. </tr>
  774. <tr>
  775. <td rowspan="4">2</td>
  776. <td rowspan="4">团队优秀</td>
  777. <td rowspan="4">核心团队优秀</td>
  778. <td colspan="3">
  779. 创业团队专业,产业背景出身,至少十年以上行业经验
  780. </td>
  781. <td>
  782. 10年以上产业经验:0-2<br />
  783. 15年以上产业经验:3-4
  784. </td>
  785. <td colspan="2">
  786. <input
  787. autocomplete="off"
  788. type="text"
  789. v-model="collectForm.teamExperienceSum"
  790. name="teamExperienceSum"
  791. class="table-input"
  792. disabled
  793. />
  794. </td>
  795. <td>
  796. <input
  797. autocomplete="off"
  798. type="text"
  799. v-model="collectForm.teamExperienceAvg"
  800. name="teamExperienceAvg"
  801. class="table-input"
  802. disabled
  803. />
  804. </td>
  805. </tr>
  806. <tr>
  807. <td colspan="3">
  808. 创始团队背景为行业内专家/教授/名校哈佛大学博士/行业内龙头企业技术团队等
  809. </td>
  810. <td>
  811. 硕士博士团队:0-2<br />
  812. 行业内知名专家、世界名校博士、行业内龙头企业技术团队:3-4
  813. </td>
  814. <td colspan="2">
  815. <input
  816. autocomplete="off"
  817. type="text"
  818. v-model="collectForm.teamBackgroundSum"
  819. name="teamBackgroundSum"
  820. class="table-input"
  821. disabled
  822. />
  823. </td>
  824. <td>
  825. <input
  826. autocomplete="off"
  827. type="text"
  828. v-model="collectForm.teamBackgroundAvg"
  829. name="teamBackgroundAvg"
  830. class="table-input"
  831. disabled
  832. />
  833. </td>
  834. </tr>
  835. <tr>
  836. <td colspan="3">
  837. 拥有3位以上德才兼备、同心同德的核心团队成员,能够支撑企业快速扩张
  838. </td>
  839. <td>
  840. 强:0-2 <br />
  841. 很强:3-4
  842. </td>
  843. <td colspan="2">
  844. <input
  845. autocomplete="off"
  846. type="text"
  847. v-model="collectForm.teamHeartSum"
  848. name="teamHeartSum"
  849. class="table-input"
  850. disabled
  851. />
  852. </td>
  853. <td>
  854. <input
  855. autocomplete="off"
  856. type="text"
  857. v-model="collectForm.teamHeartAvg"
  858. name="teamHeartAvg"
  859. class="table-input"
  860. disabled
  861. />
  862. </td>
  863. </tr>
  864. <tr>
  865. <td colspan="3">
  866. 团队领袖诚信、学习能力意愿强,具有很强的职业精神、职业道德、职业技能
  867. </td>
  868. <td>
  869. 合格:0-2<br />
  870. 优秀:3-5 <br />
  871. 卓越:6-8
  872. </td>
  873. <td colspan="2">
  874. <input
  875. autocomplete="off"
  876. type="text"
  877. v-model="collectForm.teamFaithSum"
  878. name="teamFaithSum"
  879. class="table-input"
  880. disabled
  881. />
  882. </td>
  883. <td>
  884. <input
  885. autocomplete="off"
  886. type="text"
  887. v-model="collectForm.teamFaithAvg"
  888. name="teamFaithAvg"
  889. class="table-input"
  890. disabled
  891. />
  892. </td>
  893. </tr>
  894. <tr>
  895. <td rowspan="5">3</td>
  896. <td rowspan="5">企业价值</td>
  897. <td rowspan="2">初步产品原型</td>
  898. <td colspan="3">
  899. 具备一定的技术基础和原型,能够证明产品的可行性和创新性,能够为用户真正带来价值。
  900. </td>
  901. <td>2</td>
  902. <td colspan="2">
  903. <input
  904. autocomplete="off"
  905. type="text"
  906. v-model="collectForm.productBaseSum"
  907. name="productBaseSum"
  908. class="table-input"
  909. disabled
  910. />
  911. </td>
  912. <td>
  913. <input
  914. autocomplete="off"
  915. type="text"
  916. v-model="collectForm.productBaseAvg"
  917. name="productBaseAvg"
  918. class="table-input"
  919. disabled
  920. />
  921. </td>
  922. </tr>
  923. <tr>
  924. <td colspan="3">具有明确的盈利模式</td>
  925. <td>2</td>
  926. <td colspan="2">
  927. <input
  928. autocomplete="off"
  929. type="text"
  930. v-model="collectForm.productProfitSum"
  931. name="productProfitSum"
  932. class="table-input"
  933. disabled
  934. />
  935. </td>
  936. <td>
  937. <input
  938. autocomplete="off"
  939. type="text"
  940. v-model="collectForm.productProfitAvg"
  941. name="productProfitAvg"
  942. class="table-input"
  943. disabled
  944. />
  945. </td>
  946. </tr>
  947. <tr>
  948. <td rowspan="2">机构认可</td>
  949. <td colspan="3">
  950. 清科、投中年度排行前一百位的投资机构或上市公司、中国500强知名企业或知名投资人投资。
  951. </td>
  952. <td>1</td>
  953. <td colspan="2">
  954. <input
  955. autocomplete="off"
  956. type="text"
  957. v-model="collectForm.organInvestSum"
  958. name="organInvestSum"
  959. class="table-input"
  960. disabled
  961. />
  962. </td>
  963. <td>
  964. <input
  965. autocomplete="off"
  966. type="text"
  967. v-model="collectForm.organInvestAvg"
  968. name="organInvestAvg"
  969. class="table-input"
  970. disabled
  971. />
  972. </td>
  973. </tr>
  974. <tr>
  975. <td colspan="3">
  976. 公司近期12个月内估值XX万元以上,且与项目公司无关联关系的专业化投资机构(人)的投资超过500万元。
  977. </td>
  978. <td>1</td>
  979. <td colspan="2">
  980. <input
  981. autocomplete="off"
  982. v-model="collectForm.organValuationSum"
  983. name="organValuationSum"
  984. type="text"
  985. class="table-input"
  986. disabled
  987. />
  988. </td>
  989. <td>
  990. <input
  991. autocomplete="off"
  992. v-model="collectForm.organValuationAvg"
  993. name="organValuationAvg"
  994. type="text"
  995. class="table-input"
  996. disabled
  997. />
  998. </td>
  999. </tr>
  1000. <tr>
  1001. <td>估值</td>
  1002. <td colspan="3">估值水平、预期收益合理</td>
  1003. <td>1</td>
  1004. <td colspan="2">
  1005. <input
  1006. type="text"
  1007. v-model="collectForm.valuationSum"
  1008. name="valuationSum"
  1009. class="table-input"
  1010. disabled
  1011. />
  1012. </td>
  1013. <td>
  1014. <input
  1015. autocomplete="off"
  1016. type="text"
  1017. v-model="collectForm.valuationAvg"
  1018. name="valuationAvg"
  1019. class="table-input"
  1020. disabled
  1021. />
  1022. </td>
  1023. </tr>
  1024. <tr>
  1025. <td rowspan="2">4</td>
  1026. <td rowspan="2">市场广阔</td>
  1027. <td>市场空间大</td>
  1028. <td colspan="3">
  1029. 行业具有高成长性,细分市场年销售规模已经达到或五年内达到50亿元。
  1030. </td>
  1031. <td>
  1032. 50-100亿:0.5<br />
  1033. 100-200亿:1<br />
  1034. 200亿以上:2
  1035. </td>
  1036. <td colspan="2">
  1037. <input
  1038. autocomplete="off"
  1039. type="text"
  1040. v-model="collectForm.marketSpaceSum"
  1041. name="marketSpaceSum"
  1042. class="table-input"
  1043. disabled
  1044. />
  1045. </td>
  1046. <td>
  1047. <input
  1048. autocomplete="off"
  1049. type="text"
  1050. v-model="collectForm.marketSpaceAvg"
  1051. name="marketSpaceAvg"
  1052. class="table-input"
  1053. disabled
  1054. />
  1055. </td>
  1056. </tr>
  1057. <tr>
  1058. <td>成长空间大</td>
  1059. <td colspan="3">预计年增长率在30%以上</td>
  1060. <td>
  1061. 收入年增长率30%以上:1<br />
  1062. 收入年增长率50%以上:2<br />
  1063. 收入年增长率70%以上:3
  1064. </td>
  1065. <td colspan="2">
  1066. <input
  1067. autocomplete="off"
  1068. type="text"
  1069. v-model="collectForm.developSpaceSum"
  1070. name="developSpaceSum"
  1071. class="table-input"
  1072. disabled
  1073. />
  1074. </td>
  1075. <td>
  1076. <input
  1077. autocomplete="off"
  1078. type="text"
  1079. v-model="collectForm.developSpaceAvg"
  1080. name="developSpaceAvg"
  1081. class="table-input"
  1082. disabled
  1083. />
  1084. </td>
  1085. </tr>
  1086. <tr>
  1087. <td>5</td>
  1088. <td>股权收益</td>
  1089. <td>退出方式</td>
  1090. <td colspan="3">通过并购、股权转让、股权回购等方式退出</td>
  1091. <td>
  1092. 退出收益5%-15%:1<br />
  1093. 退出收益15%-50%:2<br />
  1094. 退出收益50%-100%:3<br />
  1095. 退出收益1倍以上:4
  1096. </td>
  1097. <td colspan="2">
  1098. <input
  1099. autocomplete="off"
  1100. type="text"
  1101. v-model="collectForm.quitWaySum"
  1102. name="quitWaySum"
  1103. class="table-input"
  1104. disabled
  1105. />
  1106. </td>
  1107. <td>
  1108. <input
  1109. autocomplete="off"
  1110. type="text"
  1111. v-model="collectForm.quitWayAvg"
  1112. name="quitWayAvg"
  1113. class="table-input"
  1114. disabled
  1115. />
  1116. </td>
  1117. </tr>
  1118. <tr>
  1119. <td colspan="10" class="text-left big-font">
  1120. 评分说明:<br />
  1121. 1.
  1122. 固定指标分值部分,评分人需根据项目实际情况,评分范围仅有0分和满分,满分为各评审指标对应的标准分值。<br />
  1123. 2.
  1124. 浮动指标分值部分,最高分值为各评审指标对应的最高区间分值,最低分值为0分,分值保留小数点后一位数字。
  1125. </td>
  1126. </tr>
  1127. </tbody>
  1128. </table>
  1129. </el-form>
  1130. </el-tab-pane>-->
  1131. </el-tabs>
  1132. <!-- 会议信息开始 -->
  1133. <!-- <section v-if="formLXApply.taskDefKey==='meeting'">-->
  1134. <!-- <el-form-->
  1135. <!-- v-if="formLXApply.id"-->
  1136. <!-- class="special-el-form public-padded-t-20"-->
  1137. <!-- ref="formLXApply"-->
  1138. <!-- :model="formLXApply"-->
  1139. <!-- label-width="120px"-->
  1140. <!-- >-->
  1141. <!-- <el-form-item-->
  1142. <!-- label="立项审批人"-->
  1143. <!-- prop="participants"-->
  1144. <!-- class="special-el-form-item public-input-height-2"-->
  1145. <!-- >-->
  1146. <!-- <div-->
  1147. <!-- class="el-input__inner inputSimulation yichu1"-->
  1148. <!-- @click="handleSelectPeople(1)"-->
  1149. <!-- :title="formLXApply.participants"-->
  1150. <!-- >-->
  1151. <!-- {{ formLXApply.participants ? formLXApply.participants : "请选择" }}-->
  1152. <!-- </div>-->
  1153. <!-- </el-form-item>-->
  1154. <!-- <el-form-item-->
  1155. <!-- label="附件"-->
  1156. <!-- prop="listFile"-->
  1157. <!-- class="special-el-form-item"-->
  1158. <!-- >-->
  1159. <!-- <fileItem-->
  1160. <!-- ref="fileItemLXApply"-->
  1161. <!-- :id="formLXApply.id"-->
  1162. <!-- @getFileList="getFileListLXApply"-->
  1163. <!-- ></fileItem>-->
  1164. <!-- </el-form-item>-->
  1165. <!-- &lt;!&ndash; 关键代码:el-form-item 包裹单选组 &ndash;&gt;-->
  1166. <!-- <el-form-item label="是否需要立项会议">-->
  1167. <!-- <label>-->
  1168. <!-- <input type="radio" name="needMeeting" value="0" v-model="formLXApply.needMeeting">-->
  1169. <!-- 否-->
  1170. <!-- </label>-->
  1171. <!-- <label>-->
  1172. <!-- <input type="radio" name="needMeeting" value="1" v-model="formLXApply.needMeeting">-->
  1173. <!-- 是-->
  1174. <!-- </label>-->
  1175. <!-- </el-form-item>-->
  1176. <!-- </el-form>-->
  1177. <!-- <h3 v-if="formLXApply.needMeeting === '1'">会议信息</h3>-->
  1178. <!-- <el-form-->
  1179. <!-- class="special-el-form"-->
  1180. <!-- ref="meetingForm"-->
  1181. <!-- :model="meetingForm"-->
  1182. <!-- :rules="meetingRules"-->
  1183. <!-- label-width="120px"-->
  1184. <!-- v-if="formLXApply.needMeeting === '1'"-->
  1185. <!-- >-->
  1186. <!-- <el-form-item-->
  1187. <!-- label="项目名称"-->
  1188. <!-- prop="projectName"-->
  1189. <!-- class="special-el-form-item public-input-height-2"-->
  1190. <!-- :rules="[-->
  1191. <!-- { required: verifyProjectName, trigger: 'blur', message: '请选择' },-->
  1192. <!-- ]"-->
  1193. <!-- >-->
  1194. <!-- <div-->
  1195. <!-- class="el-input__inner inputSimulation yichu1"-->
  1196. <!-- @click="handleProjectItem"-->
  1197. <!-- :class="{ show_disabled: pageType === '1' }"-->
  1198. <!-- :title="meetingForm.projectName"-->
  1199. <!-- >-->
  1200. <!-- {{ meetingForm.projectName ? meetingForm.projectName : "请选择 " }}-->
  1201. <!-- </div>-->
  1202. <!-- <projectItem-->
  1203. <!-- ref="projectItem"-->
  1204. <!-- @getProjectInfo="getProjectInfo"-->
  1205. <!-- ></projectItem>-->
  1206. <!-- </el-form-item>-->
  1207. <!-- <el-form-item-->
  1208. <!-- label="项目阶段"-->
  1209. <!-- prop="projectStage"-->
  1210. <!-- class="special-el-form-item"-->
  1211. <!-- >-->
  1212. <!-- <el-select v-model="meetingForm.projectStage" disabled placeholder="">-->
  1213. <!-- <el-option-->
  1214. <!-- v-for="dict in dict.type.project_stage"-->
  1215. <!-- :key="dict.value"-->
  1216. <!-- :label="dict.label"-->
  1217. <!-- :value="dict.value"-->
  1218. <!-- />-->
  1219. <!-- </el-select>-->
  1220. <!-- </el-form-item>-->
  1221. <!-- <el-form-item label="会议主题" prop="meetingTheme">-->
  1222. <!-- <el-input-->
  1223. <!-- maxlength="100"-->
  1224. <!-- v-model="meetingForm.meetingTheme"-->
  1225. <!-- placeholder="请输入会议主题"-->
  1226. <!-- />-->
  1227. <!-- </el-form-item>-->
  1228. <!-- &lt;!&ndash; <el-form-item label="会议编号" prop="meetingCode">-->
  1229. <!-- <el-input v-model="form.meetingCode" placeholder="请输入会议编号" />-->
  1230. <!-- </el-form-item> &ndash;&gt;-->
  1231. <!-- <el-form-item label="会议类别" prop="meetingType">-->
  1232. <!-- <el-select-->
  1233. <!-- v-model="meetingForm.meetingType"-->
  1234. <!-- placeholder="请选择会议类别"-->
  1235. <!-- :disabled="-->
  1236. <!-- meetingTypeDisabled || (pageType === '1' && meetingType != null)-->
  1237. <!-- "-->
  1238. <!-- >-->
  1239. <!-- <el-option-->
  1240. <!-- v-for="dict in meetingTypeList"-->
  1241. <!-- :key="dict.value"-->
  1242. <!-- :label="dict.label"-->
  1243. <!-- :value="dict.value"-->
  1244. <!-- ></el-option>-->
  1245. <!-- </el-select>-->
  1246. <!-- </el-form-item>-->
  1247. <!-- <el-form-item label="会议开始时间" prop="startTime">-->
  1248. <!-- <el-date-picker-->
  1249. <!-- v-model="meetingForm.startTime"-->
  1250. <!-- type="datetime"-->
  1251. <!-- placeholder="请选择会议开始时间"-->
  1252. <!-- format="yyyy-MM-dd HH:mm"-->
  1253. <!-- value-format="yyyy-MM-dd HH:mm"-->
  1254. <!-- >-->
  1255. <!-- </el-date-picker>-->
  1256. <!-- </el-form-item>-->
  1257. <!-- <el-form-item label="会议结束时间" prop="endTime">-->
  1258. <!-- <el-date-picker-->
  1259. <!-- v-model="meetingForm.endTime"-->
  1260. <!-- format="yyyy-MM-dd HH:mm"-->
  1261. <!-- value-format="yyyy-MM-dd HH:mm"-->
  1262. <!-- type="datetime"-->
  1263. <!-- placeholder="请选择会议结束时间"-->
  1264. <!-- >-->
  1265. <!-- </el-date-picker>-->
  1266. <!-- </el-form-item>-->
  1267. <!-- <el-form-item label="会议地点" prop="place">-->
  1268. <!-- <el-input-->
  1269. <!-- maxlength="100"-->
  1270. <!-- v-model="meetingForm.place"-->
  1271. <!-- placeholder="请输入会议地点"-->
  1272. <!-- />-->
  1273. <!-- </el-form-item>-->
  1274. <!-- <el-form-item-->
  1275. <!-- label="会议发起人"-->
  1276. <!-- prop="promoter"-->
  1277. <!-- class="public-input-height"-->
  1278. <!-- >-->
  1279. <!-- <div class="el-input__inner" @click="openSelectDept(1)">-->
  1280. <!-- {{ meetingForm.promoter ? meetingForm.promoter : "请选择会议发起人" }}-->
  1281. <!-- </div>-->
  1282. <!-- <selecDept-->
  1283. <!-- ref="selecDepts"-->
  1284. <!-- @getDeptUserInfo="getDeptUserInfo"-->
  1285. <!-- :deptId="deptId"-->
  1286. <!-- ></selecDept>-->
  1287. <!-- </el-form-item>-->
  1288. <!-- <el-form-item-->
  1289. <!-- label="会议参与人"-->
  1290. <!-- prop="participants"-->
  1291. <!-- class="special-el-form-item public-input-height-2"-->
  1292. <!-- >-->
  1293. <!-- <div-->
  1294. <!-- class="el-input__inner inputSimulation yichu1"-->
  1295. <!-- @click="handleSelectPeople(2)"-->
  1296. <!-- :title="meetingForm.participants"-->
  1297. <!-- >-->
  1298. <!-- {{ meetingForm.participants ? meetingForm.participants : "请选择会议参与人" }}-->
  1299. <!-- </div>-->
  1300. <!-- </el-form-item>-->
  1301. <!-- <el-form-item label="附件" prop="file" class="special-el-form-item">-->
  1302. <!-- <fileItem-->
  1303. <!-- ref="fileItems"-->
  1304. <!-- :id="meetingForm.id"-->
  1305. <!-- @getFileList="getFileList"-->
  1306. <!-- ></fileItem>-->
  1307. <!-- </el-form-item>-->
  1308. <!-- </el-form>-->
  1309. <!-- </section>-->
  1310. <!--会议信息结束-->
  1311. </div>
  1312. <div v-show="activeName === '1'">
  1313. <poolForm :type="type" :id="id"></poolForm>
  1314. </div>
  1315. </section>
  1316. </section>
  1317. <section>
  1318. <flowBase :procInstId="formLXApply.procInstId" :id="id" v-if="formLXApply.procInstId "></flowBase>
  1319. </section>
  1320. <section>
  1321. <el-form
  1322. ref="flowBaseInfo"
  1323. :model="flowBaseInfo"
  1324. label-width="120px"
  1325. >
  1326. <el-form-item label="审批意见" prop="comment">
  1327. <el-input
  1328. maxlength="200"
  1329. rows="4"
  1330. type="textarea"
  1331. v-model="flowBaseInfo.comment"
  1332. placeholder="请填写审批意见"
  1333. >
  1334. </el-input>
  1335. </el-form-item>
  1336. <el-form-item class="btnList">
  1337. <!-- <div class="btn-group">-->
  1338. <el-button @click="goBack">返 回</el-button>
  1339. <el-button type="success" class="editButton" @click="handleComplete(true)">同意</el-button>
  1340. <el-button v-if="formLXApply.taskDefKey!='technicalResearch'&&formLXApply.taskDefKey!='industryResearch'&&formLXApply.taskDefKey!='president'" type="warning" @click="handleComplete(false)">驳回</el-button>
  1341. <el-button v-if="formLXApply.taskDefKey!='decision'&&formLXApply.taskDefKey=='president'" type="warning" @click="handleComplete(false)">驳回(修改)</el-button>
  1342. <el-button v-if="formLXApply.taskDefKey=='president'" type="danger" @click="handleComplete(false,1)">驳回(终止)</el-button>
  1343. <el-button v-if="formLXApply.taskDefKey=='president'" type="warning" @click="handleComplete(false,0)">观望</el-button>
  1344. <!-- </div>-->
  1345. </el-form-item>
  1346. </el-form>
  1347. </section>
  1348. <!--选择人员-->
  1349. <selecUser
  1350. ref="flowUser"
  1351. :checkType="checkType"
  1352. :selectValues="selectValues"
  1353. :selectNameValues="selectNameValues"
  1354. @handleUserSelect="handleUserSelect"
  1355. ></selecUser>
  1356. </div>
  1357. </template>
  1358. <script>
  1359. import poolForm from "../../invest/components/poolForm";
  1360. import fileItem from "../../invest/components/fileItem";
  1361. import flowBase from "../flowBase.vue";
  1362. import selecDept from "../../invest/components/selecDept";
  1363. import projectItem from "../../invest/components/projectItem";
  1364. import selecUser from "../../invest/components/selecUser";
  1365. import {
  1366. getPool
  1367. } from "@/api/invest/pool";
  1368. import{
  1369. approvalComplete,
  1370. getApprovalInfo,
  1371. getMeetingInfo,
  1372. getSumScore
  1373. } from "@/api/project/approval/pool"
  1374. import { mapGetters } from "vuex";
  1375. export default {
  1376. name: "approvalAudit",
  1377. props: {
  1378. readonly: {
  1379. type: Boolean,
  1380. },
  1381. },
  1382. dicts: ["meeting_type", "project_stage", "project_group"],
  1383. components: {
  1384. selecUser,
  1385. projectItem,
  1386. selecDept,
  1387. poolForm,
  1388. fileItem,
  1389. flowBase,
  1390. },
  1391. data() {
  1392. const industryValidateLogo = (rule, value, callback) => {
  1393. //debugger
  1394. if (this.fileListIndustry.length <= 0) {
  1395. callback(new Error("请上传项目行研报告"));
  1396. } else {
  1397. callback();
  1398. }
  1399. };
  1400. const technicalValidateLogo = (rule, value, callback) => {
  1401. if (this.fileListTechnical.length <= 0) {
  1402. callback(new Error("请上传项目技术报告"));
  1403. } else {
  1404. callback();
  1405. }
  1406. };
  1407. return {
  1408. meetingId: "0",
  1409. type: "2",
  1410. id: "",
  1411. active: 0,
  1412. detailInfo: {
  1413. projectName: "",
  1414. },
  1415. activeName: "0",
  1416. activeTab: 'apply', // 默认激活“项目立项申请表”
  1417. formType:1,
  1418. // 人员选择器
  1419. checkType: "multiple",
  1420. // 数据回显
  1421. selectValues: null,
  1422. selectNameValues: null,
  1423. formLXApply: {
  1424. id: null,
  1425. procInstId:null,
  1426. projectPoolId: null,
  1427. projectName: null,
  1428. projectOverview: null,
  1429. projectSparkle: null,
  1430. listFile: null,
  1431. participants: null,
  1432. participantsId: null,
  1433. taskDefKey:null,
  1434. needMeeting:'0',
  1435. industryListFile: null,
  1436. technicalListFile:null
  1437. },
  1438. fileListIndustry: [],
  1439. fileListTechnical: [],
  1440. rulesLXApply: {
  1441. industryListFile: [{ required: true, validator: industryValidateLogo }],
  1442. technicalListFile: [{ required: true, validator: technicalValidateLogo }],
  1443. },
  1444. // 会议表单参数-开始
  1445. meetingForm: {
  1446. id: null,
  1447. meetingTheme: null,
  1448. meetingCode: null,
  1449. meetingType: null,
  1450. projectPoolId: null,
  1451. projectName: null,
  1452. projectStage: null,
  1453. projectGroup: "",
  1454. startTime: null,
  1455. endTime: null,
  1456. place: null,
  1457. promoter: null,
  1458. promoterId: null,
  1459. participants: null,
  1460. participantsId: null,
  1461. delFlag: null,
  1462. createBy: null,
  1463. createTime: null,
  1464. updateBy: null,
  1465. updateTime: null,
  1466. listFile:null
  1467. },
  1468. //fileList:[],
  1469. // 表单校验
  1470. meetingRules: {
  1471. meetingTheme: [{ required: true, trigger: "blur", message: "请输入" }],
  1472. meetingType: [{ required: true, trigger: "change", message: "请选择" }],
  1473. // projectGroup: [{ required: true, trigger: "change", message: "请选择" }],
  1474. // projectName: [{ required: true, trigger: "blur", message: "请选择" }],
  1475. startTime: [{ required: true, trigger: "change", message: "请选择" }],
  1476. endTime: [{ required: true, trigger: "blur", message: "请选择" }],
  1477. place: [{ required: true, trigger: "blur", message: "请输入" }],
  1478. promoter: [{ required: true, trigger: "blur", message: "请选择" }],
  1479. participants: [{ required: true, trigger: "blur", message: "请选择" }],
  1480. },
  1481. verifyProjectName: false,
  1482. pageType: null,
  1483. showAllType: false,
  1484. meetingTypeDisabled: false, //会议类别
  1485. meetingTypeList: [
  1486. {
  1487. value: "A",
  1488. label: "管理会议",
  1489. },
  1490. {
  1491. value: "LX",
  1492. label: "项目立项会",
  1493. },
  1494. {
  1495. value: "TJ",
  1496. label: "项目投决会",
  1497. },
  1498. {
  1499. value: "X",
  1500. label: "临时会议",
  1501. },
  1502. ],
  1503. deptId: process.env.VUE_APP_DEPTID,
  1504. openLXApply:false,//立项审批人
  1505. openHYApply:false,//会议参与人 这两个字段是判断是那个字段打开人员选择弹窗
  1506. // 会议表单参数-结束
  1507. //打分
  1508. // 打分表单参数
  1509. scoreForm: {
  1510. businessModel: null,
  1511. businessModelNote: null,
  1512. createBy: null,
  1513. createTime: null,
  1514. delFlag: null,
  1515. developSpace: null,
  1516. developSpaceNote: null,
  1517. examine: null,
  1518. id: null,
  1519. illustrate: null, //说明
  1520. industryAdvantage: null,
  1521. industryAdvantageNote: null,
  1522. investCommissioner: null, //项目负责人
  1523. marketSpace: null, //市场空间
  1524. marketSpaceNote: null,
  1525. meetingId: null, //
  1526. organInvest: null,
  1527. organInvestNote: null,
  1528. organValuation: null,
  1529. organValuationNote: null,
  1530. params: {},
  1531. productBase: null,
  1532. productBaseNote: null,
  1533. productProfit: null,
  1534. productProfitNote: null,
  1535. projectPoolId: null,
  1536. quitWay: null,
  1537. quitWayNote: null,
  1538. remark: null,
  1539. scoringPerson: null, //打分人
  1540. teamBackground: null,
  1541. teamBackgroundNote: null,
  1542. teamExperience: null,
  1543. teamExperienceNote: null,
  1544. teamFaith: null,
  1545. teamFaithNote: null,
  1546. teamHeart: null,
  1547. teamHeartNote: null,
  1548. type: null,
  1549. updateBy: null,
  1550. updateTime: null,
  1551. valuation: null,
  1552. valuationNote: null,
  1553. },
  1554. // 会议详情表单
  1555. form1: {
  1556. meetingTheme: null,
  1557. meetingCode: null,
  1558. meetingType: null,
  1559. projectPoolId: null,
  1560. projectName: null,
  1561. projectStage: null,
  1562. projectGroup: "",
  1563. startTime: null,
  1564. endTime: null,
  1565. place: null,
  1566. promoter: null,
  1567. promoterId: null,
  1568. participants: null,
  1569. participantsId: null,
  1570. tProjectPool: {
  1571. company: null,
  1572. projectName: null,
  1573. projectStage: null,
  1574. },
  1575. },
  1576. // 汇总分数表单
  1577. collectForm: {
  1578. businessModelAvg: null,
  1579. businessModelSum: null,
  1580. developSpaceAvg: null,
  1581. developSpaceSum: null,
  1582. industryAdvantageAvg: null,
  1583. industryAdvantageSum: null,
  1584. investCommissioner: null,
  1585. marketSpaceAvg: null,
  1586. marketSpaceSum: null,
  1587. meetingId: null,
  1588. organInvestAvg: null,
  1589. organInvestSum: null,
  1590. organValuationAvg: null,
  1591. organValuationSum: null,
  1592. productBaseAvg: null,
  1593. productBaseSum: null,
  1594. productProfitAvg: null,
  1595. productProfitSum: null,
  1596. projectPoolId: null,
  1597. quitWayAvg: null,
  1598. quitWaySum: null,
  1599. scoringPerson: null,
  1600. teamBackgroundAvg: null,
  1601. teamBackgroundSum: null,
  1602. teamExperienceAvg: null,
  1603. teamExperienceSum: null,
  1604. teamFaithAvg: null,
  1605. teamFaithSum: null,
  1606. teamHeartAvg: null,
  1607. teamHeartSum: null,
  1608. valuationAvg: null,
  1609. valuationSum: null,
  1610. },
  1611. scoreRules: {
  1612. industryAdvantage: [
  1613. { required: true, trigger: "blur", message: "请打分" },
  1614. ],
  1615. businessModel: [{ required: true, trigger: "blur", message: "请打分" }],
  1616. teamExperience: [
  1617. { required: true, trigger: "blur", message: "请打分" },
  1618. ],
  1619. teamBackground: [
  1620. { required: true, trigger: "blur", message: "请打分" },
  1621. ],
  1622. teamHeart: [{ required: true, trigger: "blur", message: "请打分" }],
  1623. teamFaith: [{ required: true, trigger: "blur", message: "请打分" }],
  1624. productBase: [{ required: true, trigger: "blur", message: "请打分" }],
  1625. productProfit: [{ required: true, trigger: "blur", message: "请打分" }],
  1626. organValuation: [
  1627. { required: true, trigger: "blur", message: "请打分" },
  1628. ],
  1629. organInvest: [{ required: true, trigger: "blur", message: "请打分" }],
  1630. valuation: [{ required: true, trigger: "blur", message: "请打分" }],
  1631. marketSpace: [{ required: true, trigger: "blur", message: "请打分" }],
  1632. developSpace: [{ required: true, trigger: "blur", message: "请打分" }],
  1633. quitWay: [{ required: true, trigger: "blur", message: "请打分" }],
  1634. // illustrate: [{ required: true, trigger: "blur", message: "请输入" }],
  1635. },
  1636. //打分-结束
  1637. flowBaseInfo:{
  1638. comment:null,
  1639. taskId:null
  1640. },
  1641. rulesFlow:{
  1642. comment: [{ required: true, trigger: "blur", message: "请输入" }],
  1643. }
  1644. };
  1645. },
  1646. computed: {
  1647. ...mapGetters(["user"]),
  1648. },
  1649. created() {
  1650. this.id = this.$route.query.id;
  1651. this.flowBaseInfo.taskId=this.$route.query.taskId;
  1652. this.getlistProjectPoolIdNewApproval();
  1653. this.getDetail();
  1654. if (this.$route.query.activeName) {
  1655. this.activeName = this.$route.query.activeName;
  1656. }
  1657. this.openMeetingPage(this.id,'LX');
  1658. },
  1659. methods: {
  1660. handleClick(tab, event) {
  1661. let that = this;
  1662. if (this.activeName === "0") {
  1663. // 项目立项
  1664. //this.getMettingId("LX");
  1665. this.getlistProjectPoolIdNewApproval();
  1666. } else if (this.activeName === "1") {
  1667. // 项目报备
  1668. this.getDetail();
  1669. }
  1670. },
  1671. // 获取立项申请
  1672. getlistProjectPoolIdNewApproval() {
  1673. let that = this;
  1674. getApprovalInfo(this.$route.query.pInstId).then((response) => {
  1675. if (response && response.data) {
  1676. that.formLXApply = response.data;
  1677. // 接口返回值存在(非 undefined/null)则用接口值,否则用 '0'
  1678. that.formLXApply.needMeeting = response.data.needMeeting || '0';
  1679. if(response.data.taskDefKey==='decision'){
  1680. //会议投决节点
  1681. this.getMeeting();
  1682. this.formType=1;
  1683. }else if(response.data.taskDefKey==='president'||response.data.taskDefKey === "file"){
  1684. //总裁室
  1685. this.getMeeting();
  1686. this.getSelectMeetingId();
  1687. this.formType=2;
  1688. }
  1689. setTimeout(() => {
  1690. //立项申请报告
  1691. this.$refs.fileItemLXApply.handleButton();
  1692. this.$refs.fileItemLXApply.fileList = [];
  1693. this.$refs.fileItemLXApply.getListFileBusinessId(that.formLXApply.id,"10");
  1694. //项目行研报告
  1695. if(response.data.taskDefKey==='president') {
  1696. this.$refs.industryFileItem.handleButton();
  1697. this.$refs.technicalFileItem.handleButton();
  1698. }
  1699. this.$refs.industryFileItem.fileList = [];
  1700. this.$refs.industryFileItem.getListFileBusinessId(that.formLXApply.id, "12");
  1701. //项目技术报告
  1702. this.$refs.technicalFileItem.fileList = [];
  1703. this.$refs.technicalFileItem.getListFileBusinessId(that.formLXApply.id, "13");
  1704. //其他附件
  1705. this.$refs.otherFileItem.handleButton();
  1706. this.$refs.otherFileItem.fileList = [];
  1707. this.$refs.otherFileItem.getListFileBusinessId(that.formLXApply.id, "0");
  1708. }, 300);
  1709. }
  1710. });
  1711. },
  1712. //项目报备
  1713. getDetail() {
  1714. getPool(this.id).then((response) => {
  1715. this.detailInfo = response.data;
  1716. // 项目退出完成n
  1717. if (response.data.projectState === "n") {
  1718. this.active = parseInt(response.data.projectStage);
  1719. } else {
  1720. this.active = parseInt(response.data.projectStage) - 1;
  1721. }
  1722. });
  1723. },
  1724. //会议详情
  1725. openMeetingPage(projectId, meetingType) {
  1726. let that = this;
  1727. //this.fileList = [];
  1728. this.showAllType = this.type === "3";
  1729. this.meetingTypeDisabled = false;
  1730. this.selectValues = null;
  1731. this.selectNameValues = null;
  1732. //this.reset();
  1733. this.meetingForm.promoter = this.user.nickName;
  1734. this.meetingForm.promoterId = this.user.userId;
  1735. if (meetingType) {
  1736. this.meetingType = meetingType;
  1737. this.meetingTypeDisabled = true;
  1738. }
  1739. if (projectId && typeof projectId === "string") {
  1740. this.pageType = "1";
  1741. }
  1742. // 直接绑定好项目
  1743. if (this.pageType === "1") {
  1744. let projectItemMessage = this.$store.getters.projectItemMessage;
  1745. this.meetingForm.projectPoolId = projectItemMessage.id;
  1746. this.meetingForm.projectName = projectItemMessage.projectName;
  1747. this.meetingForm.projectStage = projectItemMessage.projectStage;
  1748. this.meetingForm.projectGroup = projectItemMessage.projectGroup;
  1749. this.meetingForm.meetingType = this.meetingType;
  1750. }
  1751. //this.$refs.fileItems.fileList = [];
  1752. //如果已经有会议信息的进行回显
  1753. /*if(this.meetingForm.id!=null) {*/
  1754. getMeetingInfo(this.$route.query.pInstId).then((response) => {
  1755. if(response.data) {
  1756. this.meetingForm = response.data;
  1757. this.meetingForm.projectName = response.data.tProjectPool.projectName;
  1758. this.meetingForm.projectStage = response.data.tProjectPool.projectStage;
  1759. this.meetingForm.projectGroup = response.data.tProjectPool.projectGroup;
  1760. //this.openDetail = true;
  1761. this.selectValues = response.data.participantsId;
  1762. this.selectNameValues = response.data.participants;
  1763. /* setTimeout(() => {
  1764. this.$refs.fileItems.fileList = [];
  1765. this.$refs.fileItems.getListFileBusinessId(response.data.id);
  1766. //this.$refs.fileItems.handleButton();
  1767. }, 300);*/
  1768. }
  1769. });
  1770. /* }*/
  1771. },
  1772. //会议投决
  1773. getMeeting(){
  1774. getMeetingInfo(this.$route.query.pInstId).then((response) => {
  1775. this.form1 = response.data;
  1776. this.form1.projectPoolId = response.data.projectPoolId;
  1777. this.form1.projectName = response.data.tProjectPool.projectName;
  1778. this.form1.projectStage = response.data.tProjectPool.projectStage;
  1779. this.scoreForm.projectPoolId = response.data.projectPoolId;
  1780. this.scoreForm.projectName = response.data.tProjectPool.projectName;
  1781. // 打分人
  1782. this.scoreForm.scoringPerson = this.user.userId;
  1783. // 项目负责人
  1784. this.scoreForm.investCommissioner = response.data.tProjectPool.investHead;
  1785. this.collectForm.investCommissioner =
  1786. response.data.tProjectPool.investHead;
  1787. this.scoreForm.meetingId = response.data.id;
  1788. /*setTimeout(() => {
  1789. this.$refs.fileItems.fileList = [];
  1790. this.$refs.fileItems.getListFileBusinessId();
  1791. this.$refs.fileItems.handleButton();
  1792. }, 300);*/
  1793. });
  1794. },
  1795. //总裁室
  1796. // 根据会议ID查询汇总分数和平均分数
  1797. getSelectMeetingId() {
  1798. getSumScore(this.$route.query.pInstId).then((response) => {
  1799. this.collectForm = response.data;
  1800. this.collectForm.investCommissioner = this.scoreForm.investCommissioner;
  1801. });
  1802. },
  1803. //显示用户信息
  1804. handleSelectPeople(number) {
  1805. // this.userVisible = true;
  1806. if(number===1){
  1807. this.openLXApply=true;
  1808. this.openHYApply=false;
  1809. }else if(number===2){
  1810. this.openLXApply=false;
  1811. this.openHYApply=true;
  1812. }
  1813. this.$refs.flowUser.handleUserVisible(true);
  1814. },
  1815. // 用户选中数据
  1816. handleUserSelect(selection) {
  1817. const that = this;
  1818. if (selection && selection[0]) {
  1819. let form;
  1820. if(this.openLXApply) {
  1821. form = this.formLXApply;
  1822. } else if (this.openHYApply) {
  1823. form = this.meetingForm;
  1824. }
  1825. if (selection instanceof Array) {
  1826. const userIds = selection.map((item) => item.userId);
  1827. const nickName = selection.map((item) => item.nickName);
  1828. form.participants = nickName.join(",");
  1829. form.participantsId = userIds.join(",");
  1830. this.selectNameValues = nickName.join(",");
  1831. this.selectValues = userIds.join(",");
  1832. } else {
  1833. form.participants = selection.nickName;
  1834. form.participantsId = selection.userId;
  1835. this.selectNameValues = selection.nickName;
  1836. this.selectValues = selection.userId;
  1837. }
  1838. // this.$refs.meetingForm.clearValidate(["participants"]);
  1839. // this.$refs.formLXApply.clearValidate(["participants"]);
  1840. }
  1841. },
  1842. // 获取公司信息
  1843. getProjectInfo(info) {
  1844. if (info.length > 0) {
  1845. //console.log("info=", info);
  1846. this.form.projectPoolId = info[0].id;
  1847. this.form.projectName = info[0].projectName;
  1848. this.form.projectStage = info[0].projectStage;
  1849. this.form.projectState = info[0].projectState;
  1850. if (info[0].tProjectChannel && info[0].tProjectChannel.channelGroup) {
  1851. this.form.projectGroup = info[0].tProjectChannel.channelGroup;
  1852. } else {
  1853. this.form.projectGroup = "";
  1854. }
  1855. this.$refs.form.clearValidate(["projectName"]);
  1856. }
  1857. },
  1858. //展示人员
  1859. handleProjectItem() {
  1860. this.$refs.projectItem.showProjectItem = true;
  1861. },
  1862. getDeptUserInfo(info) {
  1863. if (info.length > 0) {
  1864. this.meetingForm.promoter = info[0].nickName;
  1865. this.meetingForm.promoterId = info[0].userId.toString();
  1866. this.$refs.meetingForm.clearValidate(["promoter"]);
  1867. }
  1868. },
  1869. // flag 区分同意(true)和驳回(false)
  1870. // isTerminate , 区分是否:终止(1)和观望(0)
  1871. /** 加载审批任务弹框 */
  1872. handleComplete(flag,isTerminate) {
  1873. this.taskComplete(flag,isTerminate);
  1874. },
  1875. /** 用户审批任务 */
  1876. taskComplete(flag,isTerminate) {
  1877. let allValid = true;
  1878. if(this.formLXApply.taskDefKey==="meeting") {//发起会议节点
  1879. this.formLXApply.listFile = this.fileListLXApply;
  1880. this.meetingForm.listFile = this.fileList;
  1881. /*if (!this.formLXApply.participants) {
  1882. this.$modal.msgError("请选择立项审批人!");
  1883. return;
  1884. }
  1885. if (this.formLXApply.needMeeting==='1') {
  1886. this.$refs["meetingForm"].validate((valid) => {
  1887. if (!valid) {
  1888. allValid = false;
  1889. return;
  1890. }
  1891. })
  1892. }*/
  1893. }else if(this.formLXApply.taskDefKey==="decision"){//会议投决
  1894. /*this.$refs["scoreForm"].validate((valid) => {
  1895. if (!valid) {
  1896. allValid = false;
  1897. // 4. 评审表校验失败:切换标签 + 提示
  1898. this.activeTab = 'review'; // 切换到评审表标签
  1899. this.$message.error('项目立项评估评审表未填写完整,请检查!');
  1900. return;
  1901. }
  1902. })*/
  1903. }else if(this.formLXApply.taskDefKey==="industryResearch"){//项目行研
  1904. this.formLXApply.listFile = this.fileListIndustry;
  1905. this.$refs["formLXApply"].validate((valid) => {
  1906. if (!valid) {
  1907. allValid = false;
  1908. return;
  1909. }
  1910. })
  1911. }else if(this.formLXApply.taskDefKey==="technicalResearch"){//项目技术
  1912. this.formLXApply.listFile = this.fileListTechnical;
  1913. this.$refs["formLXApply"].validate((valid) => {
  1914. if (!valid) {
  1915. allValid = false;
  1916. return;
  1917. }
  1918. })
  1919. }
  1920. if (!flag&&!this.flowBaseInfo.comment) {
  1921. this.$modal.msgError("请输入审批意见!");
  1922. return;
  1923. }
  1924. //会议人
  1925. this.formLXApply.flag=flag;
  1926. this.formLXApply.isTerminate=isTerminate;
  1927. const params={
  1928. projectApproval: this.formLXApply, // 拆分明确字段
  1929. projectMeeting: this.meetingForm,
  1930. projectScoring: this.scoreForm,
  1931. flowBaseInfo: this.flowBaseInfo
  1932. }
  1933. if(allValid) {
  1934. try{
  1935. approvalComplete(params).then(response => {
  1936. this.$modal.msgSuccess(response.msg);
  1937. this.$store.dispatch("getMyTaskApprovalNumber"); //更新代办数量
  1938. this.goMyTask();
  1939. });
  1940. } catch (err) {
  1941. // 捕获重复提交错误
  1942. this.$message.error(err.message);
  1943. }
  1944. }
  1945. },
  1946. /*返回*/
  1947. goBack() {
  1948. this.$router.go(-1);
  1949. },
  1950. //跳转到我的任务
  1951. goMyTask(){
  1952. //this.$router.push({ path: "/myTask/project/approval/myTask"});
  1953. // 关闭当前标签页并返回指定页面
  1954. const obj = { path: "/myTask/project/approval/myTask", query: { t: Date.now()} };
  1955. this.$tab.closeOpenPage(obj);
  1956. },
  1957. // 立项申请附件回显
  1958. getFileListLXApply(fileList) {
  1959. this.fileListLXApply = fileList;
  1960. if (fileList && fileList.length > 0) {
  1961. this.$refs.formLXApply.clearValidate(["listFile"]);
  1962. } else {
  1963. this.fileListLXApply = [];
  1964. }
  1965. },
  1966. // 会议申请附件回显
  1967. getFileList(fileList) {
  1968. if (fileList && fileList.length > 0) {
  1969. this.fileList = fileList;
  1970. } else {
  1971. this.fileList = [];
  1972. }
  1973. },
  1974. //
  1975. getIndustryFileList(fileList) {
  1976. if (fileList && fileList.length > 0) {
  1977. this.fileListIndustry = fileList;
  1978. this.$refs.formLXApply.clearValidate(["industryListFile"]);
  1979. } else {
  1980. this.fileListIndustry = [];
  1981. }
  1982. },
  1983. getTechnicalFileList(fileList) {
  1984. if (fileList && fileList.length > 0) {
  1985. this.fileListTechnical = fileList;
  1986. this.$refs.formLXApply.clearValidate(["technicalListFile"]);
  1987. } else {
  1988. this.fileListTechnical = [];
  1989. }
  1990. },
  1991. },
  1992. };
  1993. </script>
  1994. <style lang="scss" scoped>
  1995. .detailWrapper {
  1996. padding: 20px 0;
  1997. width: 92%;
  1998. margin: 0 auto;
  1999. .section1 {
  2000. p {
  2001. font-size: 24px;
  2002. font-weight: bold;
  2003. margin: 0;
  2004. }
  2005. > div:first-child {
  2006. // width: calc(100% - 700px);
  2007. width: 100%;
  2008. }
  2009. .btnList {
  2010. width: 700px;
  2011. display: flex;
  2012. justify-content: flex-end;
  2013. }
  2014. }
  2015. .basicsInfo {
  2016. font-size: 14px;
  2017. background: #f1f1f1;
  2018. margin-top: -24px;
  2019. width: 100%;
  2020. padding: 30px 20px 10px;
  2021. div {
  2022. color: #7e7d7d;
  2023. }
  2024. p {
  2025. font-size: 16px;
  2026. color: #333;
  2027. font-weight: bold;
  2028. }
  2029. }
  2030. .section3 {
  2031. margin-top: 40px;
  2032. }
  2033. .btnList {
  2034. display: flex;
  2035. justify-content: flex-end;
  2036. /* 让内部元素(按钮)整体靠右 */
  2037. gap: 10px; /* 替代 margin,给按钮之间加间距,可选 */
  2038. }
  2039. }
  2040. .projectNameTit {
  2041. }
  2042. .alreadyStop {
  2043. font-weight: normal;
  2044. font-size: 12px;
  2045. background: #ff0000;
  2046. color: #fff;
  2047. border-radius: 5px;
  2048. padding: 5px 10px;
  2049. margin-left: 10px;
  2050. }
  2051. /*表格样式开始*/
  2052. .ss_scoreTable {
  2053. padding-bottom: 50px;
  2054. ::v-deep .el-input.is-disabled .el-input__inner {
  2055. background-color: #fff !important;
  2056. color: #606266;
  2057. }
  2058. ::v-deep .el-input__inner {
  2059. border: 1px solid transparent;
  2060. text-align: center;
  2061. }
  2062. ::v-deep.el-textarea__inner {
  2063. border: none;
  2064. height: 50px;
  2065. resize: none;
  2066. }
  2067. ::v-deep .el-textarea.is-disabled .el-textarea__inner {
  2068. background-color: #fff !important;
  2069. }
  2070. textarea:disabled,
  2071. input:disabled {
  2072. background-color: #fff !important;
  2073. }
  2074. // ::v-deep .el-textarea__inner {
  2075. // // border: 1px solid transparent!important;
  2076. // }
  2077. table {
  2078. // width:80%;
  2079. // width: 600px;
  2080. margin: 0 30px;
  2081. -moz-user-select: none;
  2082. -webkit-user-select: none;
  2083. -ms-user-select: none;
  2084. -khtml-user-selece: none;
  2085. /*上面都是兼容性问题,具体看浏览器版本或什么浏览器*/
  2086. user-select: none; /*内容禁止选中*/
  2087. }
  2088. tbody td {
  2089. font-size: 14px;
  2090. }
  2091. thead th,
  2092. .big-font {
  2093. font-size: 16px !important;
  2094. font-weight: bold;
  2095. }
  2096. .public-pedded-0 {
  2097. padding: 0;
  2098. }
  2099. .text-center {
  2100. text-align: center;
  2101. }
  2102. .text-left {
  2103. text-align: left;
  2104. }
  2105. .table-textarea {
  2106. width: 100%;
  2107. // width: 180px;
  2108. border: none;
  2109. height: 50px;
  2110. resize: none;
  2111. }
  2112. .table-input {
  2113. width: 100%;
  2114. // width: 100%;
  2115. // height: 80px;
  2116. border: none;
  2117. font-size: 20px;
  2118. font-weight: bold;
  2119. text-align: center;
  2120. margin-top: 20px;
  2121. }
  2122. .bg-blue,
  2123. .specificTr > th:nth-child(2n-1) {
  2124. background-color: #9bc2e6;
  2125. }
  2126. .specificTr > th:nth-child(2n-1) {
  2127. white-space: nowrap;
  2128. padding: 0 15px;
  2129. }
  2130. .specificTr .table-textarea {
  2131. padding-top: 16px;
  2132. background-color: #fff;
  2133. }
  2134. tr > th {
  2135. height: 50px;
  2136. }
  2137. input:disabled {
  2138. // background-color: #fff !important;
  2139. }
  2140. .btnList {
  2141. width: 100%;
  2142. display: flex;
  2143. justify-content: center;
  2144. padding-bottom: 40px;
  2145. margin-top: 30px;
  2146. }
  2147. }
  2148. </style>