foreignContractDetail.vue 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282
  1. <template>
  2. <view style="margin: 25rpx 25rpx 75rpx 25rpx;">
  3. <uni-collapse>
  4. <u-form label-position = "left" label-width = "auto">
  5. <uni-collapse-item title="客户信息" :open="true" :showAnimation="true">
  6. <view style = "background-color: #ffffff;padding: 0px 12px;">
  7. <u-form-item label="客户名称:"><u-input v-model="form.sellName" /></u-form-item>
  8. <u-form-item label="贸易国:"><u-input v-model="form.TradingCountryDesc" /></u-form-item>
  9. <u-form-item label="签约日期:"><u-input v-model="form.chooseTime" /></u-form-item>
  10. <u-form-item label="原产国:"><u-input v-model="form.countryOriginDesc" /></u-form-item>
  11. <u-form-item label="剩余信用额度:"><u-input v-model="form.currentRemainingCreditLine" /></u-form-item>
  12. </view>
  13. </uni-collapse-item>
  14. <uni-collapse-item title="合同信息" :open="true" :showAnimation="true">
  15. <view style = "background-color: #ffffff;padding: 0px 12px;">
  16. <u-form-item label="合同号:"><u-input v-model="form.contractNo" /></u-form-item>
  17. <u-form-item label="贸易方式:"><u-input v-model="form.modeTradeDesc" /></u-form-item>
  18. <u-form-item label="合同周期:"><u-input v-model="form.contractPeriod" /></u-form-item>
  19. <u-form-item label="价格条款:"><u-input v-model="form.priceTermsDesc" /></u-form-item>
  20. <u-form-item label="备注:"><u-input v-model="form.remark" /></u-form-item>
  21. </view>
  22. </uni-collapse-item>
  23. <uni-collapse-item title="装运信息" :open="true" :showAnimation="true">
  24. <view style = "background-color: #ffffff;padding: 0px 12px;">
  25. <u-form-item label="运输方式:"><u-input v-model="form.typeShippingDesc" /></u-form-item>
  26. <u-form-item label="起运港:"><u-input v-model="form.portDeparture" /></u-form-item>
  27. <u-form-item label="卸货港:"><u-input v-model="form.portDischarge" /></u-form-item>
  28. <u-form-item label="溢短装:"><u-input v-model="form.overAndShort" /></u-form-item>
  29. <u-form-item label="最迟装运日期:"><u-input v-model="form.latestShipmentDate" /></u-form-item>
  30. </view>
  31. </uni-collapse-item>
  32. <uni-collapse-item title="付款信息" :open="true" :showAnimation="true">
  33. <view style = "background-color: #ffffff;padding: 0px 12px;">
  34. <u-form-item label="付款方式:"><u-input v-model="form.payWay" /></u-form-item>
  35. <u-form-item label="币种:"><u-input v-model="form.currencyDesc" /></u-form-item>
  36. <u-form-item label="汇率:"><u-input v-model="form.rate" /></u-form-item>
  37. <u-form-item label="是否预付:"><u-input v-model="form.isPrepaidDesc" /></u-form-item>
  38. <u-form-item label="合同重量:"><u-input v-model="form.contractWeight" /></u-form-item>
  39. <u-form-item label="合同原币金额:"><u-input v-model="form.originalCurrency" /></u-form-item>
  40. <u-form-item label="合同本币金额:"><u-input v-model="form.localCurrency" /></u-form-item>
  41. </view>
  42. </uni-collapse-item>
  43. <uni-collapse-item title="费用预算" :open="true" :showAnimation="true">
  44. <view style = "background-color: #ffffff;padding: 0px 12px;">
  45. <u-form-item label="总成本:"><u-input v-model="form.totalCost" /></u-form-item>
  46. <u-form-item label="预计保费:"><u-input v-model="form.premium" /></u-form-item>
  47. <u-form-item label="预计海运费:"><u-input v-model="form.seaFreight" /></u-form-item>
  48. <u-form-item label="预计港杂费:"><u-input v-model="form.hiddenFees" /></u-form-item>
  49. <u-form-item label="其他:"><u-input v-model="form.otherFees" /></u-form-item>
  50. </view>
  51. </uni-collapse-item>
  52. <uni-collapse-item title="附件信息" :open="true" :showAnimation="true">
  53. <view style = "background-color: #ffffff;padding: 0px 12px;">
  54. <u-form-item label="附件路径:">
  55. <view v-if="!!fileUrl" style="color: #ff0f07;" @click="downLoadFile()">点击查看附件</view>
  56. <view v-else >无</view>
  57. </u-form-item>
  58. </view>
  59. </uni-collapse-item>
  60. </u-form>
  61. <uni-collapse-item title="商品信息" :open="true" :showAnimation="true">
  62. <view style = "background-color: #ffffff;">
  63. <wyb-table :headers="headers" :contents="tableList" :width="tableWidth" :font-size="[20]" :default-col-width="120"></wyb-table>
  64. </view>
  65. </uni-collapse-item>
  66. </uni-collapse>
  67. </view>
  68. </template>
  69. <script>
  70. import wybTable from '@/components/wyb-table/wyb-table.vue'
  71. export default {
  72. components:{wybTable},
  73. props:['businessKey', 'parentForm'],
  74. data() {
  75. return {
  76. form : {},
  77. tableList : [],
  78. headers: [{
  79. label: '商品名称',
  80. key: 'productName'
  81. }, {
  82. label: '商品分类',
  83. key: 'aciName'
  84. }, {
  85. label: '规格',
  86. key: 'specName'
  87. }, {
  88. label: '重量',
  89. key: 'weight'
  90. }, {
  91. label: '原币单价',
  92. key: 'originalPrice'
  93. }, {
  94. label: '原币金额',
  95. key: 'originalAmount'
  96. }, {
  97. label: '本币单价',
  98. key: 'localPrice'
  99. }, {
  100. label: '本币金额',
  101. key: 'localAmount'
  102. }, {
  103. label: '单价成本',
  104. key: 'priceCost'
  105. }, {
  106. label: '预计关税',
  107. key: 'expectedTariff'
  108. }, {
  109. label: '增值税',
  110. key: 'vat'
  111. }, {
  112. label: '备注',
  113. key: 'remark'
  114. }, {
  115. label: '价格变动记录',
  116. key: 'historyPrice'
  117. }],
  118. tableWidth : uni.getSystemInfoSync().screenWidth - 20 + 'px',
  119. fileUrl : '',
  120. }
  121. },
  122. beforeMount() {
  123. let self = this;
  124. // 克隆父组件数据
  125. this.form = JSON.parse(JSON.stringify(this.parentForm));
  126. // 付款方式
  127. if (!!uni.getStorageSync('PAYMENT_METHOD_OUT')) {
  128. self.payWayInit(uni.getStorageSync('PAYMENT_METHOD_OUT'))
  129. } else {
  130. self.admRequest({
  131. action : 'AppParamAction/getAppparList',
  132. data : {
  133. code : 'PAYMENT_METHOD_OUT'
  134. },
  135. success(r){
  136. var payWayList = r.data.data;
  137. if (!!payWayList) {
  138. uni.setStorageSync('PAYMENT_METHOD_OUT', payWayList);
  139. }
  140. self.payWayInit(payWayList)
  141. }
  142. })
  143. }
  144. // 起运港
  145. if (!!uni.getStorageSync('PORT_DEPARTURE')) {
  146. self.portDepartureInit(uni.getStorageSync('PORT_DEPARTURE'));
  147. } else {
  148. self.admRequest({
  149. action : 'AppParamAction/getAppparList',
  150. data : {
  151. code : 'PORT_DEPARTURE'
  152. },
  153. success(r){
  154. var portDepartureList = r.data.data;
  155. if (!!portDepartureList) {
  156. uni.setStorageSync('PORT_DEPARTURE', portDepartureList);
  157. }
  158. self.portDepartureInit(portDepartureList);
  159. }
  160. })
  161. }
  162. // 卸货港
  163. if (!!uni.getStorageSync('PORT_DISCHARGE')) {
  164. self.portDischargeInit(uni.getStorageSync('PORT_DISCHARGE'));
  165. } else {
  166. self.admRequest({
  167. action : 'AppParamAction/getAppparList',
  168. data : {
  169. code : 'PORT_DISCHARGE'
  170. },
  171. success(r){
  172. var portDischargeList = r.data.data;
  173. if (!!portDischargeList) {
  174. uni.setStorageSync('PORT_DISCHARGE', portDischargeList);
  175. }
  176. self.portDischargeInit(portDischargeList);
  177. }
  178. })
  179. }
  180. // 信用额度
  181. self.admRequest({
  182. action : 'DomesticContractManageAction/selectCustomerCreditline',
  183. data : {
  184. customerId : self.form.sellId
  185. },
  186. success(r){
  187. self.form.currentRemainingCreditLine = r.data.remainingCreditLine;
  188. self.$forceUpdate();
  189. }
  190. })
  191. // 商品信息
  192. this.admRequest({
  193. action : 'CommonAction/queryContractDetail',
  194. data : {
  195. contractId : this.businessKey,
  196. payAmt : false
  197. },
  198. success(r){
  199. self.tableList = r.data.data;
  200. }
  201. })
  202. // 附件信息
  203. this.admRequest({
  204. action : 'ContractManageAction/selectContractResource',
  205. data : {
  206. contractId : this.businessKey
  207. },
  208. success(r){
  209. self.fileUrl = r.data.url;
  210. }
  211. })
  212. },
  213. methods:{
  214. payWayInit(payWayList){
  215. for (let p of payWayList) {
  216. if (p.value == this.form.payWay) {
  217. this.form.payWay = p.showmsg;
  218. }
  219. }
  220. },
  221. portDepartureInit(portDepartureList) {
  222. let portDepartureCheckList = this.form.portDeparture.split(",");
  223. for (let i = 0; i < portDepartureCheckList.length; i ++) {
  224. let pc = portDepartureCheckList[i];
  225. for (let p of portDepartureList) {
  226. if (p.value == pc) {
  227. portDepartureCheckList[i] = p.showmsg;
  228. break;
  229. }
  230. }
  231. }
  232. this.form.portDeparture = portDepartureCheckList.toString();
  233. },
  234. portDischargeInit(portDischargeList){
  235. let portDischargeCheckList = this.form.portDischarge.split(",");
  236. for (let i = 0; i < portDischargeCheckList.length; i ++) {
  237. let pc = portDischargeCheckList[i];
  238. for (let p of portDischargeList) {
  239. if (p.value == pc) {
  240. portDischargeCheckList[i] = p.showmsg;
  241. break;
  242. }
  243. }
  244. }
  245. this.form.portDischarge = portDischargeCheckList.toString();
  246. },
  247. downLoadFile(){
  248. let self = this;
  249. uni.showLoading({
  250. title:"加载中..."
  251. })
  252. uni.downloadFile({
  253. url : self.fileUrl,
  254. success: (res) => {
  255. let filePath = res.tempFilePath;
  256. if (res.statusCode === 200) {
  257. uni.openDocument({
  258. filePath: filePath,
  259. success: function (r) {
  260. console.log('打开文档成功');
  261. }
  262. });
  263. }
  264. },
  265. complete: (res)=> {
  266. uni.hideLoading();
  267. }
  268. })
  269. }
  270. }
  271. }
  272. </script>
  273. <style>
  274. </style>