bgdetails.vue 96 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587
  1. <template>
  2. <div class="borderless" v-loading="pageLoading">
  3. <div class="customer-head">
  4. <div class="customer-back">
  5. <el-button type="danger" style="border: none;background: none;color: red"
  6. icon="el-icon-arrow-left"
  7. @click="backToList">返回列表
  8. </el-button>
  9. </div>
  10. <div class="add-customer-btn">
  11. <el-button size="small" style="margin-right: 8px"
  12. :loading="saveLoading" :disabled="!form.id" @click="previewreportfun" >预 览
  13. </el-button>
  14. <el-button size="small" style="margin-right: 8px" v-if="roleName.indexOf('admin') != -1"
  15. :loading="saveLoading" :disabled="!form.id" @click="DesignreportDialog = true" >报表设计
  16. </el-button>
  17. <el-button size="small" type="warning" :disabled="!form.id" v-if="form.status == 1"
  18. @click.stop="revokeDocumentApproval">撤销单据请核
  19. </el-button>
  20. <el-button size="small" type="success" :disabled="!form.id || detailData.seeDisabled"
  21. v-if="form.status == 0 || form.status == 4"
  22. @click.stop="DocumentApproval">单据请核
  23. </el-button>
  24. <el-button size="small" type="primary" style="margin-right: 8px"
  25. :loading="saveLoading" @click="savefun">保 存
  26. </el-button>
  27. </div>
  28. </div>
  29. <div style="margin-top: 65px">
  30. <el-tabs type="border-card" v-model="bigtabs" @tab-click="bigHandleClick">
  31. <el-tab-pane label="委托信息" name="wt">
  32. <el-form :model="form" ref="form" label-width="90px" class="demo-ruleForm">
  33. <basic-container :showBtn="true">
  34. <el-row>
  35. <el-col :span="4">
  36. <el-form-item label="业务编号" prop="billNo" label-width="70px">
  37. <el-input style="width: 100%;" v-model="form.billNo"
  38. size="small" autocomplete="off"
  39. :disabled="true"
  40. clearable placeholder="业务编号" ></el-input>
  41. </el-form-item>
  42. </el-col>
  43. <el-col :span="4">
  44. <el-form-item label="接单日期" prop="billDate" label-width="70px">
  45. <el-date-picker v-model="form.billDate" clearable style="width: 100%;"
  46. type="date" size="small" :disabled="true"
  47. value-format="yyyy-MM-dd HH:mm:ss"
  48. placeholder="选择日期">
  49. </el-date-picker>
  50. </el-form-item>
  51. </el-col>
  52. <el-col :span="4">
  53. <el-form-item label="贸易类型" prop="businessType" label-width="70px">
  54. <search-query :datalist="businessTypeData"
  55. :selectValue="form.businessType"
  56. :clearable="true"
  57. :disabled="true"
  58. :buttonIf="false"
  59. placeholder="贸易类型"
  60. :forParameter="{key:'value',label:'label',value:'value'}"
  61. @corpChange="corpChange($event,'billNo')">
  62. </search-query>
  63. </el-form-item>
  64. </el-col>
  65. <el-col :span="4">
  66. <el-form-item label="制单人" prop="createUserName" label-width="70px">
  67. <el-input style="width: 100%;" v-model="form.createUserName"
  68. size="small" autocomplete="off"
  69. :disabled="true"
  70. clearable placeholder="制单人" ></el-input>
  71. </el-form-item>
  72. </el-col>
  73. <el-col :span="4">
  74. <el-form-item label="源操作" prop="srcOperation" label-width="70px">
  75. <el-input style="width: 100%;" v-model="form.srcOperation"
  76. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  77. clearable placeholder="请输入源操作" ></el-input>
  78. </el-form-item>
  79. </el-col>
  80. <el-col :span="4">
  81. <el-form-item label="对账约号" prop="reconciliationAgreementNumber" label-width="70px">
  82. <el-input style="width: 100%;" v-model="form.reconciliationAgreementNumber"
  83. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  84. clearable placeholder="请输入对账约号" ></el-input>
  85. </el-form-item>
  86. </el-col>
  87. <el-col :span="10">
  88. <el-form-item label="代理公司" prop="agencyCompanytId" label-width="70px">
  89. <el-row type="flex" justify="space-between" :gutter="10">
  90. <el-col :span="8">
  91. <search-query :datalist="agencyCompanytData"
  92. :selectValue="form.agencyCompanytCnName"
  93. :filterable="true"
  94. :clearable="true"
  95. :remote="true"
  96. :disabled="detailData.seeDisabled"
  97. :buttonIf="false"
  98. placeholder="请选择代理公司"
  99. :forParameter="{key:'id',label:'cnName',value:'cnName'}"
  100. @remoteMethod="agencyCompanytBcorpsListfun"
  101. @corpChange="corpChange($event,'agencyCompanytCnName')"
  102. @corpFocus="agencyCompanytBcorpsListfun">
  103. </search-query>
  104. </el-col>
  105. <el-col :span="16">
  106. <el-input style="width: 100%;" v-model="form.agencyCompanytCode"
  107. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  108. clearable placeholder="代理公司" ></el-input>
  109. </el-col>
  110. </el-row>
  111. </el-form-item>
  112. </el-col>
  113. <el-col :span="4">
  114. <el-form-item label="提单号" prop="mblno" label-width="70px">
  115. <el-input style="width: 100%;" v-model="form.mblno"
  116. size="small" autocomplete="off"
  117. :disabled="detailData.seeDisabled"
  118. clearable placeholder="请输入提单号" ></el-input>
  119. </el-form-item>
  120. </el-col>
  121. <el-col :span="5">
  122. <el-form-item label="业务来源" prop="srcType" label-width="70px">
  123. <el-row type="flex" justify="space-between" :gutter="10" >
  124. <el-col :span="12">
  125. <search-query :datalist="srcTypeData"
  126. :selectValue="form.srcType"
  127. :clearable="true"
  128. :buttonIf="false"
  129. :disabled="detailData.seeDisabled"
  130. placeholder="请选择业务来源"
  131. :forParameter="{key:'dictKey',label:'dictValue',value:'dictKey'}"
  132. @remoteMethod="srcTypeWorkDictsfun"
  133. @corpChange="corpChange($event,'srcType')"
  134. @corpFocus="srcTypeWorkDictsfun">
  135. </search-query>
  136. </el-col>
  137. <el-col :span="12">
  138. <search-query :datalist="srcData"
  139. :selectValue="form.srcCnName"
  140. :filterable="true"
  141. :clearable="true"
  142. :remote="true"
  143. :buttonIf="false"
  144. placeholder="请选择详情"
  145. :disabled="!form.srcType || detailData.seeDisabled"
  146. :forParameter="srcForParameter"
  147. @remoteMethod="srcfun"
  148. @corpChange="corpChange($event,'srcCnName')"
  149. @corpFocus="srcfun">
  150. </search-query>
  151. </el-col>
  152. </el-row>
  153. </el-form-item>
  154. </el-col>
  155. <el-col :span="5">
  156. <el-form-item label="申报方式" prop="declarationMethodName" label-width="70px">
  157. <el-row type="flex" justify="space-between" :gutter="10" >
  158. <el-col :span="12">
  159. <search-query :datalist="declarationMethodData"
  160. :selectValue="form.declarationMethodName"
  161. :clearable="true"
  162. :buttonIf="false"
  163. :disabled="detailData.seeDisabled"
  164. placeholder="请选择申报方式"
  165. :forParameter="{key:'dictValue',label:'dictValue',value:'dictValue'}"
  166. @remoteMethod="declarationMethodWorkDictsfun"
  167. @corpChange="corpChange($event,'declarationMethodName')"
  168. @corpFocus="declarationMethodWorkDictsfun">
  169. </search-query>
  170. </el-col>
  171. <el-col :span="12">
  172. <el-input style="width: 100%;" v-model="form.declarationMethodCode"
  173. size="small" autocomplete="off" :disabled="true"
  174. clearable placeholder="申报方式" ></el-input>
  175. </el-col>
  176. </el-row>
  177. </el-form-item>
  178. </el-col>
  179. <el-col :span="10">
  180. <el-form-item label="经营单位" prop="agencyCompanytId" label-width="70px">
  181. <el-row type="flex" justify="space-between" :gutter="10">
  182. <el-col :span="8">
  183. <search-query :datalist="corpData"
  184. :selectValue="form.corpCnName"
  185. :filterable="true"
  186. :clearable="true"
  187. :remote="true"
  188. :disabled="detailData.seeDisabled"
  189. :buttonIf="false"
  190. placeholder="请选择经营单位"
  191. :forParameter="{key:'id',label:'cnName',value:'cnName'}"
  192. @remoteMethod="corpBcorpsListfun"
  193. @corpChange="corpChange($event,'corpCnName')"
  194. @corpFocus="corpBcorpsListfun">
  195. </search-query>
  196. </el-col>
  197. <el-col :span="16">
  198. <el-input style="width: 100%;" v-model="form.corpEnName"
  199. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  200. clearable placeholder="经营单位" ></el-input>
  201. </el-col>
  202. </el-row>
  203. </el-form-item>
  204. </el-col>
  205. <el-col :span="5">
  206. <el-form-item label="企业名称" prop="enterpriseCnName" label-width="80px">
  207. <search-query :datalist="enterpriseData"
  208. :selectValue="form.enterpriseCnName"
  209. :filterable="true"
  210. :clearable="true"
  211. :remote="true"
  212. :buttonIf="false"
  213. :disabled="detailData.seeDisabled"
  214. placeholder="请选择企业名称"
  215. :forParameter="{key:'id',label:'cnName',value:'cnName'}"
  216. @remoteMethod="enterpriseCnNameBcorpsListfun"
  217. @corpChange="corpChange($event,'enterpriseCnName')"
  218. @corpFocus="enterpriseCnNameBcorpsListfun">
  219. </search-query>
  220. </el-form-item>
  221. </el-col>
  222. <el-col :span="5">
  223. <el-form-item label="企业海关编码" prop="billNo" label-width="100px">
  224. <el-input style="width: 100%;" v-model="form.enterpriseCode"
  225. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  226. clearable placeholder="请输入企业海关编码" ></el-input>
  227. </el-form-item>
  228. </el-col>
  229. <el-col :span="4">
  230. <el-form-item label="所属团队" prop="enterpriseCnName" label-width="70px">
  231. <search-query :datalist="teamData"
  232. :selectValue="form.teamName"
  233. :filterable="true"
  234. :clearable="true"
  235. :remote="true"
  236. :buttonIf="false"
  237. :disabled="detailData.seeDisabled"
  238. placeholder="请选择所属团队"
  239. :forParameter="{key:'id',label:'postName',value:'postName'}"
  240. @remoteMethod="postSelectByUserfun"
  241. @corpChange="corpChange($event,'teamName')"
  242. @corpFocus="postSelectByUserfun">
  243. </search-query>
  244. </el-form-item>
  245. </el-col>
  246. <el-col :span="4">
  247. <el-form-item label="订舱号" prop="bookingNo" label-width="70px">
  248. <el-input style="width: 100%;" v-model="form.bookingNo"
  249. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  250. clearable placeholder="请输入订舱号" ></el-input>
  251. </el-form-item>
  252. </el-col>
  253. <!--<el-col :span="4">-->
  254. <!-- <el-form-item label="船名" prop="vesselEnName" label-width="70px">-->
  255. <!-- <search-query :datalist="vesselData"-->
  256. <!-- :selectValue="form.vesselEnName"-->
  257. <!-- :filterable="true"-->
  258. <!-- :clearable="true"-->
  259. <!-- :remote="true"-->
  260. <!-- :buttonIf="false"-->
  261. <!-- placeholder="请选择船名"-->
  262. <!-- :disabled="detailData.seeDisabled"-->
  263. <!-- :forParameter="{key:'id',label:'enName',value:'enName'}"-->
  264. <!-- @remoteMethod="vesselBvesselsListfun"-->
  265. <!-- @corpChange="corpChange($event,'vessel')"-->
  266. <!-- @corpFocus="vesselBvesselsListfun" >-->
  267. <!-- </search-query>-->
  268. <!-- </el-form-item>-->
  269. <!--</el-col>-->
  270. <el-col :span="4">
  271. <el-form-item label="三检单号" prop="tripleInspectionNumber" label-width="70px">
  272. <el-input style="width: 100%;" v-model="form.tripleInspectionNumber"
  273. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  274. clearable placeholder="请输入三检单号" ></el-input>
  275. </el-form-item>
  276. </el-col>
  277. <el-col :span="4">
  278. <el-form-item label="报检日期" prop="inspectionDeclarationDate" label-width="70px">
  279. <el-date-picker v-model="form.inspectionDeclarationDate" clearable style="width: 100%;"
  280. type="date" size="small" :disabled="detailData.seeDisabled"
  281. value-format="yyyy-MM-dd HH:mm:ss"
  282. placeholder="请选择报检日期">
  283. </el-date-picker>
  284. </el-form-item>
  285. </el-col>
  286. <el-col :span="4">
  287. <el-form-item label="ETD" prop="etdDate" label-width="70px">
  288. <el-date-picker v-model="form.etdDate" clearable style="width: 100%;"
  289. type="date" size="small" :disabled="detailData.seeDisabled"
  290. value-format="yyyy-MM-dd HH:mm:ss"
  291. placeholder="请选择ETD日期">
  292. </el-date-picker>
  293. </el-form-item>
  294. </el-col>
  295. <el-col :span="8">
  296. <el-form-item label="发票号码" prop="invoiceNumber" label-width="70px">
  297. <el-input style="width: 100%;" v-model="form.invoiceNumber"
  298. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  299. clearable placeholder="请输入发票号码" ></el-input>
  300. </el-form-item>
  301. </el-col>
  302. <el-col :span="8">
  303. <el-form-item label="贸易方式" prop="tradeMethodName" label-width="70px">
  304. <el-row type="flex" justify="space-between" :gutter="10">
  305. <el-col :span="12">
  306. <search-query :datalist="tradeMethodData"
  307. :selectValue="form.tradeMethodName"
  308. :filterable="true"
  309. :clearable="true"
  310. :remote="true"
  311. :buttonIf="false"
  312. :disabled="detailData.seeDisabled"
  313. placeholder="请选择贸易方式"
  314. :forParameter="{key:'id',label:'cnName',value:'cnName'}"
  315. @remoteMethod="tradeMethodBtrademodesListfun"
  316. @corpChange="corpChange($event,'tradeMethodName')"
  317. @corpFocus="tradeMethodBtrademodesListfun">
  318. </search-query>
  319. </el-col>
  320. <el-col :span="12">
  321. <el-input style="width: 100%;" v-model="form.tradeMethodCode"
  322. size="small" autocomplete="off" :disabled="true"
  323. clearable placeholder="贸易方式" ></el-input>
  324. </el-col>
  325. </el-row>
  326. </el-form-item>
  327. </el-col>
  328. <el-col :span="4">
  329. <el-form-item label="运抵国(地区)" prop="destinationCountryCnName" label-width="90px">
  330. <search-query :datalist="destinationCountryData"
  331. :selectValue="form.destinationCountryCnName"
  332. :filterable="true"
  333. :clearable="true"
  334. :remote="true"
  335. :buttonIf="false"
  336. :disabled="detailData.seeDisabled"
  337. placeholder="请选择运抵国"
  338. :forParameter="{key:'id',label:'cnName',value:'cnName'}"
  339. @remoteMethod="destinationCountrybcountrysListfun"
  340. @corpChange="corpChange($event,'destinationCountryCnName')"
  341. @corpFocus="destinationCountrybcountrysListfun">
  342. </search-query>
  343. </el-form-item>
  344. </el-col>
  345. <el-col :span="4">
  346. <el-form-item label="指运港" prop="portOfDestinationEnName" label-width="70px">
  347. <search-query :datalist="portOfDestinationData"
  348. :selectValue="form.portOfDestinationEnName"
  349. :filterable="true"
  350. :clearable="true"
  351. :remote="true"
  352. :buttonIf="false"
  353. :disabled="detailData.seeDisabled"
  354. placeholder="请选择指运港"
  355. :forParameter="{key:'id',label:'enName',value:'enName'}"
  356. @remoteMethod="portOfDestinationBportsListfun"
  357. @corpChange="corpChange($event,'portOfDestinationEnName')"
  358. @corpFocus="portOfDestinationBportsListfun">
  359. </search-query>
  360. </el-form-item>
  361. </el-col>
  362. <el-col :span="4">
  363. <el-form-item label="出口口岸" prop="exportPortEnName" label-width="70px">
  364. <search-query :datalist="exportPortData"
  365. :selectValue="form.exportPortEnName"
  366. :filterable="true"
  367. :clearable="true"
  368. :remote="true"
  369. :buttonIf="false"
  370. :disabled="detailData.seeDisabled"
  371. placeholder="请选择出口口岸"
  372. :forParameter="{key:'id',label:'enName',value:'enName'}"
  373. @remoteMethod="exportPortBportsListfun"
  374. @corpChange="corpChange($event,'exportPortEnName')"
  375. @corpFocus="exportPortBportsListfun">
  376. </search-query>
  377. </el-form-item>
  378. </el-col>
  379. <el-col :span="4">
  380. <el-form-item label="报关单号" prop="customsDeclarationNumber" label-width="70px">
  381. <el-input style="width: 100%;" v-model="form.customsDeclarationNumber"
  382. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  383. clearable placeholder="请输入报关单号" ></el-input>
  384. </el-form-item>
  385. </el-col>
  386. <el-col :span="4">
  387. <el-form-item label="备案号" prop="recordNumber" label-width="70px">
  388. <el-input style="width: 100%;" v-model="form.recordNumber"
  389. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  390. clearable placeholder="请输入备案号" ></el-input>
  391. </el-form-item>
  392. </el-col>
  393. <el-col :span="4">
  394. <el-form-item label="ReferenceNO" prop="refno" label-width="90px">
  395. <el-input style="width: 100%;" v-model="form.refno"
  396. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  397. clearable placeholder="请输入Reference NO" ></el-input>
  398. </el-form-item>
  399. </el-col>
  400. <el-col :span="4">
  401. <el-form-item label="申报日期" prop="declareDate" label-width="70px">
  402. <el-date-picker v-model="form.declareDate" clearable style="width: 100%;"
  403. type="date" size="small" :disabled="detailData.seeDisabled"
  404. value-format="yyyy-MM-dd HH:mm:ss"
  405. placeholder="请选择申报日期">
  406. </el-date-picker>
  407. </el-form-item>
  408. </el-col>
  409. <el-col :span="4">
  410. <el-form-item label="预录日期" prop="preRrecordingDate" label-width="70px">
  411. <el-date-picker v-model="form.preRrecordingDate" clearable style="width: 100%;"
  412. type="date" size="small" :disabled="detailData.seeDisabled"
  413. value-format="yyyy-MM-dd HH:mm:ss"
  414. placeholder="请选择预录日期">
  415. </el-date-picker>
  416. </el-form-item>
  417. </el-col>
  418. <el-col :span="4">
  419. <el-form-item label="提运单号" prop="contractAgreementNumber" label-width="70px">
  420. <el-input style="width: 100%;" v-model="form.contractAgreementNumber"
  421. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  422. clearable placeholder="请输入提运单号" ></el-input>
  423. </el-form-item>
  424. </el-col>
  425. <el-col :span="4">
  426. <el-form-item label="发货单位" prop="deliveryCnName" label-width="70px">
  427. <search-query :datalist="deliveryData"
  428. :selectValue="form.deliveryCnName"
  429. :filterable="true"
  430. :clearable="true"
  431. :remote="true"
  432. :disabled="detailData.seeDisabled"
  433. :buttonIf="false"
  434. placeholder="请选择发货单位"
  435. :forParameter="{key:'id',label:'cnName',value:'cnName'}"
  436. @remoteMethod="deliveryBcorpsListfun"
  437. @corpChange="corpChange($event,'deliveryCnName')"
  438. @corpFocus="deliveryBcorpsListfun">
  439. </search-query>
  440. </el-form-item>
  441. </el-col>
  442. <el-col :span="4">
  443. <el-form-item label="结汇方式" prop="exchangeSettlementMethod" label-width="70px">
  444. <search-query :datalist="exchangeSettlementMethodData"
  445. :selectValue="form.exchangeSettlementMethod"
  446. :clearable="true"
  447. :buttonIf="false"
  448. :disabled="detailData.seeDisabled"
  449. placeholder="请选择结汇方式"
  450. :forParameter="{key:'dictValue',label:'dictValue',value:'dictValue'}"
  451. @remoteMethod="exchangeSettlementMethodWorkDictsfun"
  452. @corpChange="corpChange($event,'exchangeSettlementMethod')"
  453. @corpFocus="exchangeSettlementMethodWorkDictsfun">
  454. </search-query>
  455. </el-form-item>
  456. </el-col>
  457. <el-col :span="4">
  458. <el-form-item label="成交方式" prop="dealMethod" label-width="70px">
  459. <search-query :datalist="dealMethodData"
  460. :selectValue="form.dealMethod"
  461. :clearable="true"
  462. :buttonIf="false"
  463. :disabled="detailData.seeDisabled"
  464. placeholder="请选择成交方式"
  465. :forParameter="{key:'dictValue',label:'dictValue',value:'dictValue'}"
  466. @remoteMethod="dealMethodWorkDictsfun"
  467. @corpChange="corpChange($event,'dealMethod')"
  468. @corpFocus="dealMethodWorkDictsfun">
  469. </search-query>
  470. </el-form-item>
  471. </el-col>
  472. <el-col :span="4">
  473. <el-form-item label="运费" prop="amountFreight" label-width="70px">
  474. <el-input style="width: 100%;" v-model="form.amountFreight"
  475. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  476. clearable placeholder="请输入运费" ></el-input>
  477. </el-form-item>
  478. </el-col>
  479. <el-col :span="4">
  480. <el-form-item label="保费" prop="amountPremium" label-width="70px">
  481. <el-input style="width: 100%;" v-model="form.amountPremium"
  482. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  483. clearable placeholder="请输入保费" ></el-input>
  484. </el-form-item>
  485. </el-col>
  486. <el-col :span="4">
  487. <el-form-item label="杂费" prop="amountMiscellaneousExpenses" label-width="70px">
  488. <el-input style="width: 100%;" v-model="form.amountMiscellaneousExpenses"
  489. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  490. clearable placeholder="请输入杂费" ></el-input>
  491. </el-form-item>
  492. </el-col>
  493. <el-col :span="4">
  494. <el-form-item label="境内货源地" prop="domesticSourceOfGoods" label-width="80px">
  495. <el-input style="width: 100%;" v-model="form.domesticSourceOfGoods"
  496. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  497. clearable placeholder="请输入境内货源地" ></el-input>
  498. </el-form-item>
  499. </el-col>
  500. <el-col :span="4">
  501. <el-form-item label="合同协议号" prop="deliveryNumbers" label-width="80px">
  502. <el-input style="width: 100%;" v-model="form.deliveryNumbers"
  503. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  504. clearable placeholder="请输入合同协议号" ></el-input>
  505. </el-form-item>
  506. </el-col>
  507. <el-col :span="4">
  508. <el-form-item label="件数" prop="quantity" label-width="70px">
  509. <el-input style="width: 100%;" v-model="form.quantity"
  510. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  511. clearable placeholder="请输入件数" ></el-input>
  512. </el-form-item>
  513. </el-col>
  514. <el-col :span="4">
  515. <el-form-item label="包装种类" prop="packingUnit" label-width="70px">
  516. <search-query :datalist="packingUnitData"
  517. :selectValue="form.packingUnit"
  518. :filterable="true"
  519. :clearable="true"
  520. :remote="true"
  521. :buttonIf="false"
  522. placeholder="请选择包装种类"
  523. :forParameter="{key:'id',label:'cnName',value:'cnName'}"
  524. @remoteMethod="packingUnitBunitsListfun"
  525. @corpChange="corpChange($event,'packingUnit')"
  526. @corpFocus="packingUnitBunitsListfun">
  527. </search-query>
  528. </el-form-item>
  529. </el-col>
  530. <el-col :span="4">
  531. <el-form-item label="毛重" prop="grossWeight" label-width="70px">
  532. <el-input style="width: 100%;" v-model="form.grossWeight"
  533. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  534. clearable placeholder="请输入毛重" ></el-input>
  535. </el-form-item>
  536. </el-col>
  537. <el-col :span="4">
  538. <el-form-item label="净重" prop="netWeight" label-width="70px">
  539. <el-input style="width: 100%;" v-model="form.netWeight"
  540. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  541. clearable placeholder="请输入净重" ></el-input>
  542. </el-form-item>
  543. </el-col>
  544. <el-col :span="4">
  545. <el-form-item label="货物金额" prop="amountGoods" label-width="80px">
  546. <el-input style="width: 100%;" v-model="form.amountGoods"
  547. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  548. clearable placeholder="请输入货物金额" ></el-input>
  549. </el-form-item>
  550. </el-col>
  551. <el-col :span="8">
  552. <el-form-item label="核注清单号" prop="amountGoods" label-width="80px">
  553. <el-input style="width: 100%;" v-model="form.approvalListNumber"
  554. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  555. clearable placeholder="请输入核注清单号" ></el-input>
  556. </el-form-item>
  557. </el-col>
  558. <el-col :span="8">
  559. <el-form-item label="唛码及备注" prop="marks" label-width="110px">
  560. <el-input style="width: 100%;" v-model="form.marks" type="textarea"
  561. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  562. clearable placeholder="请输入唛码及备注" ></el-input>
  563. </el-form-item>
  564. </el-col>
  565. <el-col :span="8">
  566. <el-form-item label="备注" prop="remarks" label-width="70px">
  567. <el-input style="width: 100%;" v-model="form.remarks" type="textarea"
  568. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  569. clearable placeholder="请输入备注" ></el-input>
  570. </el-form-item>
  571. </el-col>
  572. <el-col :span="24">
  573. <el-form-item label="随附单据:" prop="documentsAttached" label-width="70px">
  574. <el-checkbox size="medium" true-label="fp" :false-label="null" :disabled="detailData.seeDisabled" v-model="comprehensiveForm.fp">发票</el-checkbox>
  575. <el-checkbox size="medium" true-label="xd" :false-label="null" :disabled="detailData.seeDisabled" v-model="comprehensiveForm.xd">箱单</el-checkbox>
  576. <el-checkbox size="medium" true-label="ht" :false-label="null" :disabled="detailData.seeDisabled" v-model="comprehensiveForm.ht">合同</el-checkbox>
  577. <el-checkbox size="medium" true-label="sjtgd" :false-label="null" :disabled="detailData.seeDisabled" v-model="comprehensiveForm.sjtgd">商检通过单</el-checkbox>
  578. <el-checkbox size="medium" true-label="xyz" :false-label="null" :disabled="detailData.seeDisabled" v-model="comprehensiveForm.xyz">信用证</el-checkbox>
  579. <el-checkbox size="medium" true-label="hzpz" :false-label="null" :disabled="detailData.seeDisabled" v-model="comprehensiveForm.hzpz">换证凭单</el-checkbox>
  580. <el-checkbox size="medium" true-label="cjd" :false-label="null" :disabled="detailData.seeDisabled" v-model="comprehensiveForm.cjd">厂检单</el-checkbox>
  581. <el-checkbox size="medium" true-label="bzxnjgd" :false-label="null" :disabled="detailData.seeDisabled" v-model="comprehensiveForm.bzxnjgd">包装性能结果单</el-checkbox>
  582. <el-checkbox size="medium" true-label="xkz" :false-label="null" :disabled="detailData.seeDisabled" v-model="comprehensiveForm.xkz">许可证</el-checkbox>
  583. <el-checkbox size="medium" true-label="wtdj" :false-label="null" :disabled="detailData.seeDisabled" v-model="comprehensiveForm.wtdj">委托单据</el-checkbox>
  584. </el-form-item>
  585. <el-form-item label="其他:" prop="documentsAttachedOther" label-width="70px">
  586. <el-input style="width: 100%;" v-model="form.documentsAttachedOther"
  587. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  588. clearable placeholder="请输入其他" ></el-input>
  589. </el-form-item>
  590. </el-col>
  591. </el-row>
  592. </basic-container>
  593. </el-form>
  594. <basic-container>
  595. <table-details :tableData="form.customsDeclarationGoodsList" :form="form" :roleName="roleName"
  596. :disabled="detailData.seeDisabled"
  597. @billsDetailfun="customsdeclarationDetailfun(form.id)" ></table-details>
  598. </basic-container>
  599. </el-tab-pane>
  600. <el-tab-pane label="费用信息" name="fy"
  601. v-if="roleName.indexOf('admin') != -1?true:roleName.indexOf('应收修改') != -1 || roleName.indexOf('应付修改') != -1 || roleName.indexOf('应收查看') != -1 || roleName.indexOf('应付查看') != -1" >
  602. <feecenter :assemblyForm="form" :detailData="detailData"
  603. :pleasereviewType="pleasereviewType" :pid="form.id"
  604. @billsDetailfun="customsdeclarationDetailfun(form.id)"></feecenter>
  605. </el-tab-pane>
  606. </el-tabs>
  607. </div>
  608. <!--设计报表弹窗-->
  609. <el-dialog append-to-body title="设计报表" class="el-dialogDeep" :visible.sync="DesignreportDialog" width="70%"
  610. :close-on-click-modal="false" :destroy-on-close="true" :close-on-press-escape="false" v-dialog-drag>
  611. <reports :id="form.id" :assemblyForm="form" businessValue="BGAE" classifyCode="BGAE" ></reports>
  612. </el-dialog>
  613. <!--预览-->
  614. <el-dialog
  615. title="打印"
  616. :visible.sync="selectPrintingDialog"
  617. append-to-body
  618. width="70%"
  619. :close-on-click-modal="false"
  620. :destroy-on-close="true"
  621. :close-on-press-escape="false"
  622. v-dialog-drag>
  623. <div>
  624. <reportformsList ref="reportformsList" @reportRadio="reportRadio"></reportformsList>
  625. </div>
  626. <span slot="footer" class="dialog-footer">
  627. <el-button size="small" @click="selectPrintingDialog = false;">取 消</el-button>
  628. </span>
  629. </el-dialog>
  630. <!--费用打印-->
  631. <reportContainer ref="reportContainer"></reportContainer>
  632. </div>
  633. </template>
  634. <script>
  635. import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
  636. import {getBcorpslistByType} from "@/api/iosBasicData/bcorps";
  637. import {getWorkDicts} from "@/api/system/dictbiz";
  638. import {getList as userGetList} from '@/api/system/user'
  639. import {getDeptLazyTree} from "@/api/system/dept";
  640. import {getBvesselsList} from "@/api/iosBasicData/bvessels";
  641. import TableDetails from "./assembly/TableDetails.vue";
  642. import feecenter from "./assembly/feecenter.vue";
  643. import {getBtrademodesList} from "@/api/iosBasicData/btrademodes";
  644. import {bcountrysList} from "@/api/iosBasicData/bcountrys";
  645. import {bportsList} from "@/api/iosBasicData/bports";
  646. import {
  647. checkCustomsDeclaration, copyCustomsDeclaration,
  648. customsdeclarationDetail,
  649. customsdeclarationSubmit, revokeCheckCustomsDeclaration
  650. } from "@/api/iosBasicData/customsdeclaration";
  651. import {popupReminder} from "@/util/messageReminder";
  652. import {getBunitsList} from "@/api/iosBasicData/bunits";
  653. import reportContainer from "@/views/iosBasicData/report-container/report-container.vue";
  654. import reportformsList from "@/views/iosBasicData/SeafreightExportF/bills/assembly/reportformsList.vue";
  655. import reports from "@/views/iosBasicData/SeafreightExportF/bills/assembly/reports.vue";
  656. import {reportsGetReportData} from "@/api/iosBasicData/reports";
  657. import {getList as getreportsList} from "@/api/iosBasicData/reports";
  658. import { postSelectByUser } from '@/api/iosBasicData/bills'
  659. import {dateFormat} from "@/util/date";
  660. import {bpackagesList} from "@/api/iosBasicData/bpackages";
  661. export default {
  662. components: {reports, reportformsList, reportContainer, feecenter, SearchQuery,TableDetails},
  663. props:{
  664. detailData:{
  665. type:Object,
  666. default:{},
  667. }
  668. },
  669. data(){
  670. return {
  671. DesignreportDialog:false, // 报表设计弹窗
  672. selectPrintingDialog:false, // 预览弹窗
  673. pageLoading:false, // 动画加载
  674. saveLoading:false, // 按钮动画加载
  675. roleName:[], // 当前的角色权限
  676. saberUserInfo:[], // 当前登录人的数据
  677. // 绑定的数据
  678. form:{
  679. billDate:dateFormat(new Date(), "yyyy-MM-dd") + ' 00:00:00', // 接单日期默认当天
  680. businessType:'BGAE',
  681. createUser:'', // 制单人id
  682. createUserName:'', // 制单人名称
  683. customsDeclarationGoodsList:[],
  684. feeCenterListD:[],
  685. feeCenterListC:[],
  686. },
  687. bigtabs:'wt', // tabs切换
  688. corpData:[], // 经营单位数据
  689. agencyCompanytData:[], // 代理公司数据
  690. businessTypeData:[
  691. {
  692. label:'海运出口报关',
  693. value:'BGSE'
  694. },
  695. {
  696. label:'海运进口报关',
  697. value:'BGSI'
  698. },
  699. {
  700. label:'空运出口报关',
  701. value:'BGAE'
  702. },
  703. {
  704. label:'空运进口报关',
  705. value:'BGAI'
  706. }
  707. ], // 贸易类型
  708. srcTypeData:[], // 业务来源数据
  709. srcData:[], // 来源详情数据
  710. srcForParameter:{ key:'id', label:'title', value:'title'}, // 来源详情配置项数据
  711. declarationMethodData:[], // 申报方式字典数据
  712. enterpriseData:[], // 企业数据
  713. teamData:[], // 所属团队
  714. vesselData:[], // 船名数据
  715. tradeMethodData:[], // 贸易条款数据
  716. destinationCountryData:[], // 运抵国数据
  717. portOfDestinationData:[], // 指运港
  718. dealMethodData:[], // 成交方式
  719. exportPortData:[], // 出口口岸
  720. deliveryData:[], // 发货单位
  721. packingUnitData:[], // 包装种类
  722. exchangeSettlementMethodData:[], // 结汇方式
  723. comprehensiveForm:{}, // 多选集合
  724. pleasereviewType:false, // 请核之后禁用
  725. // 需要加判断是否必填的数据
  726. messageData:[
  727. {
  728. name:'经营单位',
  729. value:'corpCnName',
  730. },
  731. {
  732. name:'业务来源',
  733. value:'srcType',
  734. },
  735. {
  736. name:'提单号',
  737. value:'mblno',
  738. },
  739. {
  740. name:'报关单号',
  741. value:'customsDeclarationNumber',
  742. },
  743. {
  744. name:'ETD',
  745. value:'etdDate',
  746. },
  747. {
  748. name:'申报日期',
  749. value:'declareDate',
  750. },
  751. {
  752. name:'运抵国',
  753. value:'destinationCountryCnName',
  754. },
  755. {
  756. name:'指运港',
  757. value:'portOfDestinationEnName',
  758. },
  759. {
  760. name:'件数',
  761. value:'quantity',
  762. }
  763. ],
  764. }
  765. },
  766. created() {
  767. this.roleName = localStorage.getItem('roleName').split(',')
  768. // 获取当前登录人个人信息
  769. this.saberUserInfo = JSON.parse(localStorage.getItem('saber-userInfo')).content
  770. this.form.createUser = this.saberUserInfo.user_id
  771. this.form.createUserName = this.saberUserInfo.user_name
  772. this.srcTypeWorkDictsfun() // 业务来源
  773. this.postSelectByUserfun() // 所属团队
  774. },
  775. methods:{
  776. // 报表预览
  777. previewreportfun(){
  778. getreportsList(1,10,{
  779. businessType:'BGAE',
  780. classifyCode:'BGAE',
  781. groupCode:'AE'
  782. }).then(res=>{
  783. if (res.data.data.records.length == 1) {
  784. this.reportRadio(res.data.data.records[0])
  785. }else {
  786. this.saveLoading = true
  787. this.selectPrintingDialog = true
  788. this.saveLoading = false
  789. let page = {
  790. pageSize: 10,
  791. currentPage: 1,
  792. total: 0
  793. }
  794. this.$nextTick(()=>{
  795. this.$refs.reportformsList.onLoad(page,{
  796. businessType:'BGAE',
  797. classifyCode:'BGAE',
  798. groupCode:'AE'
  799. })
  800. })
  801. }
  802. })
  803. },
  804. // 预览里的打印
  805. reportRadio(val){
  806. // 获取报表数据
  807. reportsGetReportData({
  808. billId:this.form.id,
  809. reportCode:val.classifyCode,
  810. groupCode:val.groupCode,
  811. type:'BGAE'
  812. }).then(res=>{
  813. this.handleReportPreview(val.url,res.data.data.data)
  814. })
  815. },
  816. // 单据请核
  817. DocumentApproval(){
  818. if (popupReminder(this.form,this.messageData)){
  819. this.$confirm(popupReminder(this.form,this.messageData), {
  820. confirmButtonText: "确定",
  821. cancelButtonText: "取消",
  822. type: "warning"
  823. })
  824. }
  825. if (popupReminder(this.form,this.messageData)) {
  826. return;
  827. }
  828. if (this.form.feeCenterListC.length == 0 && this.form.feeCenterListD == 0) {
  829. return this.$message.warning('请添加费用信息')
  830. }
  831. this.$confirm("确定要请核数据?", {
  832. confirmButtonText: "确定",
  833. cancelButtonText: "取消",
  834. type: "warning"
  835. }).then(()=>{
  836. this.pageLoading = true
  837. checkCustomsDeclaration({
  838. id:this.form.id,
  839. url: '/iosBasicData/reportClose/AEreportClose/index',
  840. pageStatus: "this.$store.getters.AEreportClose",
  841. pageLabel: "空运出口报关",
  842. }).then(res=>{
  843. this.pageLoading = false
  844. this.$message({
  845. type: "success",
  846. message: "操作成功!"
  847. });
  848. // 详情
  849. this.customsdeclarationDetailfun(this.form.id)
  850. })
  851. })
  852. },
  853. // 撤销请核
  854. revokeDocumentApproval(){
  855. this.$confirm("确定要撤销请核数据?", {
  856. confirmButtonText: "确定",
  857. cancelButtonText: "取消",
  858. type: "warning"
  859. }).then(()=>{
  860. this.pageLoading = true
  861. revokeCheckCustomsDeclaration({
  862. id:this.form.id
  863. }).then(res=>{
  864. this.pageLoading = false
  865. this.$message({
  866. type: "success",
  867. message: "操作成功!"
  868. });
  869. // 详情
  870. this.customsdeclarationDetailfun(this.form.id)
  871. })
  872. })
  873. },
  874. // 大保存
  875. savefun(){
  876. // 经营单位
  877. if (!this.form.corpId) {
  878. return this.$message.warning('请填写经营单位!')
  879. }
  880. let multiArr = []
  881. for (let i in this.comprehensiveForm) {
  882. if (this.comprehensiveForm[i]) {
  883. multiArr.push(this.comprehensiveForm[i])
  884. }
  885. }
  886. // 多选集合转换成字符串赋值
  887. this.form.documentsAttached = multiArr.join(',')
  888. // 判断是否是数组
  889. if (this.form.customsDeclarationGoodsList instanceof Array) {
  890. this.form.customsDeclarationGoodsList.map((item,index)=>{
  891. item.sort = Number(index) + 1
  892. item.pid = this.form.id
  893. })
  894. }
  895. this.form.feeCenterListD.map((row,index)=>{
  896. row.dc = 'D'
  897. row.sort = Number(index) + 1
  898. row.businessType = this.form.businessType // 业务类型
  899. row.billNo = this.form.billNo // 单据编号
  900. row.billDate = this.form.billDate
  901. row.billCorpId = this.form.corpId // 主表客户 id
  902. row.billCorpCnName = this.form.corpCnName // 主表客户中文名称
  903. row.billCorpEnName = this.form.corpEnName // 主表客户英文名称
  904. row.vesselId = this.form.vesselId // 船名 id
  905. row.vesselCnName = this.form.vesselCnName // 中文船名
  906. row.vesselEnName = this.form.vesselEnName // 英文船名
  907. row.mblno = this.form.mblno // MB/L NO
  908. row.etd = this.form.etdDate // 开船日期
  909. // 数量 * 单价 = 净额
  910. // 总税率 = 税率 + 附件税率
  911. // 税额 = 净额 * 总税率
  912. // 含税
  913. if (row.curCode == 'CNY') {
  914. row.amount = row.rmbAmount?row.rmbAmount:(Number(row.quantity) * Number(row.price)).toFixed(2)
  915. }else {
  916. row.amount = row.usdAmount?row.usdAmount:(Number(row.quantity) * Number(row.price)).toFixed(2)
  917. }
  918. // 净额
  919. if (row.curCode == 'CNY') {
  920. row.amountNet = row.rmbAmountNet?row.rmbAmountNet:(Number(row.quantity) * Number(row.price)).toFixed(2)
  921. }else {
  922. row.amountNet = row.usdAmountNet?row.usdAmountNet:(Number(row.quantity) * Number(row.price)).toFixed(2)
  923. }
  924. })
  925. this.form.feeCenterListC.map((row,index)=>{
  926. row.dc = 'C'
  927. row.sort = Number(index) + 1
  928. row.businessType = this.form.businessType // 业务类型
  929. row.billNo = this.form.billNo // 单据编号
  930. row.billDate = this.form.billDate
  931. row.billCorpId = this.form.corpId // 主表客户 id
  932. row.billCorpCnName = this.form.corpCnName // 主表客户中文名称
  933. row.billCorpEnName = this.form.corpEnName // 主表客户英文名称
  934. row.vesselId = this.form.vesselId // 船名 id
  935. row.vesselCnName = this.form.vesselCnName // 中文船名
  936. row.vesselEnName = this.form.vesselEnName // 英文船名
  937. row.mblno = this.form.mblno // MB/L NO
  938. row.etd = this.form.etdDate // 开船日期
  939. // 数量 * 单价 = 净额
  940. // 总税率 = 税率 + 附件税率
  941. // 税额 = 净额 * 总税率
  942. // 含税
  943. if (row.curCode == 'CNY') {
  944. row.amount = row.rmbAmount?row.rmbAmount:(Number(row.quantity) * Number(row.price)).toFixed(2)
  945. }else {
  946. row.amount = row.usdAmount?row.usdAmount:(Number(row.quantity) * Number(row.price)).toFixed(2)
  947. }
  948. // 净额
  949. if (row.curCode == 'CNY') {
  950. row.amountNet = row.rmbAmountNet?row.rmbAmountNet:(Number(row.quantity) * Number(row.price)).toFixed(2)
  951. }else {
  952. row.amountNet = row.usdAmountNet?row.usdAmountNet:(Number(row.quantity) * Number(row.price)).toFixed(2)
  953. }
  954. })
  955. this.customsdeclarationSubmitfun()
  956. },
  957. // 保存接口
  958. customsdeclarationSubmitfun(){
  959. this.form.billNoFormat = 'BG-KYCK'
  960. this.form.businessTypeCode = 'BGAE'
  961. this.pageLoading = true
  962. customsdeclarationSubmit(this.form).then(res=>{
  963. this.pageLoading = false
  964. this.$message.success('操作成功!')
  965. this.customsdeclarationDetailfun(res.data.data.id)
  966. })
  967. },
  968. // 复制单据
  969. copyCustomsDeclarationfun(id){
  970. copyCustomsDeclaration({id}).then(res=>{
  971. this.form = res.data.data;
  972. this.pageLoading = false
  973. // 处理多选数据
  974. for (let item of this.form.documentsAttached.split(',')) {
  975. this.$set(this.comprehensiveForm,item,item)
  976. }
  977. // 处理明细数据
  978. for (let item of this.form.customsDeclarationGoodsList) {
  979. item.edit = false
  980. }
  981. // 应收
  982. for(let item of this.form.feeCenterListD) {
  983. if (item.curCode == 'CNY') {
  984. this.$set(item,'rmbAmount',item.amount)
  985. this.$set(item,'usdAmount','')
  986. this.$set(item,'rmbAmountNet',item.amountNet)
  987. this.$set(item,'usdAmountNet','')
  988. }else {
  989. this.$set(item,'usdAmount',item.amount)
  990. this.$set(item,'rmbAmount','')
  991. this.$set(item,'usdAmountNet',item.amountNet)
  992. this.$set(item,'rmbAmountNet','')
  993. }
  994. item.edit = false
  995. }
  996. // 应付
  997. for(let item of this.form.feeCenterListC) {
  998. if (item.curCode == 'CNY') {
  999. this.$set(item,'rmbAmount',item.amount)
  1000. this.$set(item,'usdAmount','')
  1001. this.$set(item,'rmbAmountNet',item.amountNet)
  1002. this.$set(item,'usdAmountNet','')
  1003. }else {
  1004. this.$set(item,'usdAmount',item.amount)
  1005. this.$set(item,'rmbAmount','')
  1006. this.$set(item,'usdAmountNet',item.amountNet)
  1007. this.$set(item,'rmbAmountNet','')
  1008. }
  1009. item.edit = false
  1010. }
  1011. })
  1012. },
  1013. // 详情
  1014. customsdeclarationDetailfun(id){
  1015. customsdeclarationDetail(id).then(res=>{
  1016. this.pageLoading = false
  1017. this.form = res.data.data
  1018. if (this.form.status == 1 || this.form.status == 2 || this.form.status == 3) {
  1019. this.pleasereviewType = true // 请核禁用
  1020. this.detailData.seeDisabled = true
  1021. }else {
  1022. this.pleasereviewType = false
  1023. }
  1024. // 处理多选数据
  1025. for (let item of this.form.documentsAttached.split(',')) {
  1026. this.$set(this.comprehensiveForm,item,item)
  1027. }
  1028. // 处理费用数据
  1029. for(let item of this.form.feeCenterListD) {
  1030. if (item.curCode == 'CNY') {
  1031. this.$set(item,'rmbAmount',item.amount)
  1032. this.$set(item,'usdAmount','')
  1033. this.$set(item,'rmbAmountNet',item.amountNet)
  1034. this.$set(item,'usdAmountNet','')
  1035. }else {
  1036. this.$set(item,'usdAmount',item.amount)
  1037. this.$set(item,'rmbAmount','')
  1038. this.$set(item,'usdAmountNet',item.amountNet)
  1039. this.$set(item,'rmbAmountNet','')
  1040. }
  1041. item.paymode = item.paymode?item.paymode:'PP'
  1042. item.edit = false
  1043. }
  1044. for(let item of this.form.feeCenterListC) {
  1045. if (item.curCode == 'CNY') {
  1046. this.$set(item,'rmbAmount',item.amount)
  1047. this.$set(item,'usdAmount','')
  1048. this.$set(item,'rmbAmountNet',item.amountNet)
  1049. this.$set(item,'usdAmountNet','')
  1050. }else {
  1051. this.$set(item,'usdAmount',item.amount)
  1052. this.$set(item,'rmbAmount','')
  1053. this.$set(item,'usdAmountNet',item.amountNet)
  1054. this.$set(item,'rmbAmountNet','')
  1055. }
  1056. item.paymode = item.paymode?item.paymode:'PP'
  1057. item.edit = false
  1058. }
  1059. // 处理明细数据
  1060. for (let item of this.form.customsDeclarationGoodsList) {
  1061. item.edit = false
  1062. }
  1063. })
  1064. },
  1065. // 下拉回调
  1066. corpChange(value,name){
  1067. // 经营单位
  1068. if (name == 'corpCnName') {
  1069. for (let item of this.corpData) {
  1070. if (item.cnName == value) {
  1071. this.$set(this.form,'corpId',item.id)
  1072. this.$set(this.form,'corpCnName',item.cnName)
  1073. this.$set(this.form,'corpEnName',item.enName)
  1074. }
  1075. }
  1076. }
  1077. // 代理公司
  1078. else if(name == 'agencyCompanytCnName') {
  1079. for (let item of this.agencyCompanytData) {
  1080. if (item.cnName == value) {
  1081. this.$set(this.form,'agencyCompanytId',item.id)
  1082. this.$set(this.form,'agencyCompanytCode',item.code)
  1083. this.$set(this.form,'agencyCompanytCnName',item.cnName)
  1084. this.$set(this.form,'agencyCompanytEnName',item.enName)
  1085. }
  1086. }
  1087. }
  1088. // 来源详情
  1089. else if (name == 'srcCnName') {
  1090. for(let item of this.srcData) {
  1091. if (item[this.srcForParameter.value] == value) {
  1092. if (this.form.srcType == 'SALES') {
  1093. // 业务员
  1094. this.$set(this.form,'srcId',item.id)
  1095. this.$set(this.form,'srcCnName',item.name)
  1096. this.$set(this.form,'srcEnName',item.name)
  1097. }else if (this.form.srcType == 'AGENT') {
  1098. // 代理
  1099. this.$set(this.form,'srcId',item.id)
  1100. this.$set(this.form,'srcCnName',item.cnName)
  1101. this.$set(this.form,'srcEnName',item.enName)
  1102. }else if (this.form.srcType == 'OWN') {
  1103. // 公司
  1104. this.$set(this.form,'srcId',item.id)
  1105. this.$set(this.form,'srcCnName',item.title)
  1106. this.$set(this.form,'srcEnName',item.title)
  1107. }else {}
  1108. }
  1109. }
  1110. }
  1111. // 申报方式
  1112. else if (name == 'declarationMethodName') {
  1113. for(let item of this.declarationMethodData) {
  1114. if (item.dictValue == value) {
  1115. this.$set(this.form,'declarationMethodCode',item.dictKey)
  1116. this.$set(this.form,'declarationMethodName',item.dictValue)
  1117. }
  1118. }
  1119. }
  1120. // 企业
  1121. else if(name == 'enterpriseCnName') {
  1122. for (let item of this.enterpriseData) {
  1123. if (item.cnName == value) {
  1124. this.$set(this.form,'enterpriseId',item.id)
  1125. this.$set(this.form,'enterpriseCode',item.code)
  1126. this.$set(this.form,'enterpriseCnName',item.cnName)
  1127. this.$set(this.form,'enterpriseEnName',item.enName)
  1128. }
  1129. }
  1130. }
  1131. // 船名
  1132. else if (name == 'vessel') {
  1133. for(let item of this.vesselData) {
  1134. if (item.enName == value) {
  1135. this.$set(this.form,'vesselId',item.id)
  1136. this.$set(this.form,'vesselCnName',item.cnName)
  1137. this.$set(this.form,'vesselEnName',item.enName)
  1138. }
  1139. }
  1140. }
  1141. // 贸易条款
  1142. else if (name == 'tradeMethodName') {
  1143. for (let item of this.tradeMethodData) {
  1144. if (item.cnName == value) {
  1145. this.$set(this.form,'tradeMethodId',item.id)
  1146. this.$set(this.form,'tradeMethodCode',item.code)
  1147. this.$set(this.form,'tradeMethodName',item.cnName)
  1148. }
  1149. }
  1150. }
  1151. // 运抵国
  1152. else if (name == 'destinationCountryCnName') {
  1153. for (let item of this.destinationCountryData) {
  1154. if (item.cnName == value) {
  1155. this.$set(this.form,'destinationCountryId',item.id)
  1156. this.$set(this.form,'destinationCountryCnName',item.cnName)
  1157. this.$set(this.form,'destinationCountryEnName',item.cnName)
  1158. }
  1159. }
  1160. }
  1161. // 指运港
  1162. else if (name == 'portOfDestinationEnName') {
  1163. for (let item of this.portOfDestinationData) {
  1164. if (item.enName == value) {
  1165. this.$set(this.form,'portOfDestinationId',item.id)
  1166. this.$set(this.form,'portOfDestinationCnName',item.cnName)
  1167. this.$set(this.form,'portOfDestinationEnName',item.enName)
  1168. }
  1169. }
  1170. }
  1171. // 出口口岸
  1172. else if (name == 'exportPortEnName') {
  1173. for (let item of this.exportPortData) {
  1174. if (item.enName == value) {
  1175. this.$set(this.form,'exportPortId',item.id)
  1176. this.$set(this.form,'exportPortCnName',item.cnName)
  1177. this.$set(this.form,'exportPortEnName',item.enName)
  1178. }
  1179. }
  1180. }
  1181. // 发货单位
  1182. else if (name == 'deliveryCnName') {
  1183. for (let item of this.deliveryData) {
  1184. if (item.cnName == value) {
  1185. this.$set(this.form,'deliveryId',item.id)
  1186. this.$set(this.form,'deliveryCnName',item.cnName)
  1187. this.$set(this.form,'deliveryEnName',item.enName)
  1188. }
  1189. }
  1190. }
  1191. // 包装种类
  1192. else if (name == 'packingUnit') {
  1193. for (let item of this.packingUnitData) {
  1194. if (item.cnName == value) {
  1195. this.$set(this.form,'packingUnitId',item.id)
  1196. this.$set(this.form,'packingUnit',item.cnName)
  1197. }
  1198. }
  1199. }
  1200. else {
  1201. this.$set(this.form,name,value)
  1202. }
  1203. },
  1204. // 业务来源搜索和聚焦
  1205. srcfun(value){
  1206. if (this.form.srcType == 'SALES') {
  1207. // 业务员
  1208. this.srcForParameter = { key:'id', label:'name', value:'name'}
  1209. this.salesUserGetListfun(value)
  1210. }else if (this.form.srcType == 'AGENT') {
  1211. // 代理
  1212. this.srcForParameter = { key:'id', label:'cnName', value:'cnName'}
  1213. this.agentBcorpsListfun(value)
  1214. }else if (this.form.srcType == 'OWN') {
  1215. // 公司
  1216. this.srcForParameter = { key:'id', label:'title', value:'title'}
  1217. this.ownDeptLazyTreefun()
  1218. }else {}
  1219. },
  1220. // 接口数据获取🥲🥲🥲🥲🥲🥲🥲🥲🥲🥲
  1221. // 经营单位
  1222. corpBcorpsListfun(cnName){
  1223. getBcorpslistByType(1,10,{cnName}).then(res=>{
  1224. this.corpData = res.data.data.records
  1225. })
  1226. },
  1227. // 获取代理公司数据
  1228. agencyCompanytBcorpsListfun(cnName){
  1229. let corpType = '1712285382575398914,1712285645314990082,1712285842321448962,1712286433378574338'
  1230. getBcorpslistByType(1,10,{cnName,corpType}).then(res=>{
  1231. this.agencyCompanytData = res.data.data.records
  1232. })
  1233. },
  1234. // 获取业务来源数据
  1235. srcTypeWorkDictsfun(){
  1236. getWorkDicts('src_type_los').then(res=>{
  1237. this.srcTypeData = res.data.data
  1238. })
  1239. },
  1240. // 获取业务来源代理数据
  1241. agentBcorpsListfun(cnName){
  1242. let corpType = '1712285382575398914,1712285645314990082,1712285842321448962,1712286433378574338'
  1243. getBcorpslistByType(1,10,{cnName,corpType}).then(res=>{
  1244. this.srcData = res.data.data.records
  1245. })
  1246. },
  1247. // 获取业务来源业务员数据
  1248. salesUserGetListfun(account){
  1249. userGetList(1,10,{account}).then(res=>{
  1250. this.srcData = res.data.data.records
  1251. })
  1252. },
  1253. // 获取公司名称 用户管理左侧
  1254. ownDeptLazyTreefun(){
  1255. getDeptLazyTree(0).then(res=>{
  1256. this.srcData = res.data.data
  1257. })
  1258. },
  1259. // 申报方式字典数据
  1260. declarationMethodWorkDictsfun(){
  1261. getWorkDicts('declaration_method_los').then(res=>{
  1262. this.declarationMethodData = res.data.data
  1263. })
  1264. },
  1265. // 获取企业数据
  1266. enterpriseCnNameBcorpsListfun(cnName){
  1267. let corpType = '1752603229734072321'
  1268. getBcorpslistByType(1,10,{cnName,corpType}).then(res=>{
  1269. this.enterpriseData = res.data.data.records
  1270. })
  1271. },
  1272. // 船名
  1273. vesselBvesselsListfun(cnName){
  1274. getBvesselsList(1,10,{cnName}).then(res=>{
  1275. this.vesselData = res.data.data.records
  1276. })
  1277. },
  1278. // 贸易条款
  1279. tradeMethodBtrademodesListfun(cnName){
  1280. getBtrademodesList(1,10,{cnName}).then(res=>{
  1281. this.tradeMethodData = res.data.data.records
  1282. })
  1283. },
  1284. // 运抵国
  1285. destinationCountrybcountrysListfun(cnName){
  1286. bcountrysList(1,10,{cnName}).then(res=>{
  1287. this.destinationCountryData = res.data.data.records
  1288. })
  1289. },
  1290. // 指运港
  1291. portOfDestinationBportsListfun(enName){
  1292. bportsList(1,10,{enName}).then(res=>{
  1293. this.portOfDestinationData = res.data.data.records
  1294. })
  1295. },
  1296. // 成交方式
  1297. dealMethodWorkDictsfun(){
  1298. getWorkDicts('transaction_method_los').then(res=>{
  1299. this.dealMethodData = res.data.data
  1300. })
  1301. },
  1302. // 出口口岸
  1303. exportPortBportsListfun(enName){
  1304. bportsList(1,10,{enName}).then(res=>{
  1305. this.exportPortData = res.data.data.records
  1306. })
  1307. },
  1308. // 发货单位
  1309. deliveryBcorpsListfun(cnName){
  1310. getBcorpslistByType(1,10,{cnName}).then(res=>{
  1311. this.deliveryData = res.data.data.records
  1312. })
  1313. },
  1314. // 结汇方式
  1315. exchangeSettlementMethodWorkDictsfun(){
  1316. getWorkDicts('settlement_exchange_los').then(res=>{
  1317. this.exchangeSettlementMethodData = res.data.data
  1318. })
  1319. },
  1320. // 包装种类
  1321. packingUnitBunitsListfun(cnName){
  1322. bpackagesList(1,10,{cnName}).then(res=>{
  1323. this.packingUnitData = res.data.data.records
  1324. })
  1325. },
  1326. // 获取所属岗位数据
  1327. postSelectByUserfun(){
  1328. postSelectByUser(JSON.parse(localStorage.getItem("saber-userInfo")).content.user_id).then(res=>{
  1329. this.teamData = res.data.data
  1330. // 判断是否有值,没有的话默认第一个
  1331. if (!this.form.teamName) {
  1332. this.$set(this.form,'teamId',res.data.data[0].id)
  1333. this.$set(this.form,'teamName',res.data.data[0].postName)
  1334. }
  1335. })
  1336. },
  1337. //返回列表
  1338. backToList() {
  1339. this.$emit('goBack')
  1340. },
  1341. // 预览报表
  1342. handleReportPreview(url,data){
  1343. console.log(url,1670)
  1344. console.log(data,1671)
  1345. Stimulsoft.Base.StiLicense.key = '6vJhGtLLLz2GNviWmUTrhSqnOItdDwjBylQzQcAOiHn0s4gy0Fr5YoUZ9V00Y0igCSFQzwEqYBh/N77k4f0fWXTHW5rqeBNLkaurJDenJ9o97TyqHs9HfvINK18Uwzsc/bG01Rq+x3H3Rf+g7AY92gvWmp7VA2Uxa30Q97f61siWz2dE5kdBVcCnSFzC6awE74JzDcJMj8OuxplqB1CYcpoPcOjKy1PiATlC3UsBaLEXsok1xxtRMQ283r282tkh8XQitsxtTczAJBxijuJNfziYhci2jResWXK51ygOOEbVAxmpflujkJ8oEVHkOA/CjX6bGx05pNZ6oSIu9H8deF94MyqIwcdeirCe60GbIQByQtLimfxbIZnO35X3fs/94av0ODfELqrQEpLrpU6FNeHttvlMc5UVrT4K+8lPbqR8Hq0PFWmFrbVIYSi7tAVFMMe2D1C59NWyLu3AkrD3No7YhLVh7LV0Tttr/8FrcZ8xirBPcMZCIGrRIesrHxOsZH2V8t/t0GXCnLLAWX+TNvdNXkB8cF2y9ZXf1enI064yE5dwMs2fQ0yOUG/xornE'
  1346. // Stimulsoft.Base.StiLicense.Key = '6vJhGtLLLz2GNviWmUTrhSqnOItdDwjBylQzQcAOiHkcgIvwL0jnpsDqRpWg5FI5kt2G7A0tYIcUygBh1sPs7plofUOqPB1a4HBIXJB621mau2oiAIj+ysU7gKUXfjn/D5BocmduNB+ZMiDGPxFrAp3PoD0nYNkkWh8r7gBZ1v/JZSXGE3bQDrCQCNSy6mgby+iFAMV8/PuZ1z77U+Xz3fkpbm6MYQXYp3cQooLGLUti7k1TFWrnawT0iEEDJ2iRcU9wLqn2g9UiWesEZtKwI/UmEI2T7nv5NbgV+CHguu6QU4WWzFpIgW+3LUnKCT/vCDY+ymzgycw9A9+HFSzARiPzgOaAuQYrFDpzhXV+ZeX31AxWlnzjDWqpfluygSNPtGul5gyNt2CEoJD1Yom0VN9fvRonYsMsimkFFx2AwyVpPcs+JfVBtpPbTcZscnzUdmiIvxv8Gcin6sNSibM6in/uUKFt3bVgW/XeMYa7MLGF53kvBSwi78poUDigA2n12SmghLR0AHxyEDIgZGOTbNI33GWu7ZsPBeUdGu55R8w='
  1347. Stimulsoft.Base.Localization.StiLocalization.addLocalizationFile( '/reports/stimulsoft/Localization/zh-CHS.xml', true, 'zh-CHS')
  1348. Stimulsoft.Base.Localization.StiLocalization.setLocalizationFile('/reports/stimulsoft/Localization/zh-CHS.xml' )
  1349. // 工具栏
  1350. var options = new Stimulsoft.Viewer.StiViewerOptions()
  1351. options.height = '100%'
  1352. options.appearance.scrollbarsMode = true // 滚动条模式
  1353. options.toolbar.showDesignButton = false // 显示设计按钮
  1354. options.toolbar.showAboutButton = false // 显示关于按钮
  1355. options.toolbar.showResourcesButton = false // 显示资源按钮
  1356. options.toolbar.showFullScreenButton = false // 显示全屏按钮
  1357. options.toolbar.showOpenButton = false // 显示打开按钮
  1358. options.appearance.showTooltips = false // 显示工具提示
  1359. options.appearance.showDialogsHelp = false // 显示对话框帮助
  1360. options.exports.showExportToDocument = false // 显示导出到文档
  1361. options.toolbar.showParametersButton = true // 显示参数按钮
  1362. options.appearance.bookmarksPrint = true // 书签打印
  1363. // options.toolbar.showPrintButton = false // 打印按钮是否显示 下面直接自定义控制打印弹窗是否开启
  1364. // printDestination 参数:用于指定报表打印的目标位置,可以是打印机、PDF 文件或者直接打印到浏览器等。
  1365. // Stimulsoft.Viewer.StiPrintDestination.Direct:表示直接打印到打印机,即将报表内容直接发送至打印机进行打印。
  1366. // 通过设置不同的 printDestination 参数,你可以控制报表打印的行为,例如是直接打印到打印机,还是生成 PDF 文件,或者直接在浏览器中预览打印内容等。
  1367. options.toolbar.printDestination = Stimulsoft.Viewer.StiPrintDestination.Direct
  1368. // htmlRenderMode html渲染模式
  1369. options.appearance.htmlRenderMode = Stimulsoft.Report.Export.StiHtmlExportMode.Table
  1370. // 是创建一个 Stimulsoft 报表查看器的实例的代码
  1371. let viewer = new Stimulsoft.Viewer.StiViewer(options, 'StiViewer', false)
  1372. // 报表
  1373. console.log("创建一个报表实例");
  1374. console.log()
  1375. let report = new window.Stimulsoft.Report.StiReport();
  1376. // 加载文件
  1377. console.log("从url加载报表");
  1378. // report.loadFile("/reports/stimulsoft/demos/SimpleList.mrt");
  1379. report.load(url)
  1380. data.pageOne = 'Page : 1 of 1'
  1381. // 处理超长数据
  1382. if (data.hshipperDetails) {
  1383. var consignerIndex2 = data.hshipperDetails.indexOf( '\n' )
  1384. for (let i = 0; i < 4; i++) {
  1385. consignerIndex2 = data.hshipperDetails.indexOf( '\n', consignerIndex2 + 1 );
  1386. }
  1387. if (consignerIndex2 != -1) {
  1388. var hshipperDetails = data.hshipperDetails.substring(consignerIndex2 + 2, data.hshipperDetails.length)
  1389. data.hshipperDetails = data.hshipperDetails.substring(0, consignerIndex2) + ' *'
  1390. data.commodityDescr += '\n*' + hshipperDetails
  1391. }
  1392. }
  1393. if (data.hconsigneeDetails) {
  1394. var consigneeIndex2 = data.hconsigneeDetails.indexOf( '\n' )
  1395. for (let i = 0; i < 3; i++) {
  1396. consigneeIndex2 = data.hconsigneeDetails.indexOf( '\n', consigneeIndex2 + 1 );
  1397. }
  1398. if (consigneeIndex2 != -1) {
  1399. var hconsigneeDetails = data.hconsigneeDetails.substring(consigneeIndex2 + 2, data.hconsigneeDetails.length)
  1400. data.hconsigneeDetails = data.hconsigneeDetails.substring(0, consigneeIndex2) + ' **'
  1401. data.commodityDescr += '\n**' + hconsigneeDetails
  1402. }
  1403. }
  1404. if (data.hnotifyDetails) {
  1405. var notifierIndex2 = data.hnotifyDetails.indexOf( '\n' )
  1406. for (let i = 0; i < 3; i++) {
  1407. notifierIndex2 = data.hnotifyDetails.indexOf( '\n', notifierIndex2 + 1 );
  1408. }
  1409. if (notifierIndex2 != -1) {
  1410. var hnotifyDetails = data.hnotifyDetails.substring(notifierIndex2 + 2, data.hnotifyDetails.length)
  1411. data.hnotifyDetails = data.hnotifyDetails.substring(0, notifierIndex2) + ' ***'
  1412. data.commodityDescr += '\n***' + hnotifyDetails
  1413. }
  1414. }
  1415. // 处理箱号
  1416. if (this.isPrintTheBoxNumber) {
  1417. data.commodityDescr += '\n.\n.\n'
  1418. }
  1419. // PLACE & DATE OF ISSUE
  1420. data.placeAndDateOfIssue = ''
  1421. if (data.issueAt) {
  1422. data.placeAndDateOfIssue += data.issueAt
  1423. }
  1424. if (data.issueDate) {
  1425. let date = new Date(data.issueDate.replace(/-/g,'/'));
  1426. let yyyy = date.getFullYear();
  1427. let mmmm = date.toDateString().split(" ")[1]
  1428. let dd = date.getDate()
  1429. data.placeAndDateOfIssue += ', ' + dd + '-' + mmmm + '-' + yyyy
  1430. }
  1431. // Total number of containers or packages received by the Carriers
  1432. if (data.preContainersList) {
  1433. let boxMap = new Map();
  1434. for (let boxQuantity of data.preContainersList) {
  1435. if (boxMap.get(boxQuantity.cntrTypeCode)) {
  1436. let v = boxMap.get(boxQuantity.cntrTypeCode)
  1437. boxMap.set(boxQuantity.cntrTypeCode, v + boxQuantity.quantity)
  1438. } else {
  1439. boxMap.set(boxQuantity.cntrTypeCode, boxQuantity.quantity)
  1440. }
  1441. }
  1442. let boxs = ''
  1443. boxMap.forEach(function (value, key, map) {
  1444. boxs += value + 'x' + key + ', '
  1445. })
  1446. boxs = boxs.substring(0, boxs.length - 2)
  1447. data.boxQuantity = boxs + ' CONTAINER(S) ONLY'
  1448. }
  1449. // Number of original B/Ls
  1450. if (data.numberOfObl) {
  1451. data.numberOfObl += ' (' + data.numberOfOblDigit + ')'
  1452. }
  1453. if (data.commodityDescr) {
  1454. var descriptionIndex2 = data.commodityDescr.indexOf( '\n' )
  1455. for (let i = 0; i < 19; i++) {
  1456. descriptionIndex2 = data.commodityDescr.indexOf( '\n', descriptionIndex2 + 1 );
  1457. }
  1458. if (descriptionIndex2 != -1) {
  1459. data.pageOne = 'Page : 1 of 2'
  1460. data.pageTwo = 'Page : 2 of 2'
  1461. var extraLongText = data.commodityDescr.substring(descriptionIndex2 + 2, data.commodityDescr.length)
  1462. data.commodityDescr = data.commodityDescr.substring(0, descriptionIndex2)
  1463. data.extraLongTips = '** TO BE CONTINUED ON ATTACHED LIST **'
  1464. data.extraLongText = extraLongText
  1465. }
  1466. }
  1467. // console.log(data.hshipperDetails, 'hshipperDetails2')
  1468. // 创建一个 Stimulsoft 数据集(DataSet)的实例的代码
  1469. var dataSet = new Stimulsoft.System.Data.DataSet(
  1470. 'reportData'
  1471. )
  1472. dataSet.readJson(data) // 用于将 JSON 格式的数据加载到数据集中。data 是包含报表数据的 JSON 对象。
  1473. // 这是一个方法调用,用于在报表中注册数据源。参数 'reportData' 是数据源的名称,
  1474. // 第二个 'reportData' 是数据源的别名,dataSet 则是之前创建的数据集实例
  1475. report.regData('reportData', 'reportData', dataSet)
  1476. // 从模版和数据加载报表
  1477. // loadReport(report, '', {})
  1478. // 这是将报表对象指定给报表查看器的属性。viewer 是报表查看器的实例,而 report 是之前创建的报表对象。
  1479. viewer.report = report;
  1480. this.$refs.reportContainer.showContainer(
  1481. ()=> {
  1482. setTimeout(() => {
  1483. viewer.renderHtml('reportContainer')
  1484. this.createViewerButtons(viewer)
  1485. }, 50)
  1486. },
  1487. ()=>{
  1488. },
  1489. )
  1490. console.log("加载成功完成!");
  1491. },
  1492. createViewerButtons (viewer){
  1493. viewer.jsObject.collections.images['myClose.png'] =
  1494. 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAA0ElEQVQ4ja3TO05CQRQG4A8iOwAbtYWETndAaecK7NwCKmETtJZsSBNLobEz8ZFIJQ0UnOGSm3DnYviTybzO/895DQXGWGCVGQuMEqkRcwcfuMOLalziCaf4TIe9UG9nyMJmFRzNGoRK1BU4xxx9G7cfwostciGk+x8MqgySwDXe4tU53hVV+MNtTmAoX84JGv9NYgrHyR6DV8wUSW7hItZLm36ZVoVQxsFJLOMsPOrH/h7dQwR2cdxOTEn8DtUbPGc4V2H7Vb4Yqfedf/GYSGt8VUmxgyfuBAAAAABJRU5ErkJggg=='
  1495. const closeBtn = viewer.jsObject.SmallButton(
  1496. 'closeBtn',
  1497. '关闭',
  1498. 'myClose.png'
  1499. )
  1500. // 增加打印弹窗配置
  1501. const printBtn = viewer.jsObject.SmallButton(
  1502. 'printBtn',
  1503. '打印报表',
  1504. 'myClose.png'
  1505. )
  1506. // console.log(viewer.jsObject.print(),'1013')
  1507. // 获取 关闭按钮的dom元素位置
  1508. const toolbarTable = viewer.jsObject.controls.toolbar.firstChild.firstChild
  1509. const buttonsTable = toolbarTable.rows[0].lastChild.lastChild
  1510. const userButtonCell = buttonsTable.rows[0].insertCell(0)
  1511. // 获取打印按钮的位置
  1512. const buttonsTablePrint = toolbarTable.rows[0].childNodes[0].lastChild // 打印按钮
  1513. const userButtonPrint = buttonsTablePrint.rows[0].childNodes[0] // 打印按钮dom位置
  1514. userButtonPrint.addEventListener("click", (event)=>{
  1515. console.log("打印点击");
  1516. // event.preventDefault()
  1517. });
  1518. userButtonPrint.addEventListener("mouseover", (event) => {
  1519. console.log("移入打印按钮");
  1520. console.log(event,1035)
  1521. });
  1522. userButtonCell.className = 'stiJsViewerClearAllStyles'
  1523. userButtonCell.appendChild(closeBtn) // 添加关闭节点
  1524. // userButtonPrint.prepend(printBtn) // 在 printBtn 节点里最前面增加一个子级节点
  1525. let that=this
  1526. // 关闭按钮的监听点击
  1527. closeBtn.action = function() {
  1528. console.log(that.$refs.ReportContainer,'1022')
  1529. if (that.$refs.reportContainer)
  1530. that.$refs.reportContainer.hideContainer()
  1531. }
  1532. // // // 打印按钮监听
  1533. // printBtn.action = (e)=>{
  1534. // console.log('打印')
  1535. // window.print()
  1536. // }
  1537. },
  1538. }
  1539. }
  1540. </script>
  1541. <style scoped>
  1542. .borderless {
  1543. height: 100%;
  1544. box-sizing: border-box
  1545. }
  1546. .demo-ruleForm {
  1547. font-size: 14px;
  1548. }
  1549. ::v-deep.el-form-item {
  1550. margin-bottom: 0;
  1551. }
  1552. </style>