contactDetailDialog.vue 43 KB

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