detailsPage.vue 66 KB

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