detailsPage.vue 54 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225
  1. <template>
  2. <dev>
  3. <el-card class="box-card">
  4. <el-form ref="userDataForm" :rules="rules" :model="formData" size="medium" label-width="100px">
  5. <div class="head">
  6. <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
  7. @click="backToList">返回列表
  8. </el-button>
  9. <h4 style="margin: 0">往来单位</h4>
  10. <dev>
  11. <el-button type="primary" @click="submitForm">保存</el-button>
  12. </dev>
  13. </div>
  14. <el-row style="display: flex; flex-direction: row; align-items: center;">
  15. <div style="width: 8px; height: 20px; border-radius: 2px; background-color: #bd3124; margin-right: 6px;"></div>
  16. <h4>客户资料(必填)</h4>
  17. </el-row>
  18. <el-row gutter="15">
  19. <el-col :span="8">
  20. <el-form-item label="客户分类" prop="corpType">
  21. <!-- <el-select v-model="formData.corpType" placeholder="请选择客户分类" clearable :style="{ width: '100%' }">
  22. <el-option v-for="(item, index) in field102Options" :key="index" :label="item.label" :value="item.value"
  23. :disabled="item.disabled"></el-option>
  24. </el-select> -->
  25. <avue-input-tree :check-strictly="true" @change="corpTypeChange" multiple v-model="formData.corpTypeList"
  26. placeholder="请选择内容" :props="{ label: 'cnName', value: 'id' }" :dic="customTypeData"
  27. :style="{ width: '100%' }"></avue-input-tree>
  28. </el-form-item>
  29. </el-col>
  30. <el-col :span="8">
  31. <el-form-item label="客户编号" prop="code">
  32. <!-- <el-select v-model="formData.code" placeholder="请选择客户编号" clearable :style="{width: '100%'}">
  33. <el-option v-for="(item, index) in field103Options" :key="index" :label="item.label"
  34. :value="item.value" :disabled="item.disabled"></el-option>
  35. </el-select> -->
  36. <el-input v-model="formData.code" placeholder="请选择客户编号" clearable :style="{ width: '100%' }">
  37. </el-input>
  38. </el-form-item>
  39. </el-col>
  40. <el-col :span="8">
  41. <el-form-item label="客户简称" prop="shortName">
  42. <!-- <el-select v-model="formData.shortName" placeholder="请选择客户简称" clearable :style="{width: '100%'}">
  43. <el-option v-for="(item, index) in field104Options" :key="index" :label="item.label"
  44. :value="item.value" :disabled="item.disabled"></el-option>
  45. </el-select> -->
  46. <el-input v-model="formData.shortName" placeholder="请选择客户简称" clearable :style="{ width: '100%' }">
  47. </el-input>
  48. </el-form-item>
  49. </el-col>
  50. <el-col :span="16">
  51. <el-form-item label="客户名称" prop="cnName">
  52. <el-input v-model="formData.cnName" placeholder="请输入英文名称" clearable :style="{ width: '100%' }">
  53. </el-input>
  54. </el-form-item>
  55. </el-col>
  56. <el-col :span="8">
  57. <el-form-item label="信用代码" prop="enName">
  58. <el-input v-model="formData.uscc" placeholder="请输入统一社会信用代码" clearable :style="{ width: '100%' }">
  59. </el-input>
  60. </el-form-item>
  61. </el-col>
  62. <el-col :span="16">
  63. <el-form-item label="中文地址" prop="cnAddr">
  64. <el-input v-model="formData.cnAddr" placeholder="请输入中文地址" clearable :style="{ width: '100%' }">
  65. </el-input>
  66. </el-form-item>
  67. </el-col>
  68. <el-col :span="8">
  69. <!-- <el-form-item label="英文地址" prop="enAddr">
  70. <el-input v-model="formData.enAddr" placeholder="请输入英文地址" clearable :style="{ width: '100%' }">
  71. </el-input>
  72. </el-form-item> -->
  73. <el-form-item label="邮箱" prop="email">
  74. <el-input v-model="formData.email" placeholder="请输入邮箱" clearable :style="{ width: '100%' }">
  75. </el-input>
  76. </el-form-item>
  77. </el-col>
  78. </el-row>
  79. <el-row gutter="15">
  80. <el-col :span="8">
  81. <el-form-item label="英文名称" prop="enName">
  82. <el-input v-model="formData.enName" placeholder="请输入英文名称" clearable :style="{ width: '100%' }">
  83. </el-input>
  84. </el-form-item>
  85. </el-col>
  86. <el-col :span="8">
  87. <el-form-item label="英文地址" prop="enAddr">
  88. <el-input v-model="formData.enAddr" placeholder="请输入英文地址" clearable :style="{ width: '100%' }">
  89. </el-input>
  90. </el-form-item>
  91. </el-col>
  92. </el-row>
  93. </el-form>
  94. </el-card>
  95. <el-card class="box-card">
  96. <el-form :model="formData" size="medium" label-width="100px">
  97. <el-row gutter="15">
  98. <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
  99. <el-tab-pane label="客户详情" name="kgxq">
  100. <el-col :span="8">
  101. <el-form-item label="企业类型" prop="enterpriseType">
  102. <el-select v-model="formData.enterpriseType" placeholder="请输入信用等级" clearable :style="{ width: '100%' }">
  103. <el-option v-for="(item, index) in enterpriseTypeDict" :key="index" :label="item.dictValue"
  104. :value="item.dictKey" :disabled="item.disabled"></el-option>
  105. </el-select>
  106. </el-form-item>
  107. </el-col>
  108. <el-col :span="8">
  109. <el-form-item label="客户来源" prop="sourceType">
  110. <el-input v-model="formData.sourceType" placeholder="请输入客户来源" clearable :style="{ width: '100%' }">
  111. </el-input>
  112. </el-form-item>
  113. </el-col>
  114. <el-col :span="8">
  115. <el-form-item label="国家" prop="cntyCode">
  116. <search-query ref="SearchQuery" :datalist="cntyOptions" title="国家" :filterable="true" :clearable="true"
  117. :remote="true" :forParameter="{ key: 'id', label: 'cnName', value: 'code', disabled: 'status' }"
  118. :disabledStatus="1":selectValue="formData.cntyCode" @remoteMethod="bcountrysListfun" @corpChange="bcountrysChange">
  119. <bcountrys></bcountrys>
  120. </search-query>
  121. </el-form-item>
  122. </el-col>
  123. <el-col :span="8">
  124. <el-form-item label="优势航线" prop="advantageRoute">
  125. <el-input v-model="formData.advantageRoute" placeholder="请输入优势航线" clearable :style="{ width: '100%' }">
  126. </el-input>
  127. </el-form-item>
  128. </el-col>
  129. <el-col :span="8">
  130. <el-form-item label="海关号" prop="customsCode">
  131. <el-input v-model="formData.customsCode" placeholder="请输入海关号" clearable :style="{ width: '100%' }">
  132. </el-input>
  133. </el-form-item>
  134. </el-col>
  135. <el-col :span="8">
  136. <el-form-item label="状态" prop="status">
  137. <el-select v-model="formData.status" placeholder="请选择状态" clearable :style="{ width: '100%' }">
  138. <el-option v-for="(item, index) in statusOptions" :key="index" :label="item.label" :value="item.value"
  139. :disabled="item.disabled"></el-option>
  140. </el-select>
  141. </el-form-item>
  142. </el-col>
  143. <el-col :span="8">
  144. <el-form-item label="负责人" prop="mgrName">
  145. <el-input v-model="formData.mgrName" placeholder="请输入负责人" clearable :style="{ width: '100%' }">
  146. </el-input>
  147. </el-form-item>
  148. </el-col>
  149. <el-col :span="8">
  150. <el-form-item label="联系人电话" prop="tel">
  151. <el-input v-model="formData.tel" placeholder="请输入联系人电话" clearable :style="{ width: '100%' }">
  152. </el-input>
  153. </el-form-item>
  154. </el-col>
  155. <el-col :span="8">
  156. <el-form-item label="传真" prop="fax">
  157. <el-input v-model="formData.fax" placeholder="请输入传真" clearable :style="{ width: '100%' }">
  158. </el-input>
  159. </el-form-item>
  160. </el-col>
  161. <el-col :span="8">
  162. <el-form-item label="SCAC码" prop="scacCode">
  163. <el-input v-model="formData.scacCode" placeholder="请输入SCAC码" clearable :style="{ width: '100%' }">
  164. </el-input>
  165. </el-form-item>
  166. </el-col>
  167. <el-col :span="8">
  168. <el-form-item label="维护人员" prop="maintenanceStaffName">
  169. <el-input v-model="formData.maintenanceStaffName" placeholder="请输入维护人员" clearable
  170. :style="{ width: '100%' }">
  171. </el-input>
  172. </el-form-item>
  173. </el-col>
  174. <el-col :span="8">
  175. <el-form-item label="业务员" prop="salesId">
  176. <!-- <el-input v-model="formData.salesId" placeholder="请输入业务员" clearable :style="{ width: '100%' }"> -->
  177. <el-select v-model="formData.salesId" filterable @change="salesChange" placeholder="请选择业务员" clearable
  178. :style="{ width: '100%' }">
  179. <el-option v-for="(item, index) in userOptions" :key="index" :label="item.realName" :value="item.id"
  180. :disabled="item.disabled"></el-option>
  181. </el-select>
  182. </el-input>
  183. </el-form-item>
  184. </el-col>
  185. <!-- <el-col :span="8">
  186. <el-form-item label="所属单位编号" prop="field125">
  187. <el-input v-model="formData.field125" placeholder="请输入所属单位编号" clearable :style="{width: '100%'}">
  188. </el-input>
  189. </el-form-item>
  190. </el-col> -->
  191. <el-col :span="8">
  192. <el-form-item label="所属单位名称" prop="corpName">
  193. <el-input v-model="formData.corpName" placeholder="请输入名称" clearable :style="{ width: '100%' }">
  194. </el-input>
  195. </el-form-item>
  196. </el-col>
  197. <el-col :span="8">
  198. <el-form-item label="信用等级" prop="creditLevel">
  199. <el-select v-model="formData.creditLevel" placeholder="请输入信用等级" clearable :style="{ width: '100%' }">
  200. <el-option v-for="(item, index) in creditLevelDict" :key="index" :label="item.dictValue"
  201. :value="item.dictKey" :disabled="item.disabled"></el-option>
  202. </el-select>
  203. </el-form-item>
  204. </el-col>
  205. <el-col :span="8">
  206. <el-form-item label="PS规则" prop="psRate">
  207. <!-- <el-input v-model="formData.psRate" placeholder="请输入PS规则" clearable :style="{ width: '100%' }"> -->
  208. <el-input-number v-model="formData.psRate" controls-position="right" @change="handleChange" :min="0"
  209. :precision="2" :step="1" :style="{ width: '100%' }"></el-input-number>
  210. </el-input>
  211. </el-form-item>
  212. </el-col>
  213. <el-col :span="8">
  214. <el-form-item label="存在HP/S" prop="isPs">
  215. <el-switch v-model="formData.isPs" :active-value="1" :inactive-value="0" active-text="开启"
  216. inactive-text="关闭"></el-switch>
  217. </el-form-item>
  218. </el-col>
  219. <el-col :span="8">
  220. <el-form-item label="允许负大于收" prop="psAllowLargeCredit">
  221. <el-switch v-model="formData.psAllowLargeCredit" :active-value="1" :inactive-value="0" active-text="开启"
  222. inactive-text="关闭"></el-switch>
  223. </el-form-item>
  224. </el-col>
  225. <el-col :span="24">
  226. <el-form-item label="详情信息" prop="details">
  227. <el-input v-model="formData.details" type="textarea" placeholder="请输入详情信息"
  228. :autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
  229. </el-form-item>
  230. </el-col>
  231. </el-tab-pane>
  232. <el-tab-pane label="财务信息" name="cwxx">
  233. <!-- <el-row style="display: flex; flex-direction: row; align-items: center;">
  234. <div style="width: 8px; height: 20px; border-radius: 2px; background-color: #bd3124; margin-right: 6px;"></div>
  235. <h4>人民币(RMB)</h4>
  236. </el-row>
  237. <el-row gutter="15">
  238. <el-col :span="8">
  239. <el-form-item label="账号名称" prop="field136">
  240. <el-input v-model="formData.field136" placeholder="请输入账号名称" clearable :style="{width: '100%'}">
  241. </el-input>
  242. </el-form-item>
  243. </el-col>
  244. <el-col :span="8">
  245. <el-form-item label="开户银行" prop="field137">
  246. <el-input v-model="formData.field137" placeholder="请输入开户银行" clearable :style="{width: '100%'}">
  247. </el-input>
  248. </el-form-item>
  249. </el-col>
  250. <el-col :span="8">
  251. <el-form-item label="银行账号" prop="field138">
  252. <el-input v-model="formData.field138" placeholder="请输入银行账号" clearable :style="{width: '100%'}">
  253. </el-input>
  254. </el-form-item>
  255. </el-col>
  256. <el-col :span="8">
  257. <el-form-item label="CNAPS" prop="field139">
  258. <el-input v-model="formData.field139" placeholder="请输入CNAPS" clearable :style="{width: '100%'}">
  259. </el-input>
  260. </el-form-item>
  261. </el-col>
  262. <el-col :span="8">
  263. <el-form-item label="银行地址" prop="field140">
  264. <el-input v-model="formData.field140" placeholder="请输入银行地址" clearable :style="{width: '100%'}">
  265. </el-input>
  266. </el-form-item>
  267. </el-col>
  268. </el-row>
  269. <el-row style="display: flex; flex-direction: row; align-items: center;">
  270. <div style="width: 8px; height: 20px; border-radius: 2px; background-color: #bd3124; margin-right: 6px;"></div>
  271. <h4>外币银行信息</h4>
  272. </el-row>
  273. <el-row gutter="15">
  274. <el-col :span="8">
  275. <el-form-item label="账号名称" prop="accountName">
  276. <el-input v-model="formData.accountName" placeholder="请输入账号名称" clearable :style="{width: '100%'}">
  277. </el-input>
  278. </el-form-item>
  279. </el-col>
  280. <el-col :span="8">
  281. <el-form-item label="开户银行" prop="accountBank">
  282. <el-input v-model="formData.accountBank" placeholder="请输入开户银行" clearable :style="{width: '100%'}">
  283. </el-input>
  284. </el-form-item>
  285. </el-col>
  286. <el-col :span="8">
  287. <el-form-item label="银行账号" prop="accountNo">
  288. <el-input v-model="formData.accountNo" placeholder="请输入银行账号" clearable :style="{width: '100%'}">
  289. </el-input>
  290. </el-form-item>
  291. </el-col>
  292. <el-col :span="8">
  293. <el-form-item label="Swift Code" prop="swiftCode">
  294. <el-input v-model="formData.swiftCode" placeholder="请输入Swift Code" clearable
  295. :style="{width: '100%'}"></el-input>
  296. </el-form-item>
  297. </el-col>
  298. <el-col :span="8">
  299. <el-form-item label="银行地址" prop="address">
  300. <el-input v-model="formData.address" placeholder="请输入银行地址" clearable :style="{width: '100%'}">
  301. </el-input>
  302. </el-form-item>
  303. </el-col>
  304. </el-row> -->
  305. <el-row style="display: flex; flex-direction: row; align-items: center;">
  306. <div style="width: 8px; height: 20px; border-radius: 2px; background-color: #bd3124; margin-right: 6px;">
  307. </div>
  308. <h4>授信信息</h4>
  309. <el-form-item label="授信状态" prop="creditStatus">
  310. <el-switch style="margin-bottom = 0" :active-value="1" :inactive-value="0"
  311. v-model="formData.creditStatus" active-text="开启" inactive-text="关闭"></el-switch>
  312. </el-form-item>
  313. </el-row>
  314. <el-row gutter="15">
  315. <el-col :span="8">
  316. <el-form-item label="授信额度" prop="creditGrant">
  317. <el-input v-model="formData.creditGrant" placeholder="请输入授信额度" clearable :style="{ width: '100%' }">
  318. </el-input>
  319. </el-form-item>
  320. </el-col>
  321. <el-col :span="8">
  322. <el-form-item label="授信天数" prop="creditDay">
  323. <el-input v-model="formData.creditDay" placeholder="请输入授信天数" clearable :style="{ width: '100%' }">
  324. </el-input>
  325. </el-form-item>
  326. </el-col>
  327. <el-col :span="8">
  328. <el-form-item label="授信利率" prop="creditRate">
  329. <el-input v-model="formData.creditRate" placeholder="请输入授信利率" clearable :style="{ width: '100%' }">
  330. </el-input>
  331. </el-form-item>
  332. </el-col>
  333. </el-row>
  334. <!-- <el-row style="display: flex; flex-direction: row; align-items: center;">
  335. <div style="width: 8px; height: 20px; border-radius: 2px; background-color: #bd3124; margin-right: 6px;"></div>
  336. <h4>财务联系人</h4>
  337. </el-row>
  338. <el-row gutter="15">
  339. <el-col :span="8">
  340. <el-form-item label="联系人" prop="field155">
  341. <el-input v-model="formData.field155" placeholder="请输入联系人" clearable :style="{width: '100%'}">
  342. </el-input>
  343. </el-form-item>
  344. </el-col>
  345. <el-col :span="8">
  346. <el-form-item label="联系电话" prop="field156">
  347. <el-input v-model="formData.field156" placeholder="请输入联系电话" clearable :style="{width: '100%'}">
  348. </el-input>
  349. </el-form-item>
  350. </el-col>
  351. <el-col :span="8">
  352. <el-form-item label="部门职务" prop="field157">
  353. <el-input v-model="formData.field157" placeholder="请输入部门职务" clearable :style="{width: '100%'}">
  354. </el-input>
  355. </el-form-item>
  356. </el-col>
  357. </el-row> -->
  358. </el-tab-pane>
  359. <el-tab-pane label="客户联系人" name="khlxk">
  360. <el-button type="primary" @click="corpsAttnAdd">新建</el-button>
  361. <el-table :data="formData.corpsAttnList"
  362. :header-cell-style="{ background: '#ecf5ff', color: '#232526', fontSize: '12px' }" stripe
  363. style="width: 100%">
  364. <el-table-column prop="code" label="编号" width="180" />
  365. <el-table-column prop="cname" label="名称" width="180" />
  366. <el-table-column prop="attn" label="联系方式" width="180" />
  367. <el-table-column prop="tel" label="电话" width="180" />
  368. <el-table-column prop="position" label="岗位" width="180" />
  369. <el-table-column prop="addr" label="公司地址" width="180" />
  370. <el-table-column prop="sex" label="性别" width="180" />
  371. <el-table-column prop="email" label="邮箱地址" width="180" />
  372. <el-table-column prop="status" label="状态" width="180">
  373. <template slot-scope="scope">
  374. <span v-if="scope.row.status == 0">正常</span>
  375. <span v-if="scope.row.status == 1">启用</span>
  376. </template>
  377. </el-table-column>
  378. <el-table-column fixed="right" label="操作" width="180">
  379. <template slot-scope="scope">
  380. <el-button type="text" size="small" @click="corpsAttnHandle(scope)">编辑</el-button>
  381. <el-button type="text" size="small" @click="corpsAttnDelete(scope)">删除</el-button>
  382. </template>
  383. </el-table-column>
  384. </el-table>
  385. </el-tab-pane>
  386. <el-tab-pane label="银行信息" name="yhxx">
  387. <el-button type="primary" @click="corpsAttnAdd">新建</el-button>
  388. <el-table :data="formData.corpsBankList"
  389. :header-cell-style="{ background: '#ecf5ff', color: '#232526', fontSize: '12px' }" stripe
  390. style="width: 100%">
  391. <!-- <el-table-column prop="uscc" label="统一社会信用代码" width="180" /> -->
  392. <el-table-column prop="accountName" label="账户名称" width="180" />
  393. <el-table-column prop="accountBank" label="开户银行" width="180" />
  394. <el-table-column prop="accountNo" label="银行账号" width="180" />
  395. <el-table-column prop="curId" label="币别" width="180" />
  396. <el-table-column prop="subjectNumber" label="科目编码" width="180" />
  397. <el-table-column prop="address" label="地址" width="180" />
  398. <el-table-column prop="swiftCode" label="Swift Code" width="180" />
  399. <el-table-column prop="cnapsCode" label="CNAPS" width="180" />
  400. <el-table-column prop="status" label="状态">
  401. <template slot-scope="scope">
  402. <span v-if="scope.row.status == 0">正常</span>
  403. <span v-if="scope.row.status == 1">启用</span>
  404. </template>
  405. </el-table-column>
  406. <el-table-column prop="remarks" label="备注" width="180" />
  407. <el-table-column fixed="right" label="操作" width="180">
  408. <template slot-scope="scope">
  409. <el-button type="text" size="small" @click="corpsAttnHandle(scope)">编辑</el-button>
  410. <el-button type="text" size="small" @click="corpsAttnDelete(scope)">删除</el-button>
  411. </template>
  412. </el-table-column>
  413. </el-table>
  414. </el-tab-pane>
  415. <el-tab-pane label="附件" name="fj">
  416. <el-button type="primary" @click="corpsAttnAdd">新建</el-button>
  417. <el-table :data="formData.corpsFilesList"
  418. :header-cell-style="{ background: '#ecf5ff', color: '#232526', fontSize: '12px' }" stripe
  419. style="width: 100%">
  420. <el-table-column prop="sort" label="排序" />
  421. <el-table-column prop="fileName" label="文件名" />
  422. <el-table-column prop="url" label="文件地址" :show-overflow-tooltip="true">
  423. <template slot-scope="scope">
  424. <el-link type="primary" :href="scope.row.url">{{ scope.row.url }}</el-link>
  425. </template>
  426. </el-table-column>
  427. <el-table-column prop="status" label="状态">
  428. <template slot-scope="scope">
  429. <span v-if="scope.row.status == 0">正常</span>
  430. <span v-if="scope.row.status == 1">启用</span>
  431. </template>
  432. </el-table-column>
  433. <el-table-column prop="remarks" label="备注" />
  434. <el-table-column fixed="right" label="操作" width="180">
  435. <template slot-scope="scope">
  436. <el-button type="text" size="small" @click="corpsAttnHandle(scope)">编辑</el-button>
  437. <el-button type="text" size="small" @click="corpsAttnDelete(scope)">删除</el-button>
  438. </template>
  439. </el-table-column>
  440. </el-table>
  441. </el-tab-pane>
  442. <el-tab-pane label="更名记录" name="gmjl">
  443. <el-table :data="formData.corpsRenameList"
  444. :header-cell-style="{ background: '#ecf5ff', color: '#232526', fontSize: '12px' }" stripe
  445. style="width: 100%">
  446. <el-table-column prop="oldCnName" label="原中文名称" width="180" />
  447. <el-table-column prop="newCnName" label="新中文名称" width="180" />
  448. <el-table-column prop="oldEnName" label="原英文名称" width="180" />
  449. <el-table-column prop="newEnName" label="新英文名称" width="180" />
  450. <!-- <el-table-column prop="byId" label="操作人" width="180"/> -->
  451. <el-table-column prop="byTime" label="操作时间" width="180" />
  452. <el-table-column prop="remarks" label="备注" width="180" />
  453. </el-table>
  454. </el-tab-pane>
  455. <el-tab-pane label="发票抬头" name="fptt">
  456. <el-button type="primary" @click="corpsAttnAdd">新建</el-button>
  457. <el-table :data="formData.corpsInvoiceHeaderList"
  458. :header-cell-style="{ background: '#ecf5ff', color: '#232526', fontSize: '12px' }" stripe
  459. style="width: 100%">
  460. <!-- <el-table-column prop="pid" label="主表id" width="180" /> -->
  461. <el-table-column prop="invoiceHeader" label="发票抬头" width="180" />
  462. <el-table-column prop="uscc" label="税号" width="180" />
  463. <el-table-column prop="address" label="地址" width="180" />
  464. <el-table-column prop="attnName" label="联系人姓名" width="180" />
  465. <el-table-column prop="attnTel" label="联系人电话" width="180" />
  466. <el-table-column prop="email" label="电子邮箱" width="180" />
  467. <el-table-column prop="taxpayerNature" label="纳税人性质" width="180" />
  468. <el-table-column prop="taxRate" label="增值税税率" width="180" />
  469. <el-table-column prop="invoiceType" label="发票类型" width="180" />
  470. <el-table-column prop="accountBankCny" label="人民币账户银行" width="180" />
  471. <el-table-column prop="accountBankUsd" label="美元账户银行" width="180" />
  472. <el-table-column prop="accountNoUsd" label="美元银行账号" width="180" />
  473. <el-table-column prop="guaranteeNo" label="保函号码" width="180" />
  474. <el-table-column prop="guaranteeDate" label="保函日期" width="180" />
  475. <el-table-column prop="version" label="版本" width="180" />
  476. <el-table-column prop="status" label="状态" width="180">
  477. <template slot-scope="scope">
  478. <span v-if="scope.row.status == 0">正常</span>
  479. <span v-if="scope.row.status == 1">启用</span>
  480. </template>
  481. </el-table-column>
  482. <el-table-column prop="remarks" label="备注" width="180" />
  483. <el-table-column fixed="right" label="操作" width="180">
  484. <template slot-scope="scope">
  485. <el-button type="text" size="small" @click="corpsAttnHandle(scope)">编辑</el-button>
  486. <el-button type="text" size="small" @click="corpsAttnDelete(scope)">删除</el-button>
  487. </template>
  488. </el-table-column>
  489. </el-table>
  490. </el-tab-pane>
  491. <el-tab-pane label="不良记录" name="bljl">
  492. <el-table :data="formData.corpsBadrecordList"
  493. :header-cell-style="{ background: '#ecf5ff', color: '#232526', fontSize: '12px' }" stripe
  494. style="width: 100%">
  495. <el-table-column prop="pid" label="主表客户id" width="180" />
  496. <el-table-column prop="oldCreditLevel" label="原授信等级" width="180" />
  497. <el-table-column prop="newCreditLevel" label="新授信等级" width="180" />
  498. <el-table-column prop="version" label="版本" width="180" />
  499. <el-table-column prop="status" label="状态" width="180">
  500. <template slot-scope="scope">
  501. <span v-if="scope.row.status == 0">正常</span>
  502. <span v-if="scope.row.status == 1">启用</span>
  503. </template>
  504. </el-table-column>
  505. <el-table-column prop="remarks" label="备注" width="180" />
  506. </el-table>
  507. </el-tab-pane>
  508. <!-- <el-tab-pane label="增值税开票" name="zzskp">
  509. 定时任务补偿
  510. </el-tab-pane>
  511. <el-tab-pane label="匹配编号" name="ppbh">
  512. 定时任务补偿
  513. </el-tab-pane>kai -->
  514. </el-tabs>
  515. </el-row>
  516. </el-form>
  517. </el-card>
  518. <el-dialog :title="dialogTitle" :visible.sync="corpsAttnDialogVisible" :append-to-body="true" width="40%"
  519. :before-close="handleClose">
  520. <el-form ref="corpsAttnForm" :rules="corpsAttnRules" :model="corpsAttnForm" label-width="120px">
  521. <div v-if="activeName == 'khlxk'">
  522. <el-form-item label="编号" prop="code" width="180">
  523. <el-input v-model="corpsAttnForm.code"></el-input>
  524. </el-form-item>
  525. <el-form-item label="名称" prop="cname">
  526. <el-input v-model="corpsAttnForm.cname"></el-input>
  527. </el-form-item>
  528. <el-form-item label="联系方式" prop="attn">
  529. <el-input v-model="corpsAttnForm.attn"></el-input>
  530. </el-form-item>
  531. <el-form-item label="邮箱地址" prop="email">
  532. <el-input v-model="corpsAttnForm.email"></el-input>
  533. </el-form-item>
  534. <el-form-item label="电话" prop="tel">
  535. <el-input v-model="corpsAttnForm.tel"></el-input>
  536. </el-form-item>
  537. <el-form-item label="岗位" prop="position">
  538. <el-input v-model="corpsAttnForm.position"></el-input>
  539. </el-form-item>
  540. <el-form-item label="公司地址" prop="addr">
  541. <el-input v-model="corpsAttnForm.addr"></el-input>
  542. </el-form-item>
  543. <!-- <el-form-item label="用户" prop="userId">
  544. <search-query ref="SearchQuery" :datalist="userOptions" title="用户" :filterable="true" :clearable="true"
  545. :remote="true" :forParameter="{ key: 'id', label: 'realName', value: 'id', disabled: 'workingStatus' }"
  546. :disabledStatus="1" @remoteMethod="userListfun" @corpChange="userChange">
  547. <user></user>
  548. </search-query>
  549. </el-form-item> -->
  550. <el-form-item label="性别" prop="sex">
  551. <el-select v-model="corpsAttnForm.sex" placeholder="请选择性别" :style="{ width: '100%' }">
  552. <el-option label="男" value="男"></el-option>
  553. <el-option label="女" value="女"></el-option>
  554. </el-select>
  555. </el-form-item>
  556. <el-form-item label="状态" prop="status">
  557. <el-select v-model="corpsAttnForm.status" placeholder="请选择状态" :style="{ width: '100%' }">
  558. <el-option label="正常" :value="0"></el-option>
  559. <el-option label="停用" :value="1"></el-option>
  560. </el-select>
  561. </el-form-item>
  562. </div>
  563. <div v-if="activeName == 'yhxx'">
  564. <!-- <el-form-item label="统一社会信用代码" prop="uscc">
  565. <el-input v-model="corpsAttnForm.uscc"></el-input>
  566. </el-form-item> -->
  567. <el-form-item label="账户名称" prop="accountName">
  568. <el-input v-model="corpsAttnForm.accountName"></el-input>
  569. </el-form-item>
  570. <el-form-item label="开户银行" prop="accountBank">
  571. <el-input v-model="corpsAttnForm.accountBank"></el-input>
  572. </el-form-item>
  573. <el-form-item label="银行账号" prop="accountNo">
  574. <el-input v-model="corpsAttnForm.accountNo"></el-input>
  575. </el-form-item>
  576. <el-form-item label="币别" prop="curId">
  577. <!-- <el-input v-model="corpsAttnForm.curId"></el-input> -->
  578. <search-query ref="SearchQuery" :datalist="rateOptions" title="币别" :filterable="true" :clearable="true"
  579. :remote="true" :forParameter="{ key: 'id', label: 'cnName', value: 'code', disabled: 'status' }"
  580. :disabledStatus="1" @remoteMethod="rateListfun" @corpChange="rateChange">
  581. <rateManagement></rateManagement>
  582. </search-query>
  583. </el-form-item>
  584. <el-form-item label="科目编码" prop="subjectNumber">
  585. <el-input v-model="corpsAttnForm.subjectNumber"></el-input>
  586. </el-form-item>
  587. <el-form-item label="地址" prop="address">
  588. <el-input v-model="corpsAttnForm.address"></el-input>
  589. </el-form-item>
  590. <el-form-item label="Swift Code" prop="swiftCode">
  591. <el-input v-model="corpsAttnForm.swiftCode"></el-input>
  592. </el-form-item>
  593. <el-form-item label="CNAPS" prop="cnapsCode">
  594. <el-input v-model="corpsAttnForm.cnapsCode"></el-input>
  595. </el-form-item>
  596. <el-form-item label="状态" prop="status">
  597. <el-select v-model="corpsAttnForm.status" placeholder="请选择状态" :style="{ width: '100%' }">
  598. <el-option label="正常" :value="0"></el-option>
  599. <el-option label="停用" :value="1"></el-option>
  600. </el-select>
  601. </el-form-item>
  602. <el-form-item label="备注" prop="remarks">
  603. <el-input v-model="corpsAttnForm.remarks"></el-input>
  604. </el-form-item>
  605. </div>
  606. <div v-if="activeName == 'fj'">
  607. <el-form-item label="排序" prop="sort">
  608. <el-input-number v-model="corpsAttnForm.sort" controls-position="right" @change="handleChange" :min="0"
  609. :precision="0" :step="1" :style="{ width: '100%' }"></el-input-number>
  610. </el-form-item>
  611. <el-form-item label="文件上传" prop="url">
  612. <el-upload class="upload-demo"
  613. :action="incomingAction ? incomingAction : '/api/blade-resource/oss/endpoint/put-file'"
  614. :on-remove="handleRemove" :headers="headers" :on-success="handleSuccess" :before-remove="beforeRemove"
  615. :on-progress="handleProgress" multiple :limit="1" :on-exceed="handleExceed" :file-list="fileList">
  616. <el-button size="small" type="primary">点击上传</el-button>
  617. </el-upload>
  618. </el-form-item>
  619. <el-form-item label="状态" prop="status">
  620. <el-select v-model="corpsAttnForm.status" placeholder="请选择状态" :style="{ width: '100%' }">
  621. <el-option label="正常" :value="0"></el-option>
  622. <el-option label="停用" :value="1"></el-option>
  623. </el-select>
  624. </el-form-item>
  625. <el-form-item label="备注" prop="remarks">
  626. <el-input v-model="corpsAttnForm.remarks"></el-input>
  627. </el-form-item>
  628. </div>
  629. <div v-if="activeName == 'fptt'">
  630. <el-form-item label="发票抬头" prop="invoiceHeader">
  631. <el-input v-model="corpsAttnForm.invoiceHeader"></el-input>
  632. </el-form-item>
  633. <el-form-item label="税号" prop="uscc">
  634. <el-input v-model="corpsAttnForm.uscc"></el-input>
  635. </el-form-item>
  636. <el-form-item label="地址" prop="address">
  637. <el-input v-model="corpsAttnForm.address"></el-input>
  638. </el-form-item>
  639. <el-form-item label="联系人姓名" prop="attnName">
  640. <el-input v-model="corpsAttnForm.attnName"></el-input>
  641. </el-form-item>
  642. <el-form-item label="联系人电话" prop="attnTel">
  643. <el-input v-model="corpsAttnForm.attnTel"></el-input>
  644. </el-form-item>
  645. <el-form-item label="电子邮箱" prop="email">
  646. <el-input v-model="corpsAttnForm.email"></el-input>
  647. </el-form-item>
  648. <el-form-item label="纳税人性质" prop="taxpayerNature">
  649. <el-input v-model="corpsAttnForm.taxpayerNature"></el-input>
  650. </el-form-item>
  651. <el-form-item label="增值税税率" prop="taxRate">
  652. <el-input v-model="corpsAttnForm.taxRate"></el-input>
  653. </el-form-item>
  654. <el-form-item label="发票类型" prop="invoiceType">
  655. <el-input v-model="corpsAttnForm.invoiceType"></el-input>
  656. </el-form-item>
  657. <el-form-item label="人民币账户银行" prop="accountBankCny">
  658. <el-input v-model="corpsAttnForm.accountBankCny"></el-input>
  659. </el-form-item>
  660. <el-form-item label="人民币银行账号" prop="accountNoCny">
  661. <el-input v-model="corpsAttnForm.accountNoCny"></el-input>
  662. </el-form-item>
  663. <el-form-item label="美元账户银行" prop="accountBankUsd">
  664. <el-input v-model="corpsAttnForm.accountBankUsd"></el-input>
  665. </el-form-item>
  666. <el-form-item label="美元银行账号" prop="accountNoUsd">
  667. <el-input v-model="corpsAttnForm.accountNoUsd"></el-input>
  668. </el-form-item>
  669. <el-form-item label="保函号码" prop="guaranteeNo">
  670. <el-input v-model="corpsAttnForm.guaranteeNo"></el-input>
  671. </el-form-item>
  672. <el-form-item label="保函日期" prop="guaranteeDate">
  673. <el-date-picker v-model="corpsAttnForm.guaranteeDate" value-format="yyyy-MM-dd" type="date" placeholder="选择日期"
  674. :style="{ width: '100%' }">
  675. </el-date-picker>
  676. </el-form-item>
  677. <el-form-item label="状态" prop="status">
  678. <el-select v-model="corpsAttnForm.status" placeholder="请选择状态" :style="{ width: '100%' }">
  679. <el-option label="正常" :value="0"></el-option>
  680. <el-option label="停用" :value="1"></el-option>
  681. </el-select>
  682. </el-form-item>
  683. <el-form-item label="备注" prop="remarks">
  684. <el-input v-model="corpsAttnForm.remarks"></el-input>
  685. </el-form-item>
  686. </div>
  687. </el-form>
  688. <span slot="footer" class="dialog-footer">
  689. <el-button @click="corpsAttnAddClose">取 消</el-button>
  690. <el-button type="primary" @click="corpsAttnAddConfirm">确 定</el-button>
  691. </span>
  692. </el-dialog>
  693. </dev>
  694. </template>
  695. <script>
  696. import { getToken } from "@/util/auth";
  697. import { addBcorps, updateBcorps, getBcorpsDetail } from "@/api/iosBasicData/bcorps";
  698. import { bcountrysList } from "@/api/iosBasicData/bcountrys";
  699. import { userList } from "@/api/system/user";
  700. import { getRateList } from "@/api/iosBasicData/rateManagement";
  701. import { bcorpstypedefineList } from "@/api/iosBasicData/bcorpstypedefine"
  702. import { getWorkDicts } from "@/api/system/dictbiz"
  703. // import { getBcorpsattnList, getBcorpsattnDetail, removevBcorpsattn, addBcorpsattn, updateBcorpsattn } from "@/api/iosBasicData/bcorpsattn";
  704. import bcountrys from '@/views/iosBasicData/bcountrys/index.vue'
  705. import user from '@/views/system/user.vue'
  706. import rateManagement from '@/views/iosBasicData/rateManagement/index.vue'
  707. import SearchQuery from '@/components/iosbasic-data/searchquery.vue'
  708. export default {
  709. props: {
  710. incomingAction: {
  711. type: String
  712. },
  713. },
  714. components: {
  715. SearchQuery, bcountrys, user, rateManagement
  716. },
  717. props: {
  718. detailData: {
  719. type: Object
  720. }
  721. },
  722. data() {
  723. return {
  724. // tab标签
  725. activeName: 'kgxq',
  726. // 远程搜索
  727. loading: false,
  728. headers: { "Blade-Auth": "Bearer " + getToken() },
  729. // 文件list
  730. fileList: [],
  731. // 国家list
  732. cntyOptions: [],
  733. // 币别list
  734. rateOptions: [],
  735. // 用户list
  736. userOptions: [],
  737. // 客户类别数据
  738. customTypeData: [],
  739. // 用户联系人form
  740. corpsAttnForm: {},
  741. // 字典
  742. creditLevelDict: [],
  743. enterpriseTypeDict: [],
  744. // 对话框
  745. // 客户联系人对话框
  746. dialogTitle: '窗口',
  747. corpsAttnDialogVisible: false,
  748. corpsAttnDialogIndex: null,
  749. formData: {
  750. status: 0,
  751. corpsAttnList: [],
  752. corpsBankList: [],
  753. corpsFilesList: [],
  754. },
  755. // rules: {
  756. // corpType: [{
  757. // required: true,
  758. // message: '请选择客户分类',
  759. // trigger: 'change'
  760. // }],
  761. // code: [{
  762. // required: true,
  763. // message: '请选择客户编号',
  764. // trigger: 'change'
  765. // }],
  766. // shortName: [{
  767. // required: true,
  768. // message: '请选择客户简称',
  769. // trigger: 'change'
  770. // }],
  771. // cnName: [{
  772. // required: true,
  773. // message: '请选择客户名称',
  774. // trigger: 'change'
  775. // }],
  776. // enName: [{
  777. // required: true,
  778. // message: '请选择英文名称',
  779. // trigger: 'change'
  780. // }],
  781. // cnAddr: [{
  782. // required: true,
  783. // message: '请选择中文地址',
  784. // trigger: 'change'
  785. // }],
  786. // enAddr: [{
  787. // required: true,
  788. // message: '请选择英文地址',
  789. // trigger: 'change'
  790. // }],
  791. // },
  792. rules: {
  793. corpType: [{
  794. required: true,
  795. message: ' ',
  796. trigger: 'change'
  797. }],
  798. code: [{
  799. required: true,
  800. message: ' ',
  801. trigger: 'change'
  802. }],
  803. shortName: [{
  804. required: true,
  805. message: ' ',
  806. trigger: 'change'
  807. }],
  808. cnName: [{
  809. required: true,
  810. message: ' ',
  811. trigger: 'change'
  812. }],
  813. enName: [{
  814. required: true,
  815. message: ' ',
  816. trigger: 'change'
  817. }],
  818. cnAddr: [{
  819. required: true,
  820. message: ' ',
  821. trigger: 'change'
  822. }],
  823. enAddr: [{
  824. required: true,
  825. message: ' ',
  826. trigger: 'change'
  827. }],
  828. },
  829. // 客户联系人表单校验
  830. // corpsAttnRules: {
  831. // code: [
  832. // { required: true, message: '请输入编号', trigger: 'change' }
  833. // ],
  834. // cname: [
  835. // { required: true, message: '请输入名称', trigger: 'change' }
  836. // ],
  837. // accountName: [
  838. // { required: true, message: '请输入账号名称', trigger: 'change' }
  839. // ],
  840. // accountBank: [
  841. // { required: true, message: '请输入账号银行', trigger: 'change' }
  842. // ],
  843. // accountNo: [
  844. // { required: true, message: '请输入银行账号', trigger: 'change' }
  845. // ],
  846. // curId: [
  847. // { required: true, message: '请输入币别', trigger: 'change' }
  848. // ],
  849. // sort: [
  850. // { required: true, message: '请输入排序', trigger: 'change' }
  851. // ],
  852. // invoiceHeader: [
  853. // { required: true, message: '请输入发票抬头', trigger: 'change' }
  854. // ],
  855. // },
  856. corpsAttnRules: {
  857. code: [
  858. { required: true, message: ' ', trigger: 'change' }
  859. ],
  860. cname: [
  861. { required: true, message: ' ', trigger: 'change' }
  862. ],
  863. accountName: [
  864. { required: true, message: ' ', trigger: 'change' }
  865. ],
  866. accountBank: [
  867. { required: true, message: ' ', trigger: 'change' }
  868. ],
  869. accountNo: [
  870. { required: true, message: ' ', trigger: 'change' }
  871. ],
  872. curId: [
  873. { required: true, message: ' ', trigger: 'change' }
  874. ],
  875. sort: [
  876. { required: true, message: ' ', trigger: 'change' }
  877. ],
  878. invoiceHeader: [
  879. { required: true, message: ' ', trigger: 'change' }
  880. ],
  881. },
  882. statusOptions: [{
  883. "label": "正常",
  884. "value": 0
  885. }, {
  886. "label": "停用",
  887. "value": 1
  888. }],
  889. }
  890. },
  891. computed: {},
  892. watch: {},
  893. created() {
  894. if (this.detailData.id) {
  895. getBcorpsDetail(this.detailData.id).then(res => {
  896. this.formData = res.data.data
  897. this.formData.corpTypeList = res.data.data.corpType.split(',')
  898. })
  899. }
  900. // 查询国家下拉
  901. bcountrysList(1, 10).then(res => {
  902. this.cntyOptions = res.data.data.records
  903. })
  904. // 查询币别下拉
  905. getRateList(1, 10).then(res => {
  906. this.rateOptions = res.data.data.records
  907. })
  908. // 获取客户类别
  909. bcorpstypedefineList().then(res => {
  910. this.customTypeData = res.data.data.records
  911. })
  912. // 查询用户信息
  913. userList().then((res) => {
  914. this.userOptions = res.data.data
  915. });
  916. // 查询字典
  917. getWorkDicts('bcorps-credit-level').then((res) => {
  918. this.creditLevelDict = res.data.data
  919. });
  920. getWorkDicts('bcorps-enterprise-type').then((res) => {
  921. this.enterpriseTypeDict = res.data.data
  922. });
  923. },
  924. mounted() { },
  925. methods: {
  926. corpTypeChange(ids) {
  927. // console.log(ids);
  928. this.formData.corpType = ids.join(",")
  929. // console.log(this.formData.corpType);
  930. },
  931. salesChange(id) {
  932. if (id == null) {
  933. this.formData.salesName = null
  934. }
  935. for (const user of this.userOptions) {
  936. if (user.id == id) {
  937. this.formData.salesName = user.realName;
  938. }
  939. }
  940. },
  941. // 查询国家下拉
  942. bcountrysListfun(cnName) {
  943. bcountrysList(1, 10, { cnName }).then(res => {
  944. this.cntyOptions = res.data.data.records
  945. })
  946. },
  947. // 查询币别下拉
  948. rateListfun(cnName) {
  949. getRateList(1, 10, { cnName }).then(res => {
  950. this.rateOptions = res.data.data.records
  951. })
  952. },
  953. bcountrysChange(value) {
  954. this.formData.cntyCode = value
  955. // for(let item of this.unitNoData) {
  956. // if (item.id == value) {
  957. // this.formData.cntyCode = item.code
  958. // }
  959. // }
  960. },
  961. rateChange(value) {
  962. this.corpsAttnForm.curId = value
  963. for (let item of this.unitNoData) {
  964. if (item.id == value) {
  965. this.corpsAttnForm.curNo = item.cnName
  966. }
  967. }
  968. },
  969. submitForm() {
  970. this.$refs['userDataForm'].validate(valid => {
  971. if (!valid) return
  972. // TODO 提交表单
  973. // 联系电话赋值
  974. if (this.formData.id != null) {
  975. updateBcorps(this.formData).then(_ => {
  976. this.$message({
  977. type: "success",
  978. message: "修改成功!"
  979. });
  980. })
  981. } else {
  982. this.formData.attnTel = this.formData.tel
  983. addBcorps(this.formData).then(() => {
  984. this.$message({
  985. type: "success",
  986. message: "添加成功!"
  987. });
  988. });
  989. }
  990. })
  991. },
  992. resetForm() {
  993. this.$refs['userDataForm'].resetFields()
  994. },
  995. // -------------------------------------- 弹窗相关 ---------------------------------
  996. // 客户联系人新建
  997. corpsAttnAdd() {
  998. this.corpsAttnDialogVisible = true
  999. if (this.activeName == 'khlxk') {
  1000. this.dialogTitle = "客户联系人"
  1001. } else if (this.activeName == 'yhxx') {
  1002. this.dialogTitle = "银行信息"
  1003. } else if (this.activeName == 'fj') {
  1004. this.dialogTitle = "附件"
  1005. } else if (this.activeName == 'fptt') {
  1006. this.dialogTitle = "发票抬头"
  1007. }
  1008. },
  1009. // 确认
  1010. corpsAttnAddConfirm() {
  1011. if (this.corpsAttnDialogIndex == null) {
  1012. this.corpsAttnForm.pid = this.formData.id
  1013. // 新建
  1014. this.$refs['corpsAttnForm'].validate(valid => {
  1015. if (!valid) return
  1016. // TODO 提交表单
  1017. // if (this.formData.id != null) {
  1018. // // 调用新建接口
  1019. // if (this.activeName == 'khlxk') {
  1020. // addBcorpsattn(this.corpsAttnForm).then(() => {
  1021. // this.$message({
  1022. // type: "success",
  1023. // message: "添加成功!"
  1024. // });
  1025. // });
  1026. // } else if (this.activeName == 'yhxx') {
  1027. // // this.formData.corpsBankList.push(this.corpsAttnForm);
  1028. // } else if (this.activeName == 'fj') {
  1029. // // this.formData.corpsFilesList.push(this.corpsAttnForm);
  1030. // }
  1031. // } else {
  1032. if (this.activeName == 'khlxk') {
  1033. this.formData.corpsAttnList.push(this.corpsAttnForm);
  1034. } else if (this.activeName == 'yhxx') {
  1035. this.formData.corpsBankList.push(this.corpsAttnForm);
  1036. } else if (this.activeName == 'fj') {
  1037. this.formData.corpsFilesList.push(this.corpsAttnForm);
  1038. } else if (this.activeName == 'fptt') {
  1039. this.formData.corpsInvoiceHeaderList.push(this.corpsAttnForm);
  1040. }
  1041. // }
  1042. this.corpsAttnForm = {};
  1043. this.corpsAttnDialogVisible = false;
  1044. })
  1045. } else {
  1046. // 修改
  1047. // if (this.corpsAttnForm.id != null) {
  1048. // // 调用修改接口
  1049. // if (this.activeName == 'khlxk') {
  1050. // updateBcorpsattn(this.corpsAttnForm).then(_ => {
  1051. // this.$message({
  1052. // type: "success",
  1053. // message: "修改成功!"
  1054. // });
  1055. // })
  1056. // } else if (this.activeName == 'yhxx') {
  1057. // // this.formData.corpsBankList.push(this.corpsAttnForm);
  1058. // } else if (this.activeName == 'fj') {
  1059. // // this.formData.corpsFilesList.push(this.corpsAttnForm);
  1060. // }
  1061. // } else {
  1062. if (this.activeName == 'khlxk') {
  1063. this.formData.corpsAttnList[this.corpsAttnDialogIndex] = this.corpsAttnForm
  1064. } else if (this.activeName == 'yhxx') {
  1065. this.formData.corpsBankList[this.corpsAttnDialogIndex] = this.corpsAttnForm
  1066. } else if (this.activeName == 'fj') {
  1067. this.formData.corpsFilesList[this.corpsAttnDialogIndex] = this.corpsAttnForm
  1068. } else if (this.activeName == 'fptt') {
  1069. this.formData.corpsInvoiceHeaderList[this.corpsAttnDialogIndex] = this.corpsAttnForm
  1070. }
  1071. // }
  1072. this.corpsAttnForm = {};
  1073. this.corpsAttnDialogIndex = null
  1074. this.corpsAttnDialogVisible = false;
  1075. }
  1076. },
  1077. // 编辑
  1078. corpsAttnHandle(scope) {
  1079. this.corpsAttnDialogIndex = scope.$index
  1080. this.corpsAttnForm = scope.row;
  1081. this.corpsAttnDialogVisible = true
  1082. },
  1083. // 删除
  1084. corpsAttnDelete(scope) {
  1085. this.$confirm('确认要删除吗?', '提示', {
  1086. confirmButtonText: '确定',
  1087. cancelButtonText: '取消',
  1088. type: 'warning'
  1089. }).then(() => {
  1090. // if (scope.row.id != null) {
  1091. // // 调用删除接口
  1092. // if (this.activeName == 'khlxk') {
  1093. // removevBcorpsattn(scope.row.id);
  1094. // } else if (this.activeName == 'yhxx') {
  1095. // this.formData.corpsBankList.splice(scope.$index, 1)
  1096. // } else if (this.activeName == 'fj') {
  1097. // this.formData.corpsFilesList.splice(scope.$index, 1)
  1098. // }
  1099. // } else {
  1100. if (this.activeName == 'khlxk') {
  1101. this.formData.corpsAttnList.splice(scope.$index, 1)
  1102. } else if (this.activeName == 'yhxx') {
  1103. this.formData.corpsBankList.splice(scope.$index, 1)
  1104. } else if (this.activeName == 'fj') {
  1105. this.formData.corpsFilesList.splice(scope.$index, 1)
  1106. } else if (this.activeName == 'fptt') {
  1107. this.formData.corpsInvoiceHeaderList.splice(scope.$index, 1)
  1108. }
  1109. // }
  1110. this.$message({
  1111. type: 'success',
  1112. message: '删除成功!'
  1113. });
  1114. }).catch(() => {
  1115. // this.$message({
  1116. // type: 'info',
  1117. // message: '已取消删除'
  1118. // });
  1119. });
  1120. },
  1121. // 关闭窗口
  1122. corpsAttnAddClose() {
  1123. this.corpsAttnForm = {};
  1124. this.corpsAttnDialogVisible = false;
  1125. },
  1126. // 文件上传成功
  1127. handleSuccess(response, file, fileList) {
  1128. this.corpsAttnForm.fileName = response.data.originalName;
  1129. this.corpsAttnForm.url = response.data.link;
  1130. },
  1131. // 删除文件
  1132. handleRemove(file, fileList) {
  1133. this.$confirm(`确定移除 ${file.name}?`, '提示', {
  1134. confirmButtonText: '确定',
  1135. cancelButtonText: '取消',
  1136. type: 'warning'
  1137. }).then(() => {
  1138. this.corpsAttnForm.fileName = null
  1139. this.corpsAttnForm.url = null
  1140. this.$message({
  1141. type: 'success',
  1142. message: '删除成功!'
  1143. });
  1144. }).catch(() => {
  1145. this.$message({
  1146. type: 'info',
  1147. message: '已取消删除'
  1148. });
  1149. });
  1150. },
  1151. // ---------------------------------------------------------------------------------
  1152. //返回列表
  1153. backToList() {
  1154. // if (this.formData.id) {
  1155. // this.unLock({
  1156. // moduleName: "xxb",
  1157. // tableName: "primary_school",
  1158. // billId: this.form.id,
  1159. // billNo: this.form.exrateYear + "-" + this.form.moon
  1160. // });
  1161. // }
  1162. this.formData = {
  1163. status: 0,
  1164. corpsAttnList: [],
  1165. corpsBankList: [],
  1166. corpsFilesList: [],
  1167. }
  1168. this.corpsAttnForm = {}
  1169. this.corpsAttnDialogVisible = false,
  1170. this.corpsAttnDialogIndex = null,
  1171. this.$emit("goBack");
  1172. // this.leaveDetailsKey(this.$route.name);
  1173. },
  1174. }
  1175. }
  1176. </script>
  1177. <style lang="scss" scoped>
  1178. /deep/ .el-form-item {
  1179. margin-bottom: 8px;
  1180. // margin-top: 8px;
  1181. }
  1182. .head {
  1183. width: 100%;
  1184. display: flex;
  1185. justify-content: space-between;
  1186. align-items: center;
  1187. }
  1188. .text {
  1189. font-size: 14px;
  1190. }
  1191. .item {
  1192. padding: 18px 0;
  1193. }
  1194. .box-card {
  1195. margin: 10px;
  1196. margin-bottom: 0;
  1197. box-shadow: 0 0 0 red;
  1198. }
  1199. </style>