contactDetailDialog.vue 44 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508
  1. <template>
  2. <ele-modal
  3. custom-class="ele-dialog-form long-dialog-form"
  4. :centered="true"
  5. v-if="visible"
  6. :visible.sync="visible"
  7. :title="title"
  8. :close-on-click-modal="false"
  9. append-to-body
  10. width="70%"
  11. @close="cancel"
  12. >
  13. <el-tabs v-model="activeName" type="card" @tab-click="handleActive">
  14. <el-tab-pane label="基本信息" name="base">
  15. <headerTitle title="基本信息" style="margin-top: 30px"></headerTitle>
  16. <el-form
  17. label-width="120px"
  18. ref="formRef"
  19. :model="form">
  20. <el-row>
  21. <el-col :span="8">
  22. <el-form-item
  23. label="生产厂家分类:"
  24. prop="categoryId">
  25. <el-input v-model="form.categoryName" disabled></el-input>
  26. </el-form-item>
  27. </el-col>
  28. <el-col :span="8">
  29. <el-form-item label="名称:" prop="name">
  30. <el-input v-model="form.name" disabled></el-input>
  31. </el-form-item>
  32. </el-col>
  33. <el-col :span="8">
  34. <el-form-item label="生产厂家代号:" prop="serialNo">
  35. <el-input v-model="form.serialNo" disabled></el-input>
  36. </el-form-item>
  37. </el-col>
  38. </el-row>
  39. <el-row>
  40. <el-col :span="8">
  41. <el-form-item label="生产厂家简称:" prop="simpleName">
  42. <el-input v-model="form.simpleName" disabled></el-input>
  43. </el-form-item>
  44. </el-col>
  45. <el-col :span="8">
  46. <el-form-item label="法定代表人:" prop="legalPerson">
  47. <el-input v-model="form.legalPerson" disabled></el-input>
  48. </el-form-item>
  49. </el-col>
  50. <el-col :span="8">
  51. <el-form-item label="注册资金:" prop="registeredCapital">
  52. <el-input v-model="form.registeredCapital" disabled></el-input>
  53. </el-form-item>
  54. </el-col>
  55. </el-row>
  56. <el-row>
  57. <el-col :span="8">
  58. <el-form-item label="授信额度:" prop="authorizationLimit">
  59. <el-input v-model="form.authorizationLimit" disabled></el-input>
  60. </el-form-item>
  61. </el-col>
  62. <el-col :span="8">
  63. <el-form-item label="单位电话:" prop="phone">
  64. <el-input v-model="form.phone" disabled></el-input>
  65. </el-form-item>
  66. </el-col>
  67. <el-col :span="8">
  68. <el-form-item label="地址:" prop="addressId">
  69. <el-input v-model="form.addressName" disabled></el-input>
  70. </el-form-item>
  71. </el-col>
  72. </el-row>
  73. <el-row>
  74. <el-col :span="8">
  75. <el-form-item label="详细地址:" prop="address">
  76. <el-input v-model="form.address" disabled></el-input>
  77. </el-form-item>
  78. </el-col>
  79. <el-col :span="8">
  80. <el-form-item
  81. label="统一社会信用代码:"
  82. prop="unifiedSocialCreditCode"
  83. class="form_item_label"
  84. >
  85. <el-input v-model="form.unifiedSocialCreditCode" disabled></el-input>
  86. </el-form-item>
  87. </el-col>
  88. <el-col :span="8">
  89. <el-form-item label="所属行业:" prop="industry">
  90. <el-input v-model="form.industryFullName" disabled></el-input>
  91. </el-form-item>
  92. </el-col>
  93. </el-row>
  94. <el-row>
  95. <el-col :span="8">
  96. <el-form-item label="营业类型:" prop="companyCategoryId">
  97. <el-input v-model="form.companyCategoryName" disabled></el-input>
  98. </el-form-item>
  99. </el-col>
  100. <el-col :span="8">
  101. <el-form-item label="登记日期:" prop="registerDate">
  102. <el-input v-model="form.registerDate" disabled></el-input>
  103. </el-form-item>
  104. </el-col>
  105. <el-col :span="8">
  106. <el-form-item label="经营范围:" prop="businessScope">
  107. <el-input v-model="form.businessScope" disabled></el-input>
  108. </el-form-item>
  109. </el-col>
  110. </el-row>
  111. <el-row>
  112. <el-col :span="8">
  113. <el-form-item label="主营产品:" prop="mainProduct">
  114. <el-input v-model="form.mainProduct" disabled></el-input>
  115. </el-form-item>
  116. </el-col>
  117. <el-col :span="8">
  118. <el-form-item
  119. label="是否存在上级集团公司:"
  120. prop="hasParentGroup"
  121. class="form_item_label">
  122. <el-input :value=" form.hasParentGroup === 1 ? '是' : '否'" disabled></el-input>
  123. </el-form-item>
  124. </el-col>
  125. <el-col :span="8">
  126. <el-form-item label="级别:" >
  127. <DictSelection dictName="生产厂家级别" disabled clearable v-model="form.level">
  128. </DictSelection>
  129. </el-form-item>
  130. </el-col>
  131. </el-row>
  132. <el-row>
  133. <el-col :span="16">
  134. <el-form-item label="备注:" prop="remark">
  135. <el-input v-model="form.remark" disabled type="textarea"></el-input>
  136. </el-form-item>
  137. </el-col>
  138. <el-col :span="8">
  139. <el-form-item prop="businessLicenseFile" label="营业执照附件:">
  140. <fileMain v-model="form.businessLicenseFiles" type="view"></fileMain>
  141. <!-- <el-link v-if="form.businessLicenseFile && form.businessLicenseFile !== ''"-->
  142. <!-- type="primary" :underline="false"-->
  143. <!-- @click="downloadFile(form.businessLicenseFile)"> {{ form.businessLicenseFile.name }}-->
  144. <!-- </el-link>-->
  145. </el-form-item>
  146. </el-col>
  147. </el-row>
  148. </el-form>
  149. <headerTitle title="银行信息" style="margin-top: 30px"></headerTitle>
  150. <ele-pro-table
  151. ref="table"
  152. :columns="bankColumns"
  153. :datasource="tableBankData"
  154. height="350px"
  155. :toolkit="[]"
  156. :need-page="false"
  157. >
  158. <template v-slot:accountNameHeader="{ column }">
  159. <span>{{ column.label }}</span><span style="color:red">*</span>
  160. </template>
  161. <template v-slot:accountName="{ row }">
  162. {{ row.accountName }}
  163. </template>
  164. <template v-slot:accountNo="{ row }">
  165. {{ row.accountNo }}
  166. </template>
  167. <template v-slot:bankName="{ row }">
  168. {{ row.bankName }}
  169. </template>
  170. <template v-slot:interbankNo="{ row }">
  171. {{ row.interbankNo }}
  172. </template>
  173. </ele-pro-table>
  174. <headerTitle title="联系人信息" style="margin-top: 30px"></headerTitle>
  175. <ele-pro-table
  176. ref="linkTable"
  177. :columns="linkColumns"
  178. :datasource="tableLinkData"
  179. :toolkit="[]"
  180. height="350px"
  181. :need-page="false"
  182. >
  183. <template v-slot:linkNameHeader="{ column }">
  184. <span>{{ column.label }}</span><span style="color:red">*</span>
  185. </template>
  186. <template v-slot:mobilePhoneHeader="{ column }">
  187. <span>{{ column.label }}</span><span style="color:red">*</span>
  188. </template>
  189. <template v-slot:statusHeader="{ column }">
  190. <span>{{ column.label }}</span><span style="color:red">*</span>
  191. </template>
  192. <template v-slot:linkName="{ row }">
  193. {{ row.linkName }}
  194. </template>
  195. <template v-slot:mobilePhone="{ row }">
  196. {{ row.mobilePhone }}
  197. </template>
  198. <template v-slot:phone="{ row }">
  199. {{ row.phone }}
  200. </template>
  201. <template v-slot:email="{ row }">
  202. {{ row.email }}
  203. </template>
  204. <template v-slot:post="{ row }">
  205. {{ row.post }}
  206. </template>
  207. <template v-slot:ifChief="{ row, $index }">
  208. <el-select v-model="row.ifChief" class="w100" disabled>
  209. <el-option
  210. v-for="item in ifChiefList"
  211. :key="item.value"
  212. :label="item.label"
  213. :value="item.value"
  214. ></el-option>
  215. </el-select>
  216. </template>
  217. <template v-slot:status="{ row }">
  218. <DictSelection
  219. dictName="联系人状态"
  220. v-model="row.status"
  221. :disabled="true"
  222. ></DictSelection>
  223. </template>
  224. <template v-slot:remark="{ row }">
  225. {{ row.remark }}
  226. </template>
  227. </ele-pro-table>
  228. <headerTitle title="其他信息" style="margin-top: 30px"></headerTitle>
  229. <el-form
  230. label-width="130px"
  231. ref="otherFormRef"
  232. :model="otherForm"
  233. style="margin-top: 30px"
  234. >
  235. <el-row>
  236. <el-col :span="8">
  237. <el-form-item label="结算方式:" prop="settlementMode">
  238. <el-input v-model="otherForm.settlementModeName" disabled></el-input>
  239. </el-form-item>
  240. </el-col>
  241. <el-col :span="8">
  242. <el-form-item label="税率:" prop="taxRate">
  243. <el-input v-model="otherForm.taxRate" disabled>
  244. <template v-slot:append>%</template>
  245. </el-input>
  246. </el-form-item>
  247. </el-col>
  248. <el-col :span="8">
  249. <el-form-item label="折扣率:" prop="discount">
  250. <el-input v-model="otherForm.discount" disabled>
  251. <template v-slot:append>%</template>
  252. </el-input>
  253. </el-form-item>
  254. </el-col>
  255. <!-- <el-col :span="8">
  256. <el-form-item
  257. label="分管部门:"
  258. prop="deptId"
  259. style="margin-bottom: 22px"
  260. >
  261. {{otherForm.deptName}}
  262. </el-form-item>
  263. </el-col>
  264. <el-col :span="8">
  265. <el-form-item label="业务员:" prop="salesmanId">
  266. {{otherForm.salesmanName}}
  267. </el-form-item>
  268. </el-col> -->
  269. <el-col :span="8">
  270. <el-form-item label="寄件人:" prop="sender">
  271. <el-input v-model="otherForm.sender" disabled></el-input>
  272. </el-form-item>
  273. </el-col>
  274. <el-col :span="8">
  275. <el-form-item label="寄件人电话:" prop="senderPhone">
  276. <el-input v-model="otherForm.senderPhone" disabled></el-input>
  277. </el-form-item>
  278. </el-col>
  279. <el-col :span="8">
  280. <el-form-item label="寄件人地址:" prop="addressId">
  281. <el-input v-model="otherForm.addressName" disabled></el-input>
  282. </el-form-item>
  283. </el-col>
  284. <el-col :span="8">
  285. <el-form-item label="寄件人详细地址:" prop="address">
  286. <el-input v-model="otherForm.address" disabled></el-input>
  287. </el-form-item>
  288. </el-col>
  289. </el-row>
  290. </el-form>
  291. </el-tab-pane>
  292. <!-- <el-tab-pane label="银行信息" name="bank">-->
  293. <!-- -->
  294. <!-- </el-tab-pane>-->
  295. <!-- <el-tab-pane label="联系人信息" name="link">-->
  296. <!-- -->
  297. <!-- </el-tab-pane>-->
  298. <!-- <el-tab-pane label="其他信息" name="other">-->
  299. <!-- </el-tab-pane>-->
  300. <el-tab-pane label="生产列表" name="supply">
  301. <headerTitle title="生产列表" style="margin-top: 30px"></headerTitle>
  302. <ele-pro-table ref="supplyRef" :columns="supplyColumns" :need-page="false"
  303. :datasource="supplyList"
  304. :toolkit="[]" height="350px">
  305. </ele-pro-table>
  306. </el-tab-pane>
  307. <el-tab-pane label="证书资质" name="certificate">
  308. <headerTitle title="证书资质" style="margin-top: 30px"></headerTitle>
  309. <ele-pro-table ref="certificateTable" :columns="certificateColumns" :needPage="false" :datasource="tableCertificateData"
  310. :toolkit="[]" height="350px">
  311. <!-- 操作栏 -->
  312. <template v-slot:action="scope">
  313. <el-link
  314. v-if="[1,2].includes(scope.row.approvalStatus)"
  315. type="primary"
  316. :underline="false"
  317. icon="el-icon-edit"
  318. @click="addCertificate('view',scope.row)">
  319. 详情
  320. </el-link>
  321. </template>
  322. </ele-pro-table>
  323. </el-tab-pane>
  324. <el-tab-pane label="订单记录" name="order">
  325. <headerTitle title="订单记录" style="margin-top: 30px"></headerTitle>
  326. <div class="ele-border-lighter form-content">
  327. <!-- 数据表格 -->
  328. <ele-pro-table
  329. ref="table"
  330. :columns="orderColumns"
  331. :datasource="orderDatasource"
  332. height="calc(100vh - 520px)"
  333. style="margin-bottom: 10px"
  334. full-height="calc(100vh - 116px)"
  335. tool-class="ele-toolbar-form"
  336. cache-key="eomContactPageTable">
  337. <!-- 查看详情列 -->
  338. <!-- 查看详情列 -->
  339. <template v-slot:contractNo="{ row }">
  340. <el-link
  341. type="primary"
  342. :underline="false"
  343. @click="opencontractDetail(row)"
  344. >
  345. {{ row.contractNo }}
  346. </el-link
  347. >
  348. </template>
  349. <template v-slot:orderNo="{ row }">
  350. <el-link
  351. type="primary"
  352. :underline="false"
  353. @click="openorderDetail(row)"
  354. >
  355. {{ row.orderNo }}
  356. </el-link
  357. >
  358. </template>
  359. </ele-pro-table>
  360. </div>
  361. </el-tab-pane>
  362. <el-tab-pane label="收货记录" name="send">
  363. <headerTitle title="收货记录" style="margin-top: 30px"></headerTitle>
  364. <div class="ele-border-lighter form-content" >
  365. <!-- 数据表格 -->
  366. <ele-pro-table
  367. ref="table"
  368. :columns="sendColumns"
  369. :datasource="sendDatasource"
  370. height="calc(100vh - 520px)"
  371. style="margin-bottom: 10px"
  372. full-height="calc(100vh - 116px)"
  373. tool-class="ele-toolbar-form"
  374. cache-key="eomContactPageTable"
  375. >
  376. <!-- 查看详情列 -->
  377. <template v-slot:receiveNo="{ row }">
  378. <el-link
  379. type="primary"
  380. :underline="false"
  381. @click="openorderDetail(row, 'receiveNo')"
  382. >
  383. {{ row.receiveNo }}
  384. </el-link
  385. >
  386. </template>
  387. <template v-slot:orderNo="{ row }">
  388. <el-link
  389. type="primary"
  390. :underline="false"
  391. @click="openorderDetail(row, 'orderNo')"
  392. >
  393. {{ row.orderNo }}
  394. </el-link
  395. >
  396. </template>
  397. </ele-pro-table>
  398. </div>
  399. </el-tab-pane>
  400. <el-tab-pane label="退货记录" name="return">
  401. <headerTitle title="退货记录" style="margin-top: 30px"></headerTitle>
  402. <div class="ele-border-lighter form-content">
  403. <!-- 数据表格 -->
  404. <ele-pro-table
  405. ref="table"
  406. :columns="returnColumns"
  407. :datasource="returnDatasource"
  408. height="calc(100vh - 520px)"
  409. style="margin-bottom: 10px"
  410. full-height="calc(100vh - 116px)"
  411. tool-class="ele-toolbar-form"
  412. cache-key="eomContactPageTable">
  413. <!-- 查看详情列 -->
  414. <template v-slot:returnNo="{ row }">
  415. <el-link
  416. type="primary"
  417. :underline="false"
  418. @click="openorderDetail(row, 'returnNo')">
  419. {{ row.returnNo }}</el-link>
  420. </template>
  421. <template v-slot:receiveNo="{ row }">
  422. <el-link
  423. type="primary"
  424. :underline="false"
  425. @click="openorderDetail(row, 'sendNo')"
  426. >
  427. {{ row.receiveId }}</el-link
  428. >
  429. </template>
  430. <template v-slot:orderNo="{ row }">
  431. <el-link
  432. type="primary"
  433. :underline="false"
  434. @click="openorderDetail(row, 'orderNo')"
  435. >
  436. {{ row.orderNo }}</el-link
  437. >
  438. </template>
  439. </ele-pro-table>
  440. </div>
  441. </el-tab-pane>
  442. <el-tab-pane label="对账记录" name="reconciliation">
  443. <headerTitle title="对账记录" style="margin-top: 30px"></headerTitle>
  444. <div class="ele-border-lighter form-content">
  445. <!-- 数据表格 -->
  446. <ele-pro-table
  447. ref="table"
  448. :columns="reconciliationColumns"
  449. :datasource="reconciliationDatasource"
  450. height="calc(100vh - 520px)"
  451. style="margin-bottom: 10px"
  452. full-height="calc(100vh - 116px)"
  453. tool-class="ele-toolbar-form"
  454. cache-key="eomContactPageTable">
  455. <!-- 查看详情列 -->
  456. <template v-slot:statementNo="{ row }">
  457. <el-link type="primary" :underline="false" @click="openorderDetail(row,'statementNo')"> {{
  458. row.statementNo
  459. }}
  460. </el-link>
  461. </template>
  462. <template v-slot:orderNo="{ row }">
  463. <el-link type="primary" :underline="false" @click="openorderDetail(row,'orderNo')"> {{
  464. row.orderNo
  465. }}
  466. </el-link>
  467. </template>
  468. </ele-pro-table>
  469. </div>
  470. </el-tab-pane>
  471. <el-tab-pane label="开票记录" name="invoice">
  472. <headerTitle title="开票记录" style="margin-top: 30px"></headerTitle>
  473. <el-card shadow="never" >
  474. <!-- 数据表格 -->
  475. <ele-pro-table
  476. ref="table"
  477. :columns="invoiceColumns"
  478. :datasource="invoiceDatasource"
  479. height="calc(100vh - 520px)"
  480. tool-class="ele-toolbar-form"
  481. cache-key="eomContactPageTable"
  482. >
  483. <!-- 收款信息 -->
  484. <template v-slot:code="{row}">
  485. <el-link
  486. type="primary"
  487. :underline="false"
  488. @click="handleDetail(row,'view')">
  489. {{ row.code }}
  490. </el-link>
  491. </template>
  492. <!-- 开票信息 -->
  493. <template v-slot:invoiceCode="{row}">
  494. <el-link
  495. type="primary"
  496. :underline="false"
  497. @click="handleInvoiceDetail(row,'view')">
  498. {{ row.invoiceCode }}
  499. </el-link>
  500. </template>
  501. </ele-pro-table>
  502. </el-card>
  503. </el-tab-pane>
  504. </el-tabs>
  505. <div slot="footer" class="footer">
  506. <el-button @click="cancel">返回</el-button>
  507. </div>
  508. <!-- 资质证书弹窗 -->
  509. <certificate-qualifications-dialog
  510. :certificate-qualifications-dialog-flag.sync="certificateQualificationsDialogFlag"
  511. v-if="certificateQualificationsDialogFlag"
  512. ref="certificateQualificationsDialogRef"
  513. :contactId="form.id"
  514. @reload="reload">
  515. </certificate-qualifications-dialog>
  516. </ele-modal>
  517. </template>
  518. <script>
  519. import {contactDetail, contactQcPackPageAPI} from '@/api/saleManage/contact';
  520. import {getFile} from '@/api/system/file';
  521. import {getInfoByIds as getCategoryInfo} from '@/api/classifyManage/index';
  522. import fileUpload from '@/components/upload/fileUpload';
  523. import dictMixins from '@/mixins/dictMixins';
  524. import deptSelect from '@/components/CommomSelect/dept-select.vue';
  525. import personSelect from '@/components/CommomSelect/person-select.vue';
  526. import {copyObj} from '@/utils/util';
  527. import {reviewStatus, reviewStatusEnum} from "@/enum/dict";
  528. import certificateQualificationsDialog
  529. from "@/views/purchasingManage/supplierManage/components/certificateQualificationsDialog.vue";
  530. import {getTableList} from '@/api/purchasingManage/purchaseOrder';
  531. import {getReceiveTableList} from "@/api/purchasingManage/purchaseorderreceive";
  532. import {getReturnTableList} from "@/api/purchasingManage/returnGoods";
  533. import {getAccountstatementList} from "@/api/saleManage/accountstatement";
  534. import {finPayablePageListAPI} from "@/api/financialManage/payableManage";
  535. import fileMain from "@/components/addDoc/index.vue";
  536. export default {
  537. props: {
  538. categoryTreeList: Array
  539. },
  540. mixins: [dictMixins],
  541. components: {
  542. fileMain,
  543. certificateQualificationsDialog,
  544. fileUpload,
  545. deptSelect,
  546. personSelect
  547. },
  548. data() {
  549. let formDef = {
  550. address: '',
  551. addressId: 0,
  552. addressName: '',
  553. authorizationLimit: 0,
  554. businessLicenseFile: {},
  555. businessScope: '',
  556. categoryId: '',
  557. categoryName: '',
  558. companyCategoryId: '',
  559. companyCategoryName: '',
  560. hasParentGroup: 0,
  561. industry: '',
  562. industryCode: '',
  563. industryFullName: '',
  564. mainProduct: '',
  565. name: '',
  566. officialIndustry: '',
  567. phone: '',
  568. registerDate: '',
  569. legalPerson: '',
  570. registeredCapital: '',
  571. remark: '',
  572. serialNo: '',
  573. simpleName: '',
  574. type: 1,
  575. unifiedSocialCreditCode: ''
  576. };
  577. let otherFormDef = {
  578. settlementMode: '',
  579. settlementModeName: '',
  580. taxRate: 0,
  581. address: '',
  582. addressId: '',
  583. deptId: '',
  584. deptName: '',
  585. discount: 0,
  586. salesmanId: '',
  587. salesmanName: '',
  588. sender: '',
  589. senderPhone: ''
  590. };
  591. return {
  592. visible: false,
  593. certificateQualificationsDialogFlag: false,
  594. title: '生产厂家详情',
  595. row: {},
  596. activeName: 'base',
  597. formDef,
  598. otherFormDef,
  599. form: copyObj(formDef),
  600. otherForm: copyObj(otherFormDef),
  601. tableBankData: [],
  602. tableLinkData: [],
  603. supplyList: [],
  604. ifChiefList: [
  605. {
  606. value: 0,
  607. label: '否'
  608. },
  609. {
  610. value: 1,
  611. label: '是'
  612. }
  613. ],
  614. statusList: [
  615. {
  616. label: '未收款',
  617. value: 0
  618. },
  619. {
  620. label: '部分收款',
  621. value: 1
  622. },
  623. {
  624. label: '已收全款',
  625. value: 2
  626. }
  627. ],
  628. bankColumns: [
  629. {
  630. type: 'index',
  631. width: 55,
  632. align: 'center'
  633. },
  634. {
  635. label: '单位名称',
  636. prop: 'accountName',
  637. slot: 'accountName',
  638. action: 'accountName',
  639. headerSlot: 'accountNameHeader',
  640. align: 'center'
  641. },
  642. {
  643. label: '银行账号',
  644. prop: 'accountNo',
  645. slot: 'accountNo',
  646. action: 'accountNo',
  647. align: 'center'
  648. },
  649. {
  650. label: '开户行',
  651. prop: 'bankName',
  652. slot: 'bankName',
  653. action: 'bankName',
  654. align: 'center'
  655. },
  656. {
  657. label: '银行银联号',
  658. prop: 'interbankNo',
  659. slot: 'interbankNo',
  660. action: 'interbankNo',
  661. align: 'center'
  662. },
  663. ],
  664. linkColumns: [
  665. {
  666. type: 'index',
  667. width: 55,
  668. align: 'center'
  669. },
  670. {
  671. label: '姓名',
  672. prop: 'linkName',
  673. slot: 'linkName',
  674. action: 'linkName',
  675. headerSlot: 'linkNameHeader',
  676. align: 'center'
  677. },
  678. {
  679. label: '手机',
  680. prop: 'mobilePhone',
  681. slot: 'mobilePhone',
  682. action: 'mobilePhone',
  683. headerSlot: 'mobilePhoneHeader',
  684. align: 'center'
  685. },
  686. {
  687. label: '电话',
  688. prop: 'phone',
  689. slot: 'phone',
  690. action: 'phone',
  691. align: 'center'
  692. },
  693. {
  694. label: '微信号',
  695. prop: 'wechat',
  696. slot: 'wechat',
  697. action: 'wechat',
  698. align: 'center'
  699. },
  700. {
  701. label: '邮箱',
  702. prop: 'email',
  703. slot: 'email',
  704. action: 'email',
  705. align: 'center'
  706. },
  707. {
  708. label: '职务',
  709. prop: 'post',
  710. slot: 'post',
  711. action: 'post',
  712. align: 'center'
  713. },
  714. {
  715. label: '状态',
  716. prop: 'status',
  717. slot: 'status',
  718. action: 'status',
  719. headerSlot: 'statusHeader',
  720. align: 'center'
  721. },
  722. {
  723. label: '是否首要',
  724. prop: 'ifChief',
  725. slot: 'ifChief',
  726. action: 'ifChief',
  727. align: 'center'
  728. },
  729. {
  730. label: '备注',
  731. prop: 'remark',
  732. slot: 'remark',
  733. action: 'remark',
  734. align: 'center'
  735. },
  736. ],
  737. certificateColumns: [
  738. {
  739. type: 'index',
  740. width: 55,
  741. align: 'center'
  742. },
  743. {
  744. label: '编码',
  745. prop: 'code',
  746. slot: 'code',
  747. align: "center",
  748. minWidth: 120
  749. },
  750. {
  751. label: '名称',
  752. prop: 'name',
  753. slot: 'name',
  754. align: "center",
  755. minWidth: 120
  756. },
  757. {
  758. label: '创建人',
  759. prop: 'createUserName',
  760. slot: 'createUserName',
  761. align: "center",
  762. width: 120
  763. },
  764. {
  765. label: '创建时间',
  766. prop: 'createTime',
  767. slot: 'createTime',
  768. align: "center",
  769. minWidth: 120
  770. },
  771. {
  772. label: '状态',
  773. prop: 'approvalStatus',
  774. slot: 'approvalStatus',
  775. align: "center",
  776. width: 120,
  777. formatter: (_row, _column, cellValue) => {
  778. return reviewStatus[_row.approvalStatus];
  779. }
  780. },
  781. {
  782. label: '备注',
  783. prop: 'remark',
  784. slot: 'remark',
  785. align: "center",
  786. minWidth: 120
  787. },
  788. {
  789. action: 'action',
  790. slot: 'action',
  791. label: '操作',
  792. align: "center",
  793. }
  794. ],
  795. orderColumns: [
  796. {
  797. columnKey: 'index',
  798. label: '序号',
  799. type: 'index',
  800. width: 55,
  801. align: 'center',
  802. showOverflowTooltip: true,
  803. },
  804. {
  805. prop: 'orderNo',
  806. label: '订单编码',
  807. sortable: true,
  808. align: 'center',
  809. slot: 'orderNo',
  810. showOverflowTooltip: true,
  811. minWidth: 200
  812. },
  813. {
  814. prop: 'contractNo',
  815. label: '合同编码',
  816. sortable: true,
  817. align: 'center',
  818. slot: 'contractNo',
  819. showOverflowTooltip: true,
  820. minWidth: 250
  821. },
  822. // {
  823. // prop: 'deliveryDate',
  824. // label: '交货日期',
  825. // align: 'center',
  826. // showOverflowTooltip: true,
  827. // minWidth: 200
  828. // },
  829. // {
  830. // prop: 'purchaseTypeName',
  831. // label: '采购订单类型',
  832. // align: 'center',
  833. // showOverflowTooltip: true,
  834. // minWidth: 140
  835. // },
  836. {
  837. prop: 'partaName',
  838. label: '采购方名称',
  839. align: 'center',
  840. showOverflowTooltip: true,
  841. minWidth: 200
  842. },
  843. {
  844. prop: 'partaLinkName',
  845. label: '采购方联系人',
  846. align: 'center',
  847. showOverflowTooltip: true,
  848. minWidth: 130
  849. },
  850. {
  851. prop: 'partaTel',
  852. label: '采购方联系电话',
  853. align: 'center',
  854. showOverflowTooltip: true,
  855. minWidth: 130
  856. },
  857. // {
  858. // prop: 'partbName',
  859. // label: '名称',
  860. // align: 'center',
  861. // showOverflowTooltip: true,
  862. // minWidth: 250
  863. // },
  864. {
  865. prop: 'partbLinkName',
  866. label: '生产厂家联系人',
  867. align: 'center',
  868. showOverflowTooltip: true,
  869. minWidth: 120
  870. },
  871. {
  872. prop: 'partbTel',
  873. label: '生产厂家联系电话',
  874. align: 'center',
  875. showOverflowTooltip: true,
  876. minWidth: 130
  877. },
  878. {
  879. prop: 'payAmount',
  880. label: '应付金额(元)',
  881. align: 'center',
  882. showOverflowTooltip: true,
  883. minWidth: 140
  884. },
  885. {
  886. prop: 'createTime',
  887. label: '创建时间',
  888. align: 'center',
  889. showOverflowTooltip: true,
  890. minWidth: 170
  891. },
  892. {
  893. prop: 'orderStatus',
  894. label: '审核状态',
  895. align: 'center',
  896. showOverflowTooltip: true,
  897. minWidth: 100,
  898. formatter: (_row, _column, cellValue) => {
  899. return reviewStatus[_row.orderStatus];
  900. }
  901. }
  902. ],
  903. sendColumns: [
  904. {
  905. columnKey: 'index',
  906. label: '序号',
  907. type: 'index',
  908. width: 55,
  909. align: 'center',
  910. showOverflowTooltip: true
  911. },
  912. {
  913. prop: 'receiveNo',
  914. label: '收货单编码',
  915. sortable: true,
  916. align: 'center',
  917. slot: 'receiveNo',
  918. showOverflowTooltip: true,
  919. minWidth: 180
  920. },
  921. {
  922. prop: 'orderNo',
  923. label: '采购订单编码',
  924. sortable: true,
  925. align: 'center',
  926. slot: 'orderNo',
  927. showOverflowTooltip: true,
  928. minWidth: 180
  929. },
  930. {
  931. prop: 'supplierName',
  932. label: '名称',
  933. align: 'center',
  934. showOverflowTooltip: true,
  935. minWidth: 300
  936. },
  937. {
  938. prop: 'sendNoteNo',
  939. label: '送货单号',
  940. align: 'center',
  941. showOverflowTooltip: true,
  942. minWidth: 200
  943. },
  944. // {
  945. // prop: 'replied',
  946. // label: '是否回执',
  947. // align: 'center',
  948. // showOverflowTooltip: true,
  949. // minWidth: 200,
  950. // formatter: (_row, _column, cellValue) => {
  951. // return _row.replied==1?'是':'否';
  952. // }
  953. // },
  954. {
  955. prop: 'reviewStatus',
  956. label: '状态',
  957. align: 'center',
  958. showOverflowTooltip: true,
  959. minWidth: 200,
  960. formatter: (_row, _column, cellValue) => {
  961. return reviewStatusEnum[_row.reviewStatus].label;
  962. }
  963. },
  964. {
  965. prop: 'createTime',
  966. label: '创建时间',
  967. align: 'center',
  968. showOverflowTooltip: true,
  969. minWidth: 170
  970. }
  971. ],
  972. returnColumns: [
  973. {
  974. columnKey: 'index',
  975. label: '序号',
  976. type: 'index',
  977. width: 55,
  978. align: 'center',
  979. showOverflowTooltip: true,
  980. },
  981. {
  982. prop: 'returnNo',
  983. label: '退货单编码',
  984. sortable: true,
  985. align: 'center',
  986. slot: 'returnNo',
  987. showOverflowTooltip: true,
  988. minWidth: 200
  989. },
  990. {
  991. prop: 'receiveNo',
  992. label: '收货单编码',
  993. sortable: true,
  994. align: 'center',
  995. slot: 'receiveNo',
  996. showOverflowTooltip: true,
  997. minWidth: 200
  998. },
  999. {
  1000. prop: 'orderNo',
  1001. label: '采购订单编码',
  1002. sortable: true,
  1003. align: 'center',
  1004. slot: 'orderNo',
  1005. showOverflowTooltip: true,
  1006. minWidth: 200
  1007. },
  1008. {
  1009. prop: 'supplierName',
  1010. label: '名称',
  1011. align: 'center',
  1012. showOverflowTooltip: true,
  1013. minWidth: 180
  1014. },
  1015. {
  1016. prop: 'returnSourceType',
  1017. label: '退货类型',
  1018. align: 'center',
  1019. showOverflowTooltip: true,
  1020. minWidth: 200,
  1021. formatter: (_row, _column, cellValue) => {
  1022. return _row.returnSourceType == 2? '委外发货退货':'采购收货退货'
  1023. }
  1024. },
  1025. // {
  1026. // prop: 'payAmount',
  1027. // label: '应付金额',
  1028. // align: 'center',
  1029. // slot: 'payAmount',
  1030. // showOverflowTooltip: true,
  1031. // minWidth: 200
  1032. // },
  1033. {
  1034. prop: 'reviewStatus',
  1035. label: '状态',
  1036. align: 'center',
  1037. showOverflowTooltip: true,
  1038. minWidth: 200,
  1039. formatter: (_row, _column, cellValue) => {
  1040. return reviewStatusEnum[_row.reviewStatus].label;
  1041. }
  1042. },
  1043. {
  1044. prop: 'createTime',
  1045. label: '创建时间',
  1046. align: 'center',
  1047. showOverflowTooltip: true,
  1048. minWidth: 170
  1049. }
  1050. ],
  1051. reconciliationColumns: [
  1052. {
  1053. columnKey: 'index',
  1054. label: '序号',
  1055. type: 'index',
  1056. width: 55,
  1057. align: 'center',
  1058. showOverflowTooltip: true
  1059. },
  1060. {
  1061. prop: 'statementNo',
  1062. label: '对账单编码',
  1063. sortable: true,
  1064. align: 'center',
  1065. slot: 'statementNo',
  1066. showOverflowTooltip: true,
  1067. minWidth: 200
  1068. },
  1069. {
  1070. prop: 'contactName',
  1071. label: '名称',
  1072. align: 'center',
  1073. showOverflowTooltip: true,
  1074. minWidth: 180,
  1075. },
  1076. // {
  1077. // prop: 'projectName',
  1078. // label: '项目名称',
  1079. // align: 'center',
  1080. // showOverflowTooltip: true,
  1081. // minWidth: 200,
  1082. // },
  1083. {
  1084. prop: 'startDate',
  1085. label: '对账开始日期',
  1086. align: 'center',
  1087. slot: 'startDate',
  1088. showOverflowTooltip: true,
  1089. minWidth: 200
  1090. },
  1091. {
  1092. prop: 'endDate',
  1093. label: '对账结束日期',
  1094. align: 'center',
  1095. slot: 'endDate',
  1096. showOverflowTooltip: true,
  1097. minWidth: 200
  1098. },
  1099. {
  1100. prop: 'amountTotalPrice',
  1101. label: '总金额',
  1102. align: 'center',
  1103. showOverflowTooltip: true,
  1104. minWidth: 130
  1105. },
  1106. {
  1107. prop: 'amountReceivablePrice',
  1108. label: '应收金额',
  1109. align: 'center',
  1110. showOverflowTooltip: true,
  1111. minWidth: 130
  1112. },
  1113. {
  1114. prop: 'amountPayablePrice',
  1115. label: '应付金额',
  1116. align: 'center',
  1117. showOverflowTooltip: true,
  1118. minWidth: 130
  1119. },
  1120. {
  1121. prop: 'reviewStatus',
  1122. label: '状态',
  1123. align: 'center',
  1124. showOverflowTooltip: true,
  1125. minWidth: 200,
  1126. formatter: (_row, _column, cellValue) => {
  1127. return reviewStatusEnum[_row.reviewStatus].label;
  1128. }
  1129. },
  1130. {
  1131. prop: 'replied',
  1132. label: '是否回执',
  1133. align: 'center',
  1134. slot: 'replied',
  1135. showOverflowTooltip: true,
  1136. minWidth: 200,
  1137. formatter: (_row, _column, cellValue) => {
  1138. return _row.replied ? '是' : '否';
  1139. }
  1140. },
  1141. {
  1142. prop: 'createTime',
  1143. label: '创建时间',
  1144. align: 'center',
  1145. showOverflowTooltip: true,
  1146. minWidth: 170
  1147. },
  1148. ],
  1149. invoiceColumns: [
  1150. {
  1151. width: 60,
  1152. label: '序号',
  1153. type: 'index',
  1154. columnKey: 'index',
  1155. align: 'center',
  1156. },
  1157. {
  1158. minWidth: 130,
  1159. prop: 'code',
  1160. label: '应付编码',
  1161. sortable: true,
  1162. align: 'center',
  1163. slot: 'code',
  1164. showOverflowTooltip: true
  1165. },
  1166. {
  1167. minWidth: 120,
  1168. prop: 'invoiceCode',
  1169. label: '发票编码',
  1170. sortable: true,
  1171. slot: 'invoiceCode',
  1172. align: 'center',
  1173. showOverflowTooltip: true
  1174. },
  1175. {
  1176. minWidth: 130,
  1177. prop: 'contactName',
  1178. label: '单位名称',
  1179. align: 'center',
  1180. slot: 'contactName',
  1181. showOverflowTooltip: true
  1182. },
  1183. {
  1184. minWidth: 140,
  1185. prop: 'payableDate',
  1186. label: '应付日期',
  1187. slot: 'payableDate',
  1188. align: 'center',
  1189. showOverflowTooltip: true
  1190. },
  1191. {
  1192. minWidth: 100,
  1193. prop: 'payableTotalPrice',
  1194. label: '应付金额',
  1195. align: 'center',
  1196. slot: 'payableTotalPrice',
  1197. showOverflowTooltip: true
  1198. },
  1199. {
  1200. minWidth: 100,
  1201. prop: 'paidTotalPrice',
  1202. label: '已付金额',
  1203. align: 'center',
  1204. slot: 'paidTotalPrice',
  1205. showOverflowTooltip: true
  1206. },
  1207. {
  1208. minWidth: 100,
  1209. prop: 'unpaidTotalPrice',
  1210. label: '未付金额',
  1211. align: 'center',
  1212. slot: 'unpaidTotalPrice',
  1213. showOverflowTooltip: true
  1214. },
  1215. {
  1216. minWidth: 100,
  1217. prop: 'sourceCode',
  1218. label: '来源编码',
  1219. align: 'center',
  1220. slot: 'sourceCode',
  1221. showOverflowTooltip: true
  1222. },
  1223. {
  1224. minWidth: 100,
  1225. prop: 'accountingSubjectName',
  1226. label: '会计科目',
  1227. align: 'center',
  1228. slot: 'accountingSubjectName',
  1229. showOverflowTooltip: true
  1230. },
  1231. {
  1232. minWidth: 100,
  1233. prop: 'status',
  1234. label: '收款状态',
  1235. align: 'center',
  1236. slot: 'status',
  1237. showOverflowTooltip: true,
  1238. formatter: (_row, _column, cellValue) => {
  1239. return this.statusList.find(item => item.value === cellValue).label
  1240. }
  1241. },
  1242. {
  1243. minWidth: 100,
  1244. prop: 'approvalStatus',
  1245. label: '审核状态',
  1246. align: 'center',
  1247. slot: 'approvalStatus',
  1248. formatter: (_row, _column, cellValue) => {
  1249. return reviewStatus[_row.approvalStatus];
  1250. }
  1251. }
  1252. ],
  1253. supplyColumns: [
  1254. {
  1255. columnKey: 'index',
  1256. type: 'index',
  1257. width: 50,
  1258. align: 'center',
  1259. showOverflowTooltip: true,
  1260. label: '序号'
  1261. },
  1262. {
  1263. prop: 'productCode',
  1264. label: '编码',
  1265. align: 'center',
  1266. showOverflowTooltip: true,
  1267. minWidth: 110
  1268. },
  1269. {
  1270. prop: 'productName',
  1271. label: '名称',
  1272. align: 'center',
  1273. showOverflowTooltip: true,
  1274. minWidth: 110
  1275. },
  1276. {
  1277. prop: 'imgCode',
  1278. align: 'center',
  1279. label: '图号/件号',
  1280. showOverflowTooltip: true,
  1281. minWidth: 110
  1282. },
  1283. {
  1284. prop: '属性类型',
  1285. align: 'center',
  1286. label: 'produceType',
  1287. showOverflowTooltip: true,
  1288. minWidth: 110
  1289. },
  1290. {
  1291. prop: 'approvalNumber',
  1292. align: 'center',
  1293. label: '批准文号',
  1294. showOverflowTooltip: true,
  1295. minWidth: 110
  1296. },
  1297. {
  1298. prop: 'packingSpecification',
  1299. align: 'center',
  1300. label: '包装规格',
  1301. showOverflowTooltip: true,
  1302. minWidth: 110
  1303. },
  1304. {
  1305. prop: 'brandNum',
  1306. align: 'center',
  1307. label: '牌号',
  1308. showOverflowTooltip: true
  1309. },
  1310. {
  1311. prop: 'modelType',
  1312. label: '型号',
  1313. align: 'center',
  1314. showOverflowTooltip: true
  1315. },
  1316. {
  1317. prop: 'specification',
  1318. label: '规格',
  1319. align: 'center',
  1320. showOverflowTooltip: true
  1321. },
  1322. {
  1323. prop: 'measuringUnit',
  1324. label: '计量单位',
  1325. showOverflowTooltip: true,
  1326. align: 'center',
  1327. minWidth: 90
  1328. },
  1329. // {
  1330. // prop: 'weightUnit',
  1331. // label: '重量单位',
  1332. // showOverflowTooltip: true,
  1333. // align: 'center',
  1334. // minWidth: 90
  1335. // },
  1336. //
  1337. // {
  1338. // prop: 'roughWeight',
  1339. // label: '毛重',
  1340. // showOverflowTooltip: true,
  1341. // align: 'center',
  1342. // minWidth: 90
  1343. // },
  1344. //
  1345. // {
  1346. // prop: 'netWeight',
  1347. // label: '净重',
  1348. // showOverflowTooltip: true,
  1349. // align: 'center',
  1350. // minWidth: 90
  1351. // },
  1352. //
  1353. // {
  1354. // prop: 'packingUnit',
  1355. // align: 'center',
  1356. // label: '包装单位',
  1357. // showOverflowTooltip: true
  1358. // },
  1359. // {
  1360. // prop: 'categoryLevelPath',
  1361. // label: '分类',
  1362. // align: 'center',
  1363. // showOverflowTooltip: true
  1364. // }
  1365. ],
  1366. };
  1367. },
  1368. methods: {
  1369. async open(row) {
  1370. this.row = row;
  1371. this.visible = true;
  1372. await this._getById(row.id);
  1373. },
  1374. cancel() {
  1375. this.$nextTick(() => {
  1376. // 关闭后,销毁所有的表单数据
  1377. this.form = copyObj(this.formDef),
  1378. this.otherForm = copyObj(this.otherFormDef),
  1379. this.tableBankData = []
  1380. this.tableLinkData = []
  1381. this.visible = false;
  1382. })
  1383. },
  1384. handleActive(val) {
  1385. if (val.name == 'certificate') {
  1386. this.reload()
  1387. }
  1388. },
  1389. //新增/查看/修改资质
  1390. addCertificate(type, row) {
  1391. this.certificateQualificationsDialogFlag = true
  1392. this.$nextTick(() => {
  1393. this.$refs.certificateQualificationsDialogRef.init(type, row)
  1394. })
  1395. },
  1396. /* 证书资质表格数据源 */
  1397. tableCertificateData({page, limit, where}) {
  1398. if (!this.form.id) return []
  1399. return contactQcPackPageAPI({
  1400. pageNum: page,
  1401. size: limit,
  1402. ...where,
  1403. contactId: this.form.id
  1404. });
  1405. },
  1406. /* 订单表格表格数据源 */
  1407. orderDatasource({page, limit, where, order}) {
  1408. return getTableList({
  1409. pageNum: page,
  1410. size: limit,
  1411. ...where,
  1412. partbName:this.row.name
  1413. });
  1414. },
  1415. /* 收货单表格数据源 */
  1416. sendDatasource({page, limit, where, order}) {
  1417. return getReceiveTableList({
  1418. pageNum: page,
  1419. size: limit,
  1420. ...where,
  1421. supplierName: this.row.name
  1422. });
  1423. },
  1424. /* 退货表格数据源 */
  1425. returnDatasource({ page, limit, where, order }) {
  1426. return getReturnTableList({
  1427. pageNum: page,
  1428. size: limit,
  1429. ...where,
  1430. supplierName: this.row.name
  1431. });
  1432. },
  1433. /* 对账单表格数据源 */
  1434. reconciliationDatasource({page, limit, where, order}) {
  1435. return getAccountstatementList({
  1436. pageNum: page,
  1437. size: limit,
  1438. type: 3,
  1439. ...where,
  1440. contactName: this.row.name
  1441. });
  1442. },
  1443. /* 开票记录表格数据源 */
  1444. invoiceDatasource({page, limit, where, order}) {
  1445. return finPayablePageListAPI({
  1446. pageNum: page,
  1447. size: limit,
  1448. ...where,
  1449. contactName:this.row.name
  1450. });
  1451. },
  1452. /* 刷新表格 */
  1453. reload(where) {
  1454. where = {
  1455. ...where,
  1456. contactId: this.form.id
  1457. }
  1458. this.$refs.certificateTable.reload({page: 1, where});
  1459. },
  1460. async _getById(id) {
  1461. const data = await contactDetail(id);
  1462. this.form = data.base||{};
  1463. this.otherForm = data.other||{};
  1464. this.tableBankData = data.bankList||[];
  1465. this.tableLinkData = data.linkList||[];
  1466. this.supplyList = data.productList||[];
  1467. if (this.tableLinkData && this.tableLinkData.length > 0) {
  1468. this.tableLinkData.forEach(e => e.status = e.status + "");
  1469. }
  1470. if (this.form.level) {
  1471. this.form.level = this.form.level + "";
  1472. }
  1473. await getCategoryInfo(this.form.categoryId).then((res) => {
  1474. let categoryName = res.data.map(item=>item.name)?.join(',')
  1475. this.$set(this.form, 'categoryName', categoryName)
  1476. });
  1477. },
  1478. downloadFile(file) {
  1479. getFile({objectName: file.storePath}, file.name);
  1480. },
  1481. }
  1482. };
  1483. </script>