bgdetails.vue 92 KB

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