details.vue 55 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682
  1. <!-- 商机-详情 -->
  2. <template>
  3. <div class="md-content">
  4. <!-- 头部信息 -->
  5. <el-row type="flex" justify="space-between">
  6. <el-col :span="6">
  7. <el-button size="small" @click="handleBack">返回</el-button>
  8. </el-col>
  9. <el-form ref="form" :model="form.basic">
  10. <el-col :span="10">
  11. <el-input
  12. v-model="form.basic.boName"
  13. placeholder="商机名称"
  14. size="medium"
  15. :disabled = "true"
  16. />
  17. </el-col>
  18. <el-col :span="6">
  19. <el-select
  20. v-model="form.basic.boState"
  21. placeholder="商机状态"
  22. size="medium"
  23. :disabled = "true"
  24. >
  25. <el-option
  26. v-for="dict in dict.type.mk_bo_state"
  27. :key="dict.value"
  28. :label="dict.label"
  29. :value="dict.value"
  30. ></el-option>
  31. </el-select>
  32. </el-col>
  33. <el-col :span="6">
  34. <el-select
  35. v-model="form.basic.winningState"
  36. placeholder="赢丢单状态"
  37. size="medium"
  38. :disabled = "true"
  39. >
  40. <el-option
  41. v-for="dict in dict.type.mk_bo_winstate"
  42. :key="dict.value"
  43. :label="dict.label"
  44. :value="dict.value"
  45. ></el-option>
  46. </el-select>
  47. </el-col>
  48. </el-form>
  49. <el-button-group>
  50. <el-col :span="6">
  51. <el-button size="small" icon="el-icon-d-arrow-left"></el-button>
  52. </el-col>
  53. <el-col :span="6">
  54. <el-button size="small" icon="el-icon-arrow-left"></el-button>
  55. </el-col>
  56. <el-col :span="6">
  57. <el-button size="small" icon="el-icon-arrow-right"></el-button>
  58. </el-col>
  59. <el-col :span="6">
  60. <el-button size="small" icon="el-icon-d-arrow-right"></el-button>
  61. </el-col>
  62. </el-button-group>
  63. </el-row>
  64. <!-- 主多页签 -->
  65. <el-tabs v-model="masterTabs" @tab-click="masterTabsSwitch">
  66. <!-- 基本信息页签 -->
  67. <el-tab-pane label="基本信息" name="first">
  68. 项目流程
  69. <el-steps :active="form.basic.boStage" finish-status="success">
  70. <el-step title="商机审核" @click.native="viewingProcedure(0)"></el-step>
  71. <el-step title="项目立项" @click.native="viewingProcedure(1)"></el-step>
  72. <el-step title="售前提案/邀请考察" @click.native="viewingProcedure(2)"></el-step>
  73. <el-step title="开院务会" @click.native="viewingProcedure(3)"></el-step>
  74. <el-step title="院内立项" @click.native="viewingProcedure(4)"></el-step>
  75. <el-step title="进场调研" @click.native="viewingProcedure(5)"></el-step>
  76. <el-step title="解决方案" @click.native="viewingProcedure(6)"></el-step>
  77. <el-step title="投标与签合同" @click.native="viewingProcedure(7)"></el-step>
  78. <el-step title="进场实施" @click.native="viewingProcedure(8)"></el-step>
  79. <el-step title="落地方案" @click.native="viewingProcedure(9)"></el-step>
  80. <el-step title="实施交付" @click.native="viewingProcedure(10)"></el-step>
  81. <el-step title="上线仪式" @click.native="viewingProcedure(11)"></el-step>
  82. </el-steps>
  83. <!-- 流程按钮组 -->
  84. <div style="text-align: center">
  85. <el-button
  86. type="primary"
  87. style="margin-top: 12px"
  88. @click="next"
  89. v-show="form.basic.boStage == 0"
  90. >
  91. 审核
  92. </el-button>
  93. <el-button
  94. style="margin-top: 12px"
  95. @click="next"
  96. v-show="
  97. !(
  98. form.basic.boStage == 0 ||
  99. form.basic.boFlow.projectApproval == 0
  100. ) &&
  101. !isUpdate &&
  102. this.form.basic.boStage < 12
  103. "
  104. >变更为下一阶段</el-button>
  105. <!-- <el-button style="margin-top: 12px;" @click="before" v-if="form.basic.boStage > 1">上一步</el-button> -->
  106. </div>
  107. <!-- 次多页签 -->
  108. <el-divider content-position="left" style="font-size: 30px">该阶段任务</el-divider>
  109. <el-tabs v-model="secondTabs" @tab-click="secondTabsSwitch">
  110. <!-- 阶段动作1 -->
  111. <el-tab-pane
  112. label="阶段动作"
  113. name="jd1"
  114. style="height: 200px; overflow-y: scroll"
  115. v-if="this.secondTabsName.jd1"
  116. >
  117. <el-form
  118. ref="form"
  119. :model="form.basic"
  120. :rules="rules"
  121. label-width="120px"
  122. >
  123. <el-row>
  124. <el-col :span="10">
  125. <el-form-item label="医院应收总额" prop="totalHosRevenue">
  126. <el-select
  127. v-model="form.basic.totalHosRevenue"
  128. placeholder="请输入医院营收总额"
  129. :disabled="true"
  130. >
  131. <el-option
  132. v-for="dict in dict.type.mk_bo_total_revenue"
  133. :key="dict.value"
  134. :label="dict.label"
  135. :value="dict.value"
  136. ></el-option>
  137. </el-select>
  138. </el-form-item>
  139. </el-col>
  140. </el-row>
  141. <el-row>
  142. <el-col :span="10">
  143. <el-form-item label="医院耗材预估额" prop="hosDiscreetValue">
  144. <el-input
  145. v-model="form.basic.hosDiscreetValue"
  146. placeholder="医院耗材预估额"
  147. readonly
  148. />
  149. </el-form-item>
  150. </el-col>
  151. </el-row>
  152. </el-form>
  153. </el-tab-pane>
  154. <!-- 阶段动作2 -->
  155. <el-tab-pane
  156. label="阶段动作"
  157. name="jd2"
  158. style="height: 200px; overflow-y: scroll"
  159. v-if="this.secondTabsName.jd2"
  160. >
  161. <el-form ref="form" :model="form.basic.boFlow" :rules="rules">
  162. <el-row>
  163. 项目立项是否通过
  164. <el-radio
  165. v-model="form.basic.boFlow.projectApproval"
  166. label="1"
  167. :disabled="!isUpdate"
  168. >是</el-radio
  169. >
  170. <el-radio
  171. v-model="form.basic.boFlow.projectApproval"
  172. label="0"
  173. :disabled="!isUpdate"
  174. >否</el-radio
  175. >
  176. </el-row>
  177. <el-row v-if="form.basic.boFlow.projectApproval == 1">
  178. <el-col :span="1.5">
  179. <el-input
  180. v-model="form.basic.boFlow.businessCouncilAccessoryName"
  181. placeholder="请上传商机审议会"
  182. readonly
  183. />
  184. </el-col>
  185. <el-col
  186. :span="1.5"
  187. v-show="!form.basic.boFlow.businessCouncilAccessoryUrlId"
  188. >
  189. <el-button
  190. type="info"
  191. plain
  192. icon="el-icon-upload2"
  193. size="mini"
  194. @click="uploadAccessory(`business_council_accessory`)"
  195. >上传</el-button
  196. >
  197. </el-col>
  198. <el-col
  199. :span="1.5"
  200. v-show="form.basic.boFlow.businessCouncilAccessoryUrlId"
  201. >
  202. <el-button
  203. type="warning"
  204. plain
  205. icon="el-icon-download"
  206. size="mini"
  207. @click="
  208. exportAccessory(
  209. form.basic.boFlow.businessCouncilAccessoryUrlId,
  210. form.basic.boFlow.businessCouncilAccessoryName
  211. )
  212. "
  213. >下载</el-button
  214. >
  215. </el-col>
  216. <el-col
  217. :span="1.5"
  218. v-show="form.basic.boFlow.businessCouncilAccessoryUrlId"
  219. >
  220. <el-button
  221. size="mini"
  222. type="text"
  223. icon="el-icon-delete"
  224. @click="deleteAccessory(`business_council_accessory`, 1)"
  225. >删除</el-button
  226. >
  227. </el-col>
  228. </el-row>
  229. <el-row v-if="form.basic.boFlow.projectApproval == 1">
  230. <el-col :span="1.5">
  231. <el-input
  232. v-model="form.basic.boFlow.projectProposalAccessoryName"
  233. placeholder="请上传立项书"
  234. readonly
  235. />
  236. </el-col>
  237. <el-col
  238. :span="1.5"
  239. v-show="!form.basic.boFlow.projectProposalAccessoryUrlId"
  240. >
  241. <el-button
  242. type="info"
  243. plain
  244. icon="el-icon-upload2"
  245. size="mini"
  246. @click="uploadAccessory(`project_proposal_accessory`)"
  247. >上传</el-button
  248. >
  249. </el-col>
  250. <el-col
  251. :span="1.5"
  252. v-show="form.basic.boFlow.projectProposalAccessoryUrlId"
  253. >
  254. <el-button
  255. type="warning"
  256. plain
  257. icon="el-icon-download"
  258. size="mini"
  259. @click="
  260. exportAccessory(
  261. form.basic.boFlow.projectProposalAccessoryUrlId,
  262. form.basic.boFlow.projectProposalAccessoryName
  263. )
  264. "
  265. >下载</el-button
  266. >
  267. </el-col>
  268. <el-col
  269. :span="1.5"
  270. v-show="form.basic.boFlow.projectProposalAccessoryUrlId"
  271. >
  272. <el-button
  273. size="mini"
  274. type="text"
  275. icon="el-icon-delete"
  276. @click="deleteAccessory(`project_proposal_accessory`, 1)"
  277. >删除</el-button
  278. >
  279. </el-col>
  280. </el-row>
  281. <el-row>
  282. <el-col
  283. :span="10"
  284. v-if="form.basic.boFlow.projectApproval == 0"
  285. >
  286. 项目未通过原因:<el-input
  287. v-model="form.basic.boFlow.noPassCause"
  288. :disabled="!isUpdate"
  289. />
  290. </el-col>
  291. </el-row>
  292. </el-form>
  293. </el-tab-pane>
  294. <!-- 立项模板 -->
  295. <el-tab-pane
  296. label="立项模板"
  297. name="lx"
  298. style="height: 200px; overflow-y: scroll"
  299. v-if="this.secondTabsName.lx"
  300. >
  301. <el-table
  302. :data="tableData"
  303. style="width: 100%">
  304. <el-table-column
  305. prop="type"
  306. label="文件类型"
  307. width="180">
  308. </el-table-column>
  309. <el-table-column
  310. prop="name"
  311. label="文件名称"
  312. width="180">
  313. </el-table-column>
  314. </el-table>
  315. </el-tab-pane>
  316. <!-- 项目人员组成 -->
  317. <el-tab-pane
  318. label="项目人员组成"
  319. name="xmry"
  320. style="height: 200px; overflow-y: scroll"
  321. v-if="this.secondTabsName.xmry"
  322. >
  323. <PojpsnList
  324. :source="'BoDetails'"
  325. :bo="this.form.basic"
  326. v-if="secondTabs == 'xmry'"
  327. />
  328. </el-tab-pane>
  329. <!-- 方案模板 -->
  330. <el-tab-pane
  331. label="方案模板"
  332. name="fa"
  333. style="height: 200px; overflow-y: scroll"
  334. v-if="this.secondTabsName.fa"
  335. >
  336. <!-- <el-row>
  337. <el-button @click="pojproDownload">售前提案文件模板</el-button>
  338. </el-row>
  339. <el-row>
  340. <el-button @click="pojproDownload">考察报告模板</el-button>
  341. </el-row>
  342. <el-row>
  343. <el-button @click="pojproDownload">调研相关文件模板</el-button>
  344. </el-row>
  345. <el-row>
  346. <el-button @click="pojproDownload">投标模板</el-button>
  347. </el-row>
  348. <el-row>
  349. <el-button @click="pojproDownload">其他文件</el-button>
  350. </el-row> -->
  351. <el-table
  352. :data="tableData1"
  353. style="width: 100%">
  354. <el-table-column
  355. prop="type"
  356. label="文件类型"
  357. width="180">
  358. </el-table-column>
  359. <el-table-column
  360. prop="name"
  361. label="文件名称"
  362. width="250">
  363. </el-table-column>
  364. </el-table>
  365. </el-tab-pane>
  366. <!-- 售前提案 -->
  367. <el-tab-pane
  368. label="售前提案"
  369. name="sq"
  370. style="height: 200px; overflow-y: scroll"
  371. v-if="this.secondTabsName.sq"
  372. >
  373. <el-form ref="form" :model="form.basic.boFlow" :rules="rules">
  374. <el-row>
  375. <el-col :span="1.5">
  376. <el-input
  377. v-model="form.basic.boFlow.preSaleProposalAccessoryName"
  378. placeholder="请上传售前提案文件"
  379. readonly
  380. />
  381. </el-col>
  382. <el-col
  383. :span="1.5"
  384. v-show="!form.basic.boFlow.preSaleProposalAccessoryUrlId"
  385. >
  386. <el-button
  387. type="info"
  388. plain
  389. icon="el-icon-upload2"
  390. size="mini"
  391. @click="uploadAccessory(`pre_sale_proposal_accessory`)"
  392. >上传</el-button
  393. >
  394. </el-col>
  395. <el-col
  396. :span="1.5"
  397. v-show="form.basic.boFlow.preSaleProposalAccessoryUrlId"
  398. >
  399. <el-button
  400. type="warning"
  401. plain
  402. icon="el-icon-download"
  403. size="mini"
  404. @click="
  405. exportAccessory(
  406. form.basic.boFlow.preSaleProposalAccessoryUrlId,
  407. form.basic.boFlow.preSaleProposalAccessoryName
  408. )
  409. "
  410. >下载</el-button
  411. >
  412. </el-col>
  413. <el-col
  414. :span="1.5"
  415. v-show="form.basic.boFlow.preSaleProposalAccessoryUrlId"
  416. >
  417. <el-button
  418. size="mini"
  419. type="text"
  420. icon="el-icon-delete"
  421. @click="deleteAccessory(`pre_sale_proposal_accessory`, 1)"
  422. >删除</el-button
  423. >
  424. </el-col>
  425. </el-row>
  426. </el-form>
  427. </el-tab-pane>
  428. <!-- 邀请考察 -->
  429. <el-tab-pane
  430. label="邀请考察"
  431. name="kc"
  432. style="height: 200px; overflow-y: scroll"
  433. v-if="this.secondTabsName.kc"
  434. >
  435. <el-form ref="form" :model="form.basic.boFlow" :rules="rules">
  436. <el-row>
  437. <el-col :span="5">
  438. <el-form-item label="考察开始时间" prop="inspectStartTime">
  439. <el-date-picker
  440. v-model="form.basic.boFlow.inspectStartTime"
  441. type="datetime"
  442. placeholder="选择日期时间"
  443. :disabled="!isUpdate"
  444. >
  445. </el-date-picker>
  446. </el-form-item>
  447. </el-col>
  448. <el-col :span="5">
  449. <el-form-item label="考察结束时间" prop="inspectStartTime">
  450. <el-date-picker
  451. v-model="form.basic.boFlow.inspectEndTime"
  452. type="datetime"
  453. placeholder="选择日期时间"
  454. :disabled="!isUpdate"
  455. >
  456. </el-date-picker>
  457. </el-form-item>
  458. </el-col>
  459. </el-row>
  460. <el-row>
  461. <el-col :span="1.5">
  462. <el-input
  463. v-model="form.basic.boFlow.investigationReportAccessoryName"
  464. placeholder="请上传考察报告"
  465. readonly
  466. />
  467. </el-col>
  468. <el-col
  469. :span="1.5"
  470. v-show="!form.basic.boFlow.investigationReportAccessoryUrlId"
  471. >
  472. <el-button
  473. type="info"
  474. plain
  475. icon="el-icon-upload2"
  476. size="mini"
  477. @click="uploadAccessory(`investigation_report_accessory`)"
  478. >上传</el-button
  479. >
  480. </el-col>
  481. <el-col
  482. :span="1.5"
  483. v-show="form.basic.boFlow.investigationReportAccessoryUrlId"
  484. >
  485. <el-button
  486. type="warning"
  487. plain
  488. icon="el-icon-download"
  489. size="mini"
  490. @click="
  491. exportAccessory(
  492. form.basic.boFlow.investigationReportAccessoryUrlId,
  493. form.basic.boFlow.investigationReportAccessoryName
  494. )
  495. "
  496. >下载</el-button
  497. >
  498. </el-col>
  499. <el-col
  500. :span="1.5"
  501. v-show="form.basic.boFlow.investigationReportAccessoryUrlId"
  502. >
  503. <el-button
  504. size="mini"
  505. type="text"
  506. icon="el-icon-delete"
  507. @click="
  508. deleteAccessory(`investigation_report_accessory`, 1)
  509. "
  510. >删除</el-button
  511. >
  512. </el-col>
  513. </el-row>
  514. </el-form>
  515. </el-tab-pane>
  516. <!-- 开院务会 -->
  517. <el-tab-pane
  518. label="开院务会"
  519. name="kh"
  520. style="height: 200px; overflow-y: scroll"
  521. v-if="this.secondTabsName.kh"
  522. >
  523. <el-form ref="form" :model="form.basic.boFlow" :rules="rules">
  524. <el-row>
  525. <el-col :span="5">
  526. <el-form-item label="开院务会时间" prop="conferenceTime">
  527. <el-date-picker
  528. v-model="form.basic.boFlow.conferenceTime"
  529. type="datetime"
  530. placeholder="选择日期时间"
  531. :disabled="!isUpdate"
  532. >
  533. </el-date-picker>
  534. </el-form-item>
  535. </el-col>
  536. </el-row>
  537. </el-form>
  538. </el-tab-pane>
  539. <!-- 院内立项 -->
  540. <el-tab-pane
  541. label="院内立项"
  542. name="yn"
  543. style="height: 200px; overflow-y: scroll"
  544. v-if="this.secondTabsName.yn"
  545. >
  546. <el-form ref="form" :model="form.basic.boFlow" :rules="rules">
  547. <el-row>
  548. <el-col :span="5">
  549. <el-form-item
  550. label="院内立项时间"
  551. prop="hospitalApprovalTime"
  552. >
  553. <el-date-picker
  554. v-model="form.basic.boFlow.hospitalApprovalTime"
  555. type="datetime"
  556. placeholder="选择日期时间"
  557. :disabled="!isUpdate"
  558. >
  559. </el-date-picker>
  560. </el-form-item>
  561. </el-col>
  562. <el-col :span="5">
  563. <el-form-item
  564. label="院内立项牵头人"
  565. prop="hospitalApprovalInitiator"
  566. >
  567. <el-input
  568. v-model="form.basic.boFlow.hospitalApprovalInitiator"
  569. placeholder="院内立项牵头人"
  570. :disabled="!isUpdate"
  571. />
  572. </el-form-item>
  573. </el-col>
  574. </el-row>
  575. </el-form>
  576. </el-tab-pane>
  577. <!-- 进场调研 -->
  578. <el-tab-pane
  579. label="进场调研"
  580. name="jc"
  581. style="height: 200px; overflow-y: scroll"
  582. v-if="this.secondTabsName.jc"
  583. >
  584. <el-form ref="form" :model="form.basic.boFlow" :rules="rules">
  585. <el-row>
  586. <el-col :span="5">
  587. <el-form-item label="调研时间" prop="researchTime">
  588. <el-date-picker
  589. v-model="form.basic.boFlow.researchTime"
  590. type="datetime"
  591. placeholder="选择日期时间"
  592. :disabled="!isUpdate"
  593. >
  594. </el-date-picker>
  595. </el-form-item>
  596. </el-col>
  597. </el-row>
  598. <el-row>
  599. <el-col :span="1.5">
  600. <el-input
  601. v-model="form.basic.boFlow.investigateReportAccessoryName"
  602. placeholder="请上传调研报告"
  603. readonly
  604. />
  605. </el-col>
  606. <el-col
  607. :span="1.5"
  608. v-show="!form.basic.boFlow.investigateReportAccessoryUrlId"
  609. >
  610. <el-button
  611. type="info"
  612. plain
  613. icon="el-icon-upload2"
  614. size="mini"
  615. @click="uploadAccessory(`investigate_report_accessory`)"
  616. >上传</el-button
  617. >
  618. </el-col>
  619. <el-col
  620. :span="1.5"
  621. v-show="form.basic.boFlow.investigateReportAccessoryUrlId"
  622. >
  623. <el-button
  624. type="warning"
  625. plain
  626. icon="el-icon-download"
  627. size="mini"
  628. @click="
  629. exportAccessory(
  630. form.basic.boFlow.investigateReportAccessoryUrlId,
  631. form.basic.boFlow.investigateReportAccessoryName
  632. )
  633. "
  634. >下载</el-button
  635. >
  636. </el-col>
  637. <el-col
  638. :span="1.5"
  639. v-show="form.basic.boFlow.investigateReportAccessoryUrlId"
  640. >
  641. <el-button
  642. size="mini"
  643. type="text"
  644. icon="el-icon-delete"
  645. @click="
  646. deleteAccessory(`investigate_report_accessory`, 1)
  647. "
  648. >删除</el-button
  649. >
  650. </el-col>
  651. </el-row>
  652. </el-form>
  653. </el-tab-pane>
  654. <!-- 挂网投标 -->
  655. <el-tab-pane
  656. label="挂网投标"
  657. name="gw"
  658. style="height: 200px; overflow-y: scroll"
  659. v-if="this.secondTabsName.gw"
  660. >
  661. <el-form ref="form" :model="form.basic.boFlow" :rules="rules">
  662. <el-row>
  663. <el-col :span="5">
  664. <el-form-item label="挂网时间" prop="researchTime">
  665. <el-date-picker
  666. v-model="form.basic.boFlow.hangingTime"
  667. type="datetime"
  668. placeholder="选择日期时间"
  669. :disabled="!isUpdate"
  670. >
  671. </el-date-picker>
  672. </el-form-item>
  673. </el-col>
  674. </el-row>
  675. <el-row>
  676. <el-col :span="1.5">
  677. <el-input
  678. v-model="form.basic.boFlow.biddingDocumentsAccessoryName"
  679. placeholder="请上传投标书"
  680. readonly
  681. />
  682. </el-col>
  683. <el-col
  684. :span="1.5"
  685. v-show="!form.basic.boFlow.biddingDocumentsAccessoryUrlId"
  686. >
  687. <el-button
  688. type="info"
  689. plain
  690. icon="el-icon-upload2"
  691. size="mini"
  692. @click="uploadAccessory(`bidding_documents_accessory`)"
  693. >上传</el-button
  694. >
  695. </el-col>
  696. <el-col
  697. :span="1.5"
  698. v-show="form.basic.boFlow.biddingDocumentsAccessoryUrlId"
  699. >
  700. <el-button
  701. type="warning"
  702. plain
  703. icon="el-icon-download"
  704. size="mini"
  705. @click="
  706. exportAccessory(
  707. form.basic.boFlow.biddingDocumentsAccessoryUrlId,
  708. form.basic.boFlow.biddingDocumentsAccessoryName
  709. )
  710. "
  711. >下载</el-button
  712. >
  713. </el-col>
  714. <el-col
  715. :span="1.5"
  716. v-show="form.basic.boFlow.biddingDocumentsAccessoryUrlId"
  717. >
  718. <el-button
  719. size="mini"
  720. type="text"
  721. icon="el-icon-delete"
  722. @click="deleteAccessory(`bidding_documents_accessory`, 1)"
  723. >删除</el-button
  724. >
  725. </el-col>
  726. </el-row>
  727. <el-row>
  728. <el-col :span="5">
  729. 投标是否通过
  730. <el-radio
  731. v-model="form.basic.boFlow.biddingDocumentsPass"
  732. label="1"
  733. :disabled="!isUpdate"
  734. >是</el-radio
  735. >
  736. <el-radio
  737. v-model="form.basic.boFlow.biddingDocumentsPass"
  738. label="0"
  739. :disabled="!isUpdate"
  740. >否</el-radio
  741. >
  742. </el-col>
  743. </el-row>
  744. <el-row>
  745. <el-col :span="5">
  746. <el-form-item label="我方优势" prop="researchTime" v-show="this.form.basic.boFlow.biddingDocumentsPass == '1'">
  747. <el-input
  748. v-model="form.ourAdvantage"
  749. placeholder="我方优势"
  750. :disabled="!isUpdate"
  751. />
  752. </el-form-item>
  753. </el-col>
  754. <el-col :span="5">
  755. <el-form-item label="我方劣势" prop="researchTime" v-show="this.form.basic.boFlow.biddingDocumentsPass == '0'">
  756. <el-input
  757. v-model="form.ourAdvantage"
  758. placeholder="我方劣势"
  759. :disabled="!isUpdate"
  760. />
  761. </el-form-item>
  762. </el-col>
  763. </el-row>
  764. <el-row v-if="form.basic.boFlow.biddingDocumentsPass == 1">
  765. <el-col :span="1.5">
  766. <el-input
  767. v-model="form.basic.boFlow.letterAcceptanceAccessoryName"
  768. placeholder="请上传中标通知书"
  769. readonly
  770. />
  771. </el-col>
  772. <el-col
  773. :span="1.5"
  774. v-show="!form.basic.boFlow.letterAcceptanceAccessoryUrlId"
  775. >
  776. <el-button
  777. type="info"
  778. plain
  779. icon="el-icon-upload2"
  780. size="mini"
  781. @click="uploadAccessory(`letter_acceptance_accessory`)"
  782. >上传</el-button
  783. >
  784. </el-col>
  785. <el-col
  786. :span="1.5"
  787. v-show="form.basic.boFlow.letterAcceptanceAccessoryUrlId"
  788. >
  789. <el-button
  790. type="warning"
  791. plain
  792. icon="el-icon-download"
  793. size="mini"
  794. @click="
  795. exportAccessory(
  796. form.basic.boFlow.letterAcceptanceAccessoryUrlId,
  797. form.basic.boFlow.letterAcceptanceAccessoryName
  798. )
  799. "
  800. >下载</el-button
  801. >
  802. </el-col>
  803. <el-col
  804. :span="1.5"
  805. v-show="form.basic.boFlow.letterAcceptanceAccessoryUrlId"
  806. >
  807. <el-button
  808. size="mini"
  809. type="text"
  810. icon="el-icon-delete"
  811. @click="deleteAccessory(`letter_acceptance_accessory`, 1)"
  812. >删除</el-button
  813. >
  814. </el-col>
  815. </el-row>
  816. </el-form>
  817. </el-tab-pane>
  818. <!-- 合同签订 -->
  819. <el-tab-pane
  820. label="合同签订"
  821. name="ht"
  822. style="height: 200px; overflow-y: scroll"
  823. v-if="this.secondTabsName.ht"
  824. >
  825. <el-form ref="form" :model="form.basic.boFlow" :rules="rules">
  826. <el-row>
  827. <el-col :span="5">
  828. <el-form-item label="合同签订时间" prop="contractSigningTime">
  829. <el-date-picker
  830. v-model="form.basic.boFlow.contractSigningTime"
  831. type="datetime"
  832. placeholder="选择日期时间"
  833. :disabled="!isUpdate"
  834. >
  835. </el-date-picker>
  836. </el-form-item>
  837. </el-col>
  838. </el-row>
  839. <el-row>
  840. <el-col :span="1.5">
  841. <el-input
  842. v-model="form.basic.boFlow.contractDocumentAccessoryName"
  843. placeholder="请上传合同文件"
  844. readonly
  845. />
  846. </el-col>
  847. <el-col
  848. :span="1.5"
  849. v-show="!form.basic.boFlow.contractDocumentAccessoryUrlId"
  850. >
  851. <el-button
  852. type="info"
  853. plain
  854. icon="el-icon-upload2"
  855. size="mini"
  856. @click="uploadAccessory(`contract_document_accessory`)"
  857. >上传</el-button
  858. >
  859. </el-col>
  860. <el-col
  861. :span="1.5"
  862. v-show="form.basic.boFlow.contractDocumentAccessoryUrlId"
  863. >
  864. <el-button
  865. type="warning"
  866. plain
  867. icon="el-icon-download"
  868. size="mini"
  869. @click="
  870. exportAccessory(
  871. form.basic.boFlow.contractDocumentAccessoryUrlId,
  872. form.basic.boFlow.contractDocumentAccessoryName
  873. )
  874. "
  875. >下载</el-button
  876. >
  877. </el-col>
  878. <el-col
  879. :span="1.5"
  880. v-show="form.basic.boFlow.contractDocumentAccessoryUrlId"
  881. >
  882. <el-button
  883. size="mini"
  884. type="text"
  885. icon="el-icon-delete"
  886. @click="deleteAccessory(`contract_document_accessory`, 1)"
  887. >删除</el-button
  888. >
  889. </el-col>
  890. </el-row>
  891. </el-form>
  892. </el-tab-pane>
  893. <!-- 跟进记录 -->
  894. <el-tab-pane
  895. label="跟进记录"
  896. name="gj"
  897. style="height: 200px; overflow-y: scroll"
  898. v-if="this.secondTabsName.gj"
  899. >
  900. <BehaviorList
  901. :source="'BoDetails'"
  902. :bo="this.behaviorParame"
  903. v-if="secondTabs == 'gj'"
  904. />
  905. </el-tab-pane>
  906. </el-tabs>
  907. <!-- 编辑按钮组 -->
  908. <el-row type="flex" class="row-bg" justify="end">
  909. <el-col :span="2" v-show="!isUpdate">
  910. <div class="grid-content bg-purple">
  911. <el-button
  912. @click="modifyButton"
  913. >修改</el-button
  914. >
  915. </div>
  916. </el-col>
  917. <el-col :span="2" v-show="isUpdate">
  918. <div class="grid-content bg-purple-light">
  919. <el-button
  920. @click="cancelButton"
  921. >取消</el-button
  922. >
  923. </div>
  924. </el-col>
  925. <el-col :span="2" v-show="isUpdate">
  926. <div class="grid-content bg-purple">
  927. <el-button
  928. @click="saveButton"
  929. >保存</el-button
  930. >
  931. </div>
  932. </el-col>
  933. </el-row>
  934. <!-- 基本信息 -->
  935. <el-divider content-position="left">基本信息</el-divider>
  936. <el-form ref="form" :model="form.basic" label-width="80px">
  937. <el-row :gutter="20">
  938. <el-col :span="8">
  939. <el-form-item label="商机来源" prop="boSource">
  940. <el-select
  941. v-model="form.basic.boSource"
  942. placeholder="商机来源"
  943. readonly
  944. >
  945. <el-option
  946. v-for="dict in dict.type.mk_bo_source"
  947. :key="dict.value"
  948. :label="dict.label"
  949. :value="dict.value"
  950. ></el-option>
  951. </el-select>
  952. </el-form-item>
  953. </el-col>
  954. <el-col :span="8">
  955. <el-form-item label="商机类型" prop="boType">
  956. <el-select
  957. v-model="form.basic.boType"
  958. placeholder="商机类型"
  959. readonly
  960. >
  961. <el-option
  962. v-for="dict in dict.type.mk_bo_type"
  963. :key="dict.value"
  964. :label="dict.label"
  965. :value="dict.value"
  966. ></el-option>
  967. </el-select>
  968. </el-form-item>
  969. </el-col>
  970. <el-col :span="8">
  971. <el-form-item label="客户名称" prop="customerName">
  972. <el-input
  973. v-model="form.basic.customerName"
  974. placeholder="请输入客户名称"
  975. readonly
  976. />
  977. </el-form-item>
  978. </el-col>
  979. </el-row>
  980. <el-row>
  981. <el-col :span="8">
  982. <el-form-item label="医院营收总额" prop="totalHosRevenue">
  983. <el-select
  984. v-model="form.basic.totalHosRevenue"
  985. placeholder="请输入医院营收总额"
  986. readonly
  987. >
  988. <el-option
  989. v-for="dict in dict.type.mk_bo_total_revenue"
  990. :key="dict.value"
  991. :label="dict.label"
  992. :value="dict.value"
  993. ></el-option>
  994. </el-select>
  995. <!-- <el-input v-model="form.basic.totalHosRevenue" placeholder="请输入医院营收总额" :disabled="true"/> -->
  996. </el-form-item>
  997. </el-col>
  998. <el-col :span="8">
  999. <!-- label="医院耗材预估值" -->
  1000. <el-form-item prop="hosDiscreetValue">
  1001. <template slot="label">
  1002. <el-tooltip class="item" effect="dark" content="Top Left 提示文字" placement="top-start">
  1003. <span>医院耗材预估值</span>
  1004. </el-tooltip>
  1005. </template>
  1006. <el-input
  1007. v-model="form.basic.hosDiscreetValue"
  1008. placeholder="请输入医院耗材预估值"
  1009. readonly
  1010. />
  1011. </el-form-item>
  1012. </el-col>
  1013. <el-col :span="8">
  1014. <el-form-item label="赢单率" prop="winningRate">
  1015. <el-input
  1016. v-model="form.basic.winningRate"
  1017. placeholder="赢单率"
  1018. readonly
  1019. />
  1020. </el-form-item>
  1021. </el-col>
  1022. </el-row>
  1023. <el-row>
  1024. <el-form-item label="商机内容" prop="boContent">
  1025. <el-input
  1026. v-model="form.basic.boContent"
  1027. placeholder="商机内容"
  1028. readonly
  1029. />
  1030. </el-form-item>
  1031. </el-row>
  1032. </el-form>
  1033. <!-- 其它信息 -->
  1034. <el-divider content-position="left">其它信息</el-divider>
  1035. <el-form ref="form" :model="form.basic" label-width="80px">
  1036. <el-row>
  1037. <el-col :span="8">
  1038. <el-form-item label="销售组织" prop="marketingOrganizingName">
  1039. <el-input
  1040. size="small"
  1041. readonly
  1042. v-model="form.basic.marketingOrganizingName"
  1043. placeholder=""
  1044. />
  1045. </el-form-item>
  1046. </el-col>
  1047. <el-col :span="8">
  1048. <el-form-item label="销售区域" prop="marketingAreaName">
  1049. <el-input
  1050. size="small"
  1051. readonly
  1052. v-model="form.basic.marketingAreaName"
  1053. placeholder=""
  1054. />
  1055. </el-form-item>
  1056. </el-col>
  1057. <el-col :span="8">
  1058. <el-form-item label="部门" prop="deptName">
  1059. <el-input
  1060. size="small"
  1061. readonly
  1062. v-model="form.basic.deptName"
  1063. placeholder=""
  1064. />
  1065. </el-form-item>
  1066. </el-col>
  1067. </el-row>
  1068. <el-row>
  1069. <el-col :span="8">
  1070. <el-form-item label="负责人" prop="principalName">
  1071. <el-input
  1072. size="small"
  1073. readonly
  1074. v-model="form.basic.principalName"
  1075. placeholder=""
  1076. />
  1077. </el-form-item>
  1078. </el-col>
  1079. <el-col :span="8">
  1080. <el-form-item label="创建人" prop="createBy">
  1081. <el-input
  1082. size="small"
  1083. readonly
  1084. v-model="form.basic.createBy"
  1085. placeholder=""
  1086. />
  1087. </el-form-item>
  1088. </el-col>
  1089. <el-col :span="8">
  1090. <el-form-item label="创建时间" prop="createTime">
  1091. <el-input
  1092. size="small"
  1093. readonly
  1094. v-model="form.basic.createTime"
  1095. placeholder=""
  1096. />
  1097. </el-form-item>
  1098. </el-col>
  1099. </el-row>
  1100. </el-form>
  1101. </el-tab-pane>
  1102. <!-- 商机任务页签 -->
  1103. <el-tab-pane label="商机任务" name="second">
  1104. <TaskList
  1105. :source="'BoDetails'"
  1106. :bo="this.form.basic"
  1107. v-if="masterTabs == 'second'"
  1108. />
  1109. </el-tab-pane>
  1110. <!-- 联系人页签 -->
  1111. <el-tab-pane label="商机联系人" name="third">
  1112. <ContactList
  1113. :source="'BoDetails'"
  1114. :bo="this.form.basic"
  1115. v-if="masterTabs == 'third'"
  1116. />
  1117. </el-tab-pane>
  1118. <!-- 附件页签 -->
  1119. <el-tab-pane label="附件信息" name="fourth">
  1120. <el-row :gutter="10" class="mb8">
  1121. <el-col :span="1.5">
  1122. <el-button
  1123. type="info"
  1124. plain
  1125. icon="el-icon-upload2"
  1126. size="mini"
  1127. @click="uploadAccessory(`list`)"
  1128. >上传</el-button
  1129. >
  1130. </el-col>
  1131. </el-row>
  1132. <el-table v-loading="loading" :data="form.accessory">
  1133. <el-table-column type="selection" width="55" align="center" />
  1134. <el-table-column
  1135. type="index"
  1136. label="序号"
  1137. width="55"
  1138. align="center"
  1139. />
  1140. <el-table-column label="名称" align="center" prop="fileName" />
  1141. <el-table-column
  1142. label="操作"
  1143. align="center"
  1144. class-name="small-padding fixed-width"
  1145. >
  1146. <template slot-scope="scope">
  1147. <el-row>
  1148. <el-col :span="1.5">
  1149. <el-button
  1150. size="mini"
  1151. type="text"
  1152. icon="el-icon-delete"
  1153. @click="deleteAccessory('list', scope.row)"
  1154. >删除</el-button
  1155. >
  1156. </el-col>
  1157. <el-col :span="1.5">
  1158. <el-button
  1159. type="warning"
  1160. plain
  1161. icon="el-icon-download"
  1162. size="mini"
  1163. @click="exportAccessory(scope.row.url, scope.row.fileName)"
  1164. >下载</el-button
  1165. >
  1166. </el-col>
  1167. </el-row>
  1168. </template>
  1169. </el-table-column>
  1170. </el-table>
  1171. </el-tab-pane>
  1172. </el-tabs>
  1173. <!-- 上传对话框 -->
  1174. <el-dialog
  1175. :title="upload.title"
  1176. :visible.sync="upload.open"
  1177. width="400px"
  1178. append-to-body
  1179. >
  1180. <el-upload
  1181. ref="upload"
  1182. :limit="1"
  1183. accept=".xlsx, .xls,.doc,docx"
  1184. :headers="upload.headers"
  1185. :action="upload.url + '?boId=' + form.basic.id + '&flag=' + upload.flag"
  1186. :disabled="upload.isUploading"
  1187. :on-progress="handleFileUploadProgress"
  1188. :on-success="handleFileSuccess"
  1189. :auto-upload="false"
  1190. drag
  1191. >
  1192. <i class="el-icon-upload"></i>
  1193. <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
  1194. </el-upload>
  1195. <div slot="footer" class="dialog-footer">
  1196. <el-button type="primary" @click="submitFileForm">确 定</el-button>
  1197. <el-button @click="upload.open = false">取 消</el-button>
  1198. </div>
  1199. </el-dialog>
  1200. </div>
  1201. </template>
  1202. <script>
  1203. import {
  1204. getBasic,
  1205. nextFlow,
  1206. updateBasicFlow,
  1207. delAccessory,
  1208. } from "@/api/business/spd/bo/basic";
  1209. import { listAccessory } from "@/api/business/spd/bo/accessory";
  1210. import { getToken } from "@/utils/auth";
  1211. import TaskList from "../task/taskList.vue";
  1212. import ContactList from "../contact/contactList.vue";
  1213. import PojpsnList from "../pojpsn/pojpsnList.vue";
  1214. import BehaviorList from "../behavior/behaviorList.vue";
  1215. import axios from "axios";
  1216. export default {
  1217. //名称
  1218. name: "BoDetails",
  1219. //注册引入的组件
  1220. components: { TaskList, ContactList, PojpsnList, BehaviorList },
  1221. //平台枚举
  1222. dicts: [
  1223. "mk_bo_type",
  1224. "mk_bo_state",
  1225. "mk_bo_winstate",
  1226. "mk_bo_source",
  1227. "mk_bo_total_revenue",
  1228. ],
  1229. //数据
  1230. data() {
  1231. return {
  1232. masterTabs: "first",
  1233. secondTabs: "jd1",
  1234. loading: false,
  1235. rules: {},
  1236. // 基本信息
  1237. form: {
  1238. basic: {},
  1239. accessory: [],
  1240. },
  1241. // 上传参数
  1242. upload: {
  1243. // 是否显示弹出层
  1244. open: false,
  1245. // 弹出层标题
  1246. title: "",
  1247. // 是否禁用上传
  1248. isUploading: false,
  1249. // 上传类型
  1250. flag: "",
  1251. // 设置上传的请求头部
  1252. headers: { Authorization: "Bearer " + getToken() },
  1253. // 上传的地址
  1254. url: process.env.VUE_APP_BASE_API + "/mk/bo/basic/upload",
  1255. },
  1256. //单据当前修改状态
  1257. isUpdate: false,
  1258. //控制页签是否显示参数
  1259. secondTabsName:{
  1260. jd1 : false,
  1261. jd2 : false,
  1262. lx : false,
  1263. xmry : false,
  1264. fa : false,
  1265. sq : false,
  1266. kc : false,
  1267. kh : false,
  1268. yn : false,
  1269. jc : false,
  1270. gw : false,
  1271. ht : false,
  1272. gj : false,
  1273. },
  1274. //查询跟进记录参数
  1275. behaviorParame:{
  1276. },
  1277. //当前查看的阶段是第几阶段,默认给个0吧。
  1278. showStage: 0,
  1279. //模板表格
  1280. tableData: [{
  1281. type: '标准立项书模板',
  1282. name: '说明:请联系部门商务',
  1283. }, {
  1284. type: '商机审会决议书',
  1285. name: '说明:请联系部门商务',
  1286. },],
  1287. tableData1: [{
  1288. type: '项目评估模板',
  1289. name: '说明: 请联系部门商务',
  1290. }, {
  1291. type: '售前模板',
  1292. name: '说明: 请联系事业发展部门商务',
  1293. },{
  1294. type: '售前调研模板',
  1295. name: 'xXxx医院SPD项目 售前调研表 下载',
  1296. },{
  1297. type: '投标参数模板',
  1298. name: '说明: 请联系事业发展商务',
  1299. },],
  1300. };
  1301. },
  1302. //监听属性
  1303. watch: {
  1304. //阶段
  1305. "form.basic.boStage": {
  1306. handler(newName, oldName) {
  1307. this.reST();
  1308. switch(newName) {
  1309. case 0:
  1310. this.secondTabs = 'jd1';
  1311. this.secondTabsName.jd1 = true;
  1312. this.secondTabsName.gj = true;
  1313. break;
  1314. case 1:
  1315. this.secondTabs = 'jd2';
  1316. this.secondTabsName.jd2 = true;
  1317. this.secondTabsName.lx = true;
  1318. this.secondTabsName.xmry = true;
  1319. this.secondTabsName.gj = true;
  1320. break;
  1321. case 2:
  1322. break;
  1323. case 3:
  1324. break;
  1325. case 4:
  1326. break;
  1327. case 5:
  1328. break;
  1329. case 6:
  1330. this.secondTabs = 'fa';
  1331. this.secondTabsName.fa = true;
  1332. this.secondTabsName.sq = true;
  1333. this.secondTabsName.kc = true;
  1334. this.secondTabsName.kh = true;
  1335. this.secondTabsName.yn = true;
  1336. this.secondTabsName.jc = true;
  1337. this.secondTabsName.gj = true;
  1338. break;
  1339. case 7:
  1340. this.secondTabs = 'gw';
  1341. this.secondTabsName.gw = true;
  1342. this.secondTabsName.ht = true;
  1343. this.secondTabsName.gj = true;
  1344. break;
  1345. case 8:
  1346. break;
  1347. case 9:
  1348. break;
  1349. case 10:
  1350. break;
  1351. case 11:
  1352. break;
  1353. case 12:
  1354. break;
  1355. default:
  1356. break;
  1357. }
  1358. },
  1359. immediate: true,
  1360. },
  1361. },
  1362. //方法
  1363. methods: {
  1364. // 返回
  1365. handleBack() {
  1366. this.$router.push("/business/spd/bo/basic");
  1367. },
  1368. //主多页签切换
  1369. masterTabsSwitch(e) {
  1370. console.log("主标签页切换", e);
  1371. switch (e.name) {
  1372. case "second":
  1373. //跟进记录
  1374. break;
  1375. case "third":
  1376. //获取联系人
  1377. break;
  1378. case "fourth":
  1379. //获取附件列表
  1380. listAccessory(this.form.basic.id).then((response) => {
  1381. this.form.accessory = response.rows;
  1382. });
  1383. break;
  1384. default:
  1385. break;
  1386. }
  1387. },
  1388. //次多页签切换
  1389. secondTabsSwitch(e) {
  1390. console.log('次标签页切换',e);
  1391. switch(e.name) {
  1392. case 'gj':
  1393. this.behaviorParame = JSON.parse(JSON.stringify(this.form.basic));
  1394. console.log('this.showStage',this.showStage)
  1395. this.behaviorParame.boStage = this.showStage;
  1396. //跟进记录
  1397. break;
  1398. default:
  1399. break;
  1400. }
  1401. },
  1402. //下一步
  1403. next() {
  1404. //设置跳过部分步骤
  1405. console.log();
  1406. if (this.form.basic.boStage < 12) {
  1407. var boStage = 0;
  1408. var boId = this.form.basic.id;
  1409. if (this.form.basic.boStage == 1) {
  1410. boStage = this.form.basic.boStage + 5;
  1411. } else if (this.form.basic.boStage == 7) {
  1412. boStage = this.form.basic.boStage + 5;
  1413. } else {
  1414. boStage = this.form.basic.boStage + 1;
  1415. }
  1416. this.$modal.confirm('确定要变更为下一阶段吗!').then(function() {
  1417. return nextFlow(boId, boStage);
  1418. }).then(() => {
  1419. getBasic(this.$route.params.id).then((response) => {
  1420. this.form.basic = response.data;
  1421. this.showStage = this.form.basic.boStage;
  1422. });
  1423. this.$modal.msgSuccess("流程扭转成功");
  1424. }).catch(() => {});
  1425. }
  1426. },
  1427. //页签全部收起
  1428. reST(){
  1429. this.secondTabsName = {
  1430. jd1 : false,
  1431. jd2 : false,
  1432. lx : false,
  1433. xmry : false,
  1434. fa : false,
  1435. sq : false,
  1436. kc : false,
  1437. kh : false,
  1438. yn : false,
  1439. jc : false,
  1440. gw : false,
  1441. ht : false,
  1442. gj : false,
  1443. }
  1444. },
  1445. //查看页签
  1446. viewingProcedure(stage) {
  1447. this.showStage = stage;
  1448. if(this.form.basic.boStage < stage){
  1449. this.$modal.alert("只能查看之前的阶段信息!");
  1450. }else{
  1451. this.reST();
  1452. switch(stage) {
  1453. case 0:
  1454. this.secondTabs = 'jd1';
  1455. this.secondTabsName.jd1 = true;
  1456. this.secondTabsName.gj = true;
  1457. break;
  1458. case 1:
  1459. this.secondTabs = 'jd2';
  1460. this.secondTabsName.jd2 = true;
  1461. this.secondTabsName.lx = true;
  1462. this.secondTabsName.xmry = true;
  1463. this.secondTabsName.gj = true;
  1464. break;
  1465. case 2:
  1466. break;
  1467. case 3:
  1468. break;
  1469. case 4:
  1470. break;
  1471. case 5:
  1472. break;
  1473. case 6:
  1474. this.secondTabs = 'fa';
  1475. this.secondTabsName.fa = true;
  1476. this.secondTabsName.sq = true;
  1477. this.secondTabsName.kc = true;
  1478. this.secondTabsName.kh = true;
  1479. this.secondTabsName.yn = true;
  1480. this.secondTabsName.jc = true;
  1481. this.secondTabsName.gj = true;
  1482. break;
  1483. case 7:
  1484. this.secondTabs = 'gw';
  1485. this.secondTabsName.gw = true;
  1486. this.secondTabsName.ht = true;
  1487. this.secondTabsName.gj = true;
  1488. break;
  1489. case 8:
  1490. break;
  1491. case 9:
  1492. break;
  1493. case 10:
  1494. break;
  1495. case 11:
  1496. break;
  1497. case 12:
  1498. break;
  1499. default:
  1500. break;
  1501. }
  1502. }
  1503. },
  1504. //上传附件公共方法
  1505. uploadAccessory(f) {
  1506. // this.upload.title = "上传附件";
  1507. this.upload.open = true;
  1508. this.upload.flag = f;
  1509. },
  1510. // 提交上传文件
  1511. submitFileForm() {
  1512. this.$refs.upload.submit();
  1513. },
  1514. // 文件上传中处理
  1515. handleFileUploadProgress(event, file, fileList) {
  1516. this.upload.isUploading = true;
  1517. },
  1518. // 文件上传成功处理
  1519. handleFileSuccess(response, file, fileList) {
  1520. this.upload.open = false;
  1521. this.upload.isUploading = false;
  1522. this.$refs.upload.clearFiles();
  1523. this.$alert(
  1524. "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
  1525. response.msg +
  1526. "</div>",
  1527. "上传结果",
  1528. { dangerouslyUseHTMLString: true }
  1529. );
  1530. if (this.upload.flag == "list") {
  1531. listAccessory(this.form.basic.id).then((response) => {
  1532. this.form.accessory = response.rows;
  1533. });
  1534. } else {
  1535. getBasic(this.$route.params.id).then((response) => {
  1536. this.form.basic = response.data;
  1537. });
  1538. }
  1539. },
  1540. //下载附件
  1541. exportAccessory(urlId, fileName) {
  1542. let resUrl =
  1543. "https://test-sy.derom.com/document-center/fastdfs/download?id=" +
  1544. urlId;
  1545. axios
  1546. .create({
  1547. timeout: 3000,
  1548. responseType: "blob", // 响应类型, 将响应数据转换为二进制数据
  1549. headers: {},
  1550. })
  1551. .get(resUrl)
  1552. .then((res) => {
  1553. console.log(res);
  1554. // 地址转换
  1555. let url = window.URL.createObjectURL(res.data);
  1556. const a = document.createElement("a");
  1557. a.setAttribute("href", url);
  1558. a.setAttribute("download", fileName);
  1559. document.body.append(a);
  1560. a.click();
  1561. document.body.removeChild(a);
  1562. });
  1563. },
  1564. //删除附件
  1565. deleteAccessory(f, row) {
  1566. console.log("flag", f);
  1567. console.log("row", row);
  1568. this.$modal
  1569. .confirm("是否确认删除?")
  1570. .then(function () {})
  1571. .then(() => {
  1572. delAccessory(this.form.basic.id, f, row.id).then((res) => {
  1573. if (res.code == 200) {
  1574. if (this.upload.flag == "list") {
  1575. listAccessory(this.form.basic.id).then((response) => {
  1576. this.form.accessory = response.rows;
  1577. });
  1578. } else {
  1579. getBasic(this.$route.params.id).then((response) => {
  1580. this.form.basic = response.data;
  1581. });
  1582. }
  1583. this.$modal.msgSuccess("删除成功");
  1584. } else {
  1585. this.$modal.msgSuccess("删除失败");
  1586. }
  1587. });
  1588. })
  1589. .catch(() => {});
  1590. },
  1591. //修改按钮
  1592. modifyButton() {
  1593. this.isUpdate = true;
  1594. },
  1595. //取消按钮
  1596. cancelButton() {
  1597. this.isUpdate = false;
  1598. getBasic(this.$route.params.id).then((response) => {
  1599. this.form.basic = response.data;
  1600. });
  1601. },
  1602. //保存按钮
  1603. saveButton() {
  1604. console.log("this.form.basic.boFlow", this.form.basic.boFlow);
  1605. updateBasicFlow(this.form.basic.boFlow).then((response) => {
  1606. this.$modal.msgSuccess("修改成功");
  1607. this.isUpdate = false;
  1608. getBasic(this.$route.params.id).then((response) => {
  1609. this.form.basic = response.data;
  1610. });
  1611. });
  1612. },
  1613. },
  1614. //创建钩子
  1615. created() {
  1616. getBasic(this.$route.params.id).then((response) => {
  1617. this.form.basic = response.data;
  1618. });
  1619. },
  1620. };
  1621. </script>
  1622. <style scoped>
  1623. .md-content >>> .el-form-item {
  1624. margin-bottom: 10px;
  1625. }
  1626. .md-content >>> .el-tabs--border-card > .el-tabs__content {
  1627. padding-bottom: 8px;
  1628. }
  1629. .md-content .md-auditInfo >>> .el-form-item {
  1630. margin-bottom: 0px;
  1631. }
  1632. .md-main >>> .el-form-item,
  1633. .md-vice >>> .el-form-item {
  1634. width: 100%;
  1635. box-sizing: border-box;
  1636. }
  1637. .md-main >>> .el-form-item__label,
  1638. .md-vice >>> .el-form-item__label {
  1639. width: 40%;
  1640. }
  1641. .md-main >>> .el-form-item__content,
  1642. .md-md-vice >>> .el-form-item__content {
  1643. width: 60%;
  1644. }
  1645. .md-content >>> .el-form-item__label {
  1646. font-weight: normal;
  1647. /* text-align: left;
  1648. width: 28%; */
  1649. white-space: nowrap;
  1650. /* IE6 需要定义宽度 */
  1651. overflow: hidden;
  1652. -o-text-overflow: ellipsis;
  1653. /* Opera */
  1654. text-overflow: ellipsis;
  1655. /* IE, Safari (WebKit) */
  1656. /* -moz-binding: url('ellipsis.xml#ellipsis'); */
  1657. /* Firefox */
  1658. }
  1659. .md-main >>> .material-table {
  1660. height: 100%;
  1661. }
  1662. .md-vice >>> .material-table {
  1663. height: 140px;
  1664. overflow-y: auto;
  1665. overflow-x: auto;
  1666. }
  1667. </style>