doctor-admin-components 1.0.14-beta.7 → 1.0.14-beta.71

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/README.md +4 -1
  2. package/package.json +1 -1
  3. package/packages/index.js +14 -3
  4. package/packages/src/api/biz/bizContract.js +36 -9
  5. package/packages/src/api/biz/bizShipment.js +30 -1
  6. package/packages/src/i18n/zh-CN/message.json +1 -1
  7. package/packages/src/index.js +18 -2
  8. package/packages/src/utils/index.js +1 -1
  9. package/packages/src/utils/zip.js +29 -11
  10. package/packages/src/views/biz/bizFileInfo/contract.vue +510 -420
  11. package/packages/src/views/biz/bizFileInfo/contractFile/BillOfLadingNoTab.vue +9 -7
  12. package/packages/src/views/biz/bizFileInfo/contractFile/IMGPreviewCheckBox.vue +25 -10
  13. package/packages/src/views/biz/bizFileInfo/contractFile/SectionSlot.vue +11 -3
  14. package/packages/src/views/biz/bizFileInfo/fileShow.vue +11 -5
  15. package/packages/src/views/biz/bizShipment/add.vue +67 -38
  16. package/packages/src/views/biz/contractTracing/billInfo.vue +17 -9
  17. package/packages/src/views/biz/contractTracing/changrLogList.vue +67 -0
  18. package/packages/src/views/biz/contractTracing/companyBanks.vue +19 -8
  19. package/packages/src/views/biz/contractTracing/contractClause.vue +356 -0
  20. package/packages/src/views/biz/contractTracing/contractClauseComponenrts/TextContent.vue +53 -0
  21. package/packages/src/views/biz/contractTracing/contractPdf.vue +16 -175
  22. package/packages/src/views/biz/contractTracing/contractSummary.vue +101 -73
  23. package/packages/src/views/biz/contractTracing/contractTracingDetail.vue +5 -77
  24. package/packages/src/views/biz/contractTracing/editBill.vue +35 -27
  25. package/packages/src/views/biz/contractTracing/info.vue +363 -0
  26. package/packages/src/views/biz/contractTracing/purchaseInvoiceUpload.vue +5 -2
  27. package/packages/src/views/biz/contractTracing/queryDeductionRecords.vue +103 -0
  28. package/packages/src/views/biz/contractTracing/shipmentPurchaseAmount.vue +361 -79
  29. package/packages/src/views/biz/contractTracing/shipmentPurchaseAmountEditDialog.vue +176 -0
@@ -0,0 +1,356 @@
1
+ <template>
2
+ <div>
3
+ <h3 style="text-align: center">Additional Agreement</h3>
4
+ <div style="text-align: right;padding-right: 20px" v-if="editable">
5
+ <el-button type="text" @click="disable = !disable">{{ disable ? 'Edit' : 'View' }}</el-button>
6
+ </div>
7
+ <div v-if="form">
8
+ <div v-if="form.contractType == 'sale'">
9
+ <h3>ARTICLE 1 – DEFINITIONS</h3>
10
+ <div>
11
+ <text-content :form="form" :disable="disable" keys="definitions"></text-content>
12
+ </div>
13
+ <h3>ARTICLE 2 – Annexure of Inquiry Page Content</h3>
14
+ <div>
15
+ <text-content :form="form" :disable="disable" keys="annexure"></text-content>
16
+ </div>
17
+ <h3>ARTICLE 3 – ACCEPTANCE</h3>
18
+ <div>
19
+ <text-content :form="form" :disable="disable" keys="acceptance"></text-content>
20
+ </div>
21
+ <h3>ARTICLE 4 – INCONSISTENT COMMODITY NAMES</h3>
22
+ <div>
23
+ <text-content :form="form" :disable="disable" keys="inconsistent"></text-content>
24
+ </div>
25
+ <h3>ARTICLE 5 – QUALITY, CUSTOMS REJECTION</h3>
26
+ <div>
27
+ <text-content :form="form" :disable="disable" keys="quality"></text-content>
28
+ </div>
29
+ <h3>ARTICLE 6 – CLAIM</h3>
30
+ <div>
31
+ <text-content :form="form" :disable="disable" keys="claim"></text-content>
32
+ </div>
33
+ <h3>ARTICLE 7 – LOADING REQUIREMENT</h3>
34
+ <div>
35
+ <text-content :form="form" :disable="disable" keys="loadingRequirement"></text-content>
36
+ </div>
37
+ <h3>ARTICLE 8 – PAYMENT</h3>
38
+ <div>
39
+ <div>
40
+ <!-- 比例 -->
41
+ <div v-if="form && form.depositType == '1'">
42
+ The Buyer shall pay a deposit of {{ form.deposit}}% of the total Contract Price to TTYY within {{ form.depositDays }} days {{ depositPaymentFormKey(form.depositPaymentForm)}}.
43
+ </div>
44
+ <!-- 固定金额 -->
45
+ <div v-else>
46
+ The Buyer shall pay a deposit of {{`$${form.advanceDepositAmount}`}}
47
+ TTYY within {{ form.depositDays }} days {{ depositPaymentFormKey(form.depositPaymentForm) }}.
48
+ </div>
49
+ The remaining {{ form && form.depositType == '1' && form.balance > 0 ? `${form.balance}%` : '' }} balance of the total Contract Price
50
+ shall be paid by the Buyer to TTYY via Telegraphic Transfer ({{form.balancePaymentType}}) no later than {{form.balanceDays}} days {{balancePaymentFormKey(form.balancePaymentForm)}}
51
+ </div>
52
+ The Buyer shall ensure that all payments are made free and clear of any deductions, charges, fees, or
53
+ withholdings imposed by any governmental or regulatory authority. If any such deductions or withholdings are
54
+ required by law, the Buyer shall increase the amount payable to TTYY so that, after any such deductions or
55
+ withholdings, TTYY receives an amount equal to the Contract Price.
56
+ <br />
57
+ If the Buyer fails to make any payment within the stipulated time frames, TTYY shall be entitled to charge
58
+ interest on the overdue amount at a rate of 0.05% per day from the due date until the date of actual payment.
59
+ </div>
60
+ <h3>ARTICLE 9 – FLOATING PRICE</h3>
61
+ <div v-if="form.quoteType && form.quoteType != 'FIXED'">
62
+ Price Period: The {{ form.livePriceUsertype }} has the pricing authority option from container loaded date until
63
+ {{ form.livePriceDays }} days {{ form.livePriceForm }} it arrives at the port.
64
+ <br />
65
+ FOR PRICING the Buyer and TTYY can communicate through email, Wechat group, WhatsApp group, phone call or the
66
+ pricing function button of the APP.
67
+ <br />
68
+ The pricing will be determined based on the local working hours of either the Seller or the Buyer who provides
69
+ the price option.
70
+ <br />
71
+ If the Buyer is unable to fix the price within the agreed Price Fixing Period, the Buyer may request an
72
+ extension. The request for extension must be submitted in writing to TTYY before the expiration of the initial
73
+ Price Fixing Period.
74
+ <br />
75
+ The Buyer acknowledges and agrees that an extension of the Price Fixing Period shall be subject to supplier’s
76
+ allowance.
77
+ <br />
78
+ The Buyer shall make a prompt payment (within two working days) to the Seller, amounting to 110% of the
79
+ provisional pricing formula based on the LME/CME reference price on the day and at the time the Buyer declared
80
+ the exercise of the Extension Option.
81
+ <br />
82
+ TTYY’s supplier reserves the right to approve or deny any request for an extension of the Price Fixing Period
83
+ in its sole discretion. The granting of an extension does not constitute a waiver of TTYY's rights under this
84
+ Contract.
85
+ <br />
86
+ If the Buyer fails to fix the price within the Price Fixing Period, including any extended period granted by
87
+ TTYY, TTYY shall have the right to determine the contract price based on the Market Closing Price of the Price
88
+ Fixing Deadline.
89
+ <br />
90
+ Any extension of the Price Fixing Period shall be the final extension, and no further extensions shall be
91
+ granted unless otherwise agreed upon in writing by the parties.
92
+ </div>
93
+ <h3>ARTICLE 10 – MARGIN CALL</h3>
94
+ <div>
95
+ <text-content :form="form" :disable="disable" keys="saleMarginCall"></text-content>
96
+ </div>
97
+ <h3>ARTICLE 11 – PRICE ADJUSTMENT</h3>
98
+ <div>
99
+ <text-content :form="form" :disable="disable" keys="priceAdjustment"></text-content>
100
+ </div>
101
+ <h3>ARTICLE 12 - PACKING, DELIVERY, SHIPPING & RISK OF LOSS</h3>
102
+ <div>
103
+ The delivery terms shall be set forth on the first page of the Contract. The Contract includes standard
104
+ commercial packaging for the goods. When special or export packaging is required or requested, the cost of the
105
+ special packaging will be separately invoiced.
106
+ <br /><br />
107
+ If the Buyer pays the deposit late (if the delay is within {{ form.latestShipment }} days of the original
108
+ contract deposit, the contract will be extended; if the delay exceeds {{ form.latestShipment }} days, the
109
+ delivery time cannot be guaranteed), the goods will be shipped within {{ form.latestShipment }} days from the
110
+ date of deposit payment.
111
+ <br /><br />
112
+ To be arranged by the Seller within {{ form.latestShipment }} days from the date of signature of this Agreement.
113
+ (For sake of clarity, within the above deadline, the Seller shall be obliged to arrange for the loading of the
114
+ Material in the containers, not for the loading onboard the vessel (which will be reflected in the Shipped on
115
+ Board date of BL). Seller has no control over shipping delays caused by the carrier and can therefore be
116
+ responsible only for the date by which the material is loaded in the container, not for the date of loading
117
+ onboard the vessel or for the sailing date. If container sailing is delayed due to delays by the shipping
118
+ lines, by customs, and/or by causes of force majeure, if by the expiry of the above deadline, the Material has
119
+ not yet been loaded into the respective containers, In the event that the Buyer does not exercise its
120
+ cancellation notice to the seller 3 days’ before deadline as per above, this Agreement shall be automatically
121
+ extended for additional 45 days. In any case, the Buyer shall not be entitled to cancel this Agreement once
122
+ the Material is loaded into the containers and notice thereof has been given by the Seller to the Buyer.
123
+ </div>
124
+ <h3>ARTICLE 13 - AS IS; NO WARRANTY</h3>
125
+ <div>
126
+ <text-content :form="form" :disable="disable" keys="saleNoWarranty"></text-content>
127
+ </div>
128
+ <h3>ARTICLE 14 - TAXES, DUTIES, FEES</h3>
129
+ <div>
130
+ <text-content :form="form" :disable="disable" keys="taxes"></text-content>
131
+ </div>
132
+ <h3>ARTICLE 15 - LICENSES/PERMITS</h3>
133
+ <div>
134
+ <text-content :form="form" :disable="disable" keys="licenses"></text-content>
135
+ </div>
136
+ <h3>ARTICLE 16 - COMPLIANCE WITH LAWS AND STATUTORY REGULATIONS</h3>
137
+ <div>
138
+ <text-content :form="form" :disable="disable" keys="complianceWithLaws"></text-content>
139
+ </div>
140
+ <h3>ARTICLE 17 - CANCELLATION AND TERMINATION</h3>
141
+ <div>
142
+ <text-content :form="form" :disable="disable" keys="cancellation"></text-content>
143
+ </div>
144
+ <h3>ARTICLE 18 - LIMITATION OF LIABILITY</h3>
145
+ <div>
146
+ <text-content :form="form" :disable="disable" keys="limitation"></text-content>
147
+ </div>
148
+ <h3>ARTICLE 19 – DISPUTES</h3>
149
+ <div>
150
+ <text-content :form="form" :disable="disable" keys="disputes"></text-content>
151
+ </div>
152
+ <h3>ARTICLE 20 - LAW GOVERNING CONTRACT</h3>
153
+ <div>
154
+ <text-content :form="form" :disable="disable" keys="lawGoverning"></text-content>
155
+ </div>
156
+ <h3>ARTICLE 21 – SEVERABILITY</h3>
157
+ <div>
158
+ <text-content :form="form" :disable="disable" keys="severability"></text-content>
159
+ </div>
160
+ <h3>ARTICLE 22 – ASSIGNMENT</h3>
161
+ <div>
162
+ <text-content :form="form" :disable="disable" keys="assignment"></text-content>
163
+ </div>
164
+ <h3>ARTICLE 23 – WAIVER</h3>
165
+ <div>
166
+ <text-content :form="form" :disable="disable" keys="waiver"></text-content>
167
+ </div>
168
+ <h3>ARTICLE 24 – NONDISCLOSURE</h3>
169
+ <div>
170
+ <text-content :form="form" :disable="disable" keys="saleNoNdisclosure"></text-content>
171
+ </div>
172
+ <h3>ARTICLE 25 - EXCUSABLE DELAYS</h3>
173
+ <div>
174
+ <text-content :form="form" :disable="disable" keys="excusable"></text-content>
175
+ </div>
176
+ <h3>ARTICLE 26 – LANGUAGE</h3>
177
+ <div>
178
+ <text-content :form="form" :disable="disable" keys="language"></text-content>
179
+ </div>
180
+ <h3>ARTICLE 27 – MISCELLANEOUS</h3>
181
+ <div>
182
+ <text-content :form="form" :disable="disable" keys="miscellaneous"></text-content>
183
+ </div>
184
+ </div>
185
+ <div v-else>
186
+ <h3>ARTICLE 1 – DEFINITIONS</h3>
187
+ <div>
188
+ <text-content :form="form" :disable="disable" keys="definitions"></text-content>
189
+ </div>
190
+ <h3>ARTICLE 2 – Annexure of Inquiry Page Content</h3>
191
+ <div>
192
+ <text-content :form="form" :disable="disable" keys="annexure"></text-content>
193
+ </div>
194
+ <h3>ARTICLE 3 – ACCEPTANCE</h3>
195
+ <div>
196
+ <text-content :form="form" :disable="disable" keys="acceptance"></text-content>
197
+ </div>
198
+ <h3>ARTICLE 4 – INCONSISTENT COMMODITY NAMES</h3>
199
+ <div>
200
+ <text-content :form="form" :disable="disable" keys="inconsistent"></text-content>
201
+ </div>
202
+ <h3>ARTICLE 5 – QUALITY, CUSTOMS REJECTION</h3>
203
+ <div>
204
+ <text-content :form="form" :disable="disable" keys="quality"></text-content>
205
+ </div>
206
+ <h3>ARTICLE 6 – CLAIM</h3>
207
+ <div>
208
+ <text-content :form="form" :disable="disable" keys="claim"></text-content>
209
+ </div>
210
+ <h3>ARTICLE 7 – LOADING REQUIREMENT</h3>
211
+ <div>
212
+ <text-content :form="form" :disable="disable" keys="loadingRequirement"></text-content>
213
+ </div>
214
+ <h3>ARTICLE 8 – PAYMENT</h3>
215
+ <div>
216
+ <!-- 比例 -->
217
+ <div v-if="form && form.depositType == '1'">
218
+ TTYY's downstream customers shall pay a deposit of {{ form.deposit}}% of the total Contract Price to the Seller within {{ form.depositDays }} days {{ depositPaymentFormKey(form.depositPaymentForm)}}.
219
+ </div>
220
+ <!-- 固定金额 -->
221
+ <div v-else>
222
+ TTYY's downstream customers shall pay a deposit of {{`$${form.advanceDepositAmount}`}}
223
+ TTYY within {{ form.depositDays }} days {{ depositPaymentFormKey(form.depositPaymentForm) }}.
224
+ </div>
225
+ </div>
226
+ The remaining {{ form && form.depositType == '1' && form.balance > 0 ? `${form.balance}%` : '' }} balance of the total Contract Price shall
227
+ be paid to the Seller via Telegraphic Transfer ({{ form.balancePaymentType }}) no later than {{ form.balanceDays }}
228
+ days {{ balancePaymentFormKey(form.balancePaymentForm) }}.
229
+ <h3>AARTICLE 9 – FLOATING PRICE</h3>
230
+ <div v-if="form.quoteType && form.quoteType != 'FIXED'">
231
+ Price Period: The {{ form.livePriceUsertype }} has the pricing option from container loaded date until
232
+ {{ form.livePriceDays }} days {{ form.livePriceForm }} it arrives at the port.
233
+ <br />
234
+ FOR PRICING the Seller and TTYY can communicate through email, Wechat group, WhatsApp group,Make a phone call
235
+ or the pricing function button of the APP.
236
+ <br />
237
+ The pricing will be determined based on the local working hours of either the Seller or the Buyer who provides
238
+ the price option.
239
+ <br />
240
+ If one party is unable to fix the price within the agreed Price Fixing Period, it is permitted to apply for an
241
+ extension pricing period application.The other party have the right to evaluate and offer extension pricing
242
+ period or not.
243
+ </div>
244
+ <h3>ARTICLE 10 – PRICE ADJUSTMENT</h3>
245
+ <div>
246
+ <text-content :form="form" :disable="disable" keys="priceAdjustment"></text-content>
247
+ </div>
248
+ <h3>ARTICLE 11 – PACKING, DELIVERY, SHIPPING & RISK OF LOSS</h3>
249
+ <div>
250
+ <text-content :form="form" :disable="disable" keys="purchasePacking"></text-content>
251
+ </div>
252
+ <h3>ARTICLE 12 - SHIPMENT PERIOD</h3>
253
+ <div>
254
+ <text-content :form="form" :disable="disable" keys="purchaseShipmentPeriod"></text-content>
255
+ </div>
256
+ <h3>ARTICLE 13 - TAXES, DUTIES, FEES</h3>
257
+ <div>
258
+ <text-content :form="form" :disable="disable" keys="taxes"></text-content>
259
+ </div>
260
+ <h3>ARTICLE 14 - LICENSES/PERMITS</h3>
261
+ <div>
262
+ <text-content :form="form" :disable="disable" keys="licenses"></text-content>
263
+ </div>
264
+ <h3>ARTICLE 15 - COMPLIANCE WITH LAWS AND STATUTORY REGULATIONS</h3>
265
+ <div>
266
+ <text-content :form="form" :disable="disable" keys="complianceWithLaws"></text-content>
267
+ </div>
268
+ <h3>AARTICLE 16 - CANCELLATION AND TERMINATION</h3>
269
+ <div>
270
+ <text-content :form="form" :disable="disable" keys="cancellation"></text-content>
271
+ </div>
272
+ <h3>ARTICLE 17 - LIMITATION OF LIABILITY</h3>
273
+ <div>
274
+ <text-content :form="form" :disable="disable" keys="limitation"></text-content>
275
+ </div>
276
+ <h3>ARTICLE 18 – DISPUTES</h3>
277
+ <div>
278
+ <text-content :form="form" :disable="disable" keys="disputes"></text-content>
279
+ </div>
280
+ <h3>ARTICLE 19 - LAW GOVERNING CONTRACT</h3>
281
+ <div>
282
+ <text-content :form="form" :disable="disable" keys="lawGoverning"></text-content>
283
+ </div>
284
+ <h3>ARTICLE 20 – SEVERABILITY</h3>
285
+ <div>
286
+ <text-content :form="form" :disable="disable" keys="severability"></text-content>
287
+ </div>
288
+ <h3>ARTICLE 21 – ASSIGNMENT</h3>
289
+ <div>
290
+ <text-content :form="form" :disable="disable" keys="assignment"></text-content>
291
+ </div>
292
+ <h3>ARTICLE 22 – WAIVER</h3>
293
+ <div>
294
+ <text-content :form="form" :disable="disable" keys="waiver"></text-content>
295
+ </div>
296
+ <h3>ARTICLE 23 - EXCUSABLE DELAYS</h3>
297
+ <div>
298
+ <text-content :form="form" :disable="disable" keys="excusable"></text-content>
299
+ </div>
300
+ <h3>ARTICLE 24 – INSURANCE</h3>
301
+ <div>
302
+ <text-content :form="form" :disable="disable" keys="purchaseInsurance"></text-content>
303
+ </div>
304
+ <h3>ARTICLE 25 – LANGUAGE</h3>
305
+ <div>
306
+ <text-content :form="form" :disable="disable" keys="language"></text-content>
307
+ </div>
308
+ <h3>ARTICLE 26 – MISCELLANEOUS</h3>
309
+ <div>
310
+ <text-content :form="form" :disable="disable" keys="miscellaneous"></text-content>
311
+ </div>
312
+ </div>
313
+ </div>
314
+ </div>
315
+ </template>
316
+ <script>
317
+ import TextContent from './contractClauseComponenrts/TextContent'
318
+ export default {
319
+ name: 'ContractClause',
320
+ dicts: ['deposit_payment_form', 'balance_payment_form'],
321
+ props: {
322
+ form: {
323
+ type: Object,
324
+ default: null
325
+ },
326
+ editable: {
327
+ type: Boolean,
328
+ default: false
329
+ }
330
+ },
331
+ components: {
332
+ TextContent
333
+ },
334
+ data() {
335
+ return {
336
+ disable: true
337
+ }
338
+ },
339
+ created() {
340
+ },
341
+ methods: {
342
+ disableEdit() {
343
+ this.disable = true
344
+ },
345
+ depositPaymentFormKey(value) {
346
+ let label = this.dict.type.deposit_payment_form.find(item => item.value == value)?.raw?.dictLabelEn
347
+ return label || ''
348
+ },
349
+ balancePaymentFormKey(value) {
350
+ let label = this.dict.type.balance_payment_form.find(item => item.value == value)?.raw?.dictLabelEn
351
+ return label || ''
352
+ }
353
+ }
354
+ }
355
+ </script>
356
+ <style lang="scss" scoped></style>
@@ -0,0 +1,53 @@
1
+ <template>
2
+ <div>
3
+ <div class="text-content-text" v-if="disable">{{ form['contractClause'][keys] }}</div>
4
+ <el-input v-else type="textarea" v-model="form['contractClause'][keys]" :autosize="{ minRows: 3}"></el-input>
5
+ </div>
6
+ </template>
7
+
8
+ <script>
9
+ export default {
10
+ name: 'TextContent',
11
+ props: {
12
+ form: {
13
+ type: Object,
14
+ default: () => {}
15
+ },
16
+ disable: {
17
+ type: Boolean,
18
+ default: true
19
+ },
20
+ keys: {
21
+ type: String,
22
+ default: ''
23
+ }
24
+ },
25
+
26
+ data() {
27
+ return {
28
+
29
+ };
30
+ },
31
+
32
+ mounted() {
33
+
34
+ },
35
+
36
+ methods: {
37
+
38
+ },
39
+ };
40
+ </script>
41
+
42
+ <style lang="scss" scoped>
43
+ .text-content-text {
44
+ white-space: pre-wrap;
45
+ word-break:break-word;
46
+ }
47
+
48
+ .contract-textarea {
49
+ width: 100%;
50
+ height: max-content;
51
+ }
52
+
53
+ </style>
@@ -1,188 +1,24 @@
1
1
  <template>
2
2
  <div class="app-container">
3
3
  <div class="info" id="printPdf">
4
- <div class="type">
5
- {{ contract.contractType == 'sale' ? 'Sales Contract' : 'Purchase Contract' }}
4
+ <div style="display: flex; justify-content: space-between; align-items: center">
5
+ <div class="type">
6
+ {{ contract.contractType == 'sale' ? 'Sales Contract' : 'Purchase Contract' }}
7
+ </div>
8
+ <div class="type" style="text-align: right">Contract Date: {{ $formatDate(contract.createTime) && $formatDate(contract.createTime).split(' ')[0] }}</div>
6
9
  </div>
7
10
  <div class="title">TTYY INTERNATIONAL LIMITED</div>
8
11
  <div class="sub-title mb20">FLAT/RM 07, 12/F, CHEVALIER COMMERCIAL CENTRE 8, WANG HOI ROAD, KOWLOON BAY, KL, HONG KONG</div>
9
12
  <el-row class="mb10">
10
13
  <el-col :span="5">
11
- {{ contract.contractType == 'sale' ? 'Sales Order #:' : 'Purchase Order' }}
14
+ {{ contract.contractType == 'sale' ? 'Sales Order#:' : 'Purchase Order#:' }}
12
15
  </el-col>
13
16
  <el-col :span="7">{{ contract.contractNo }}</el-col>
14
- <el-col :span="5">{{ `Reference#: ${contract.reference}` }}</el-col>
15
- <el-col :span="7"></el-col>
17
+ <el-col :span="7">Reference#: </el-col>
18
+ <el-col :span="5">{{ contract.reference }}</el-col>
16
19
  </el-row>
17
- <div>
18
- <el-row :gutter="20">
19
- <el-col :span="12">
20
- <div class="company">
21
- <div class="company-type">Seller</div>
22
- <div class="company-text">{{ contract.supplierContractCompany.companyEnglishName }}</div>
23
- <div class="company-text">{{ contract.supplierContractCompany.address }}</div>
24
- </div>
25
- </el-col>
26
- <el-col :span="12">
27
- <div class="company">
28
- <div class="company-type">Buyer</div>
29
- <div class="company-text">{{ contract.buyContractCompany.companyEnglishName }}</div>
30
- <div class="company-text">{{ contract.buyContractCompany.address }}</div>
31
- </div>
32
- </el-col>
33
- </el-row>
34
- <el-divider></el-divider>
35
- <div class="item">
36
- <el-table
37
- :data="contract.contractDetailList"
38
- :header-cell-style="{ backgroundColor: '#ffffff' }"
39
- :row-style="{ border: 'none' }"
40
- :summary-method="getSummaries"
41
- show-summary
42
- >
43
- <el-table-column label="Description" align="center" prop="askName"></el-table-column>
44
- <el-table-column label="Quantity" align="center" prop="weight">
45
- <template slot-scope="scope">{{ CommonFormatNumber(scope.row.weight) }}MT</template>
46
- </el-table-column>
47
- <el-table-column label="Unit Price/MT" align="center" width="200">
48
- <template slot-scope="{ row }">
49
- <div v-if="contract.quoteType == 'FIXED'">
50
- <span v-if="contract.contractType == 'sale'">${{ row.quotePrice }}</span>
51
- <span v-else>${{ row.sllerPrice }}</span>
52
- </div>
53
- <div v-if="isCmx(contract.quoteType)">
54
- <span v-if="contract.contractType == 'sale'">{{ `$(${contract.quoteType}-${row.quotePrice})*2204.62` }}</span>
55
- <span v-else>{{ `$(${contract.quoteType}-${row.sllerPrice})*2204.62` }}</span>
56
- </div>
57
- <div v-if="isLme(contract.quoteType)">
58
- <div v-if="checkElementItem(row.elementContent)">
59
- {{ contract.contractType == 'sale' ? row.quotePriceFormula : row.sellerPriceFormula }}
60
- </div>
61
- <div v-else>
62
- <span v-if="contract.contractType == 'sale'">{{ ` $(${contract.quoteType} *${row.quotePrice}%) ` }}</span>
63
- <span v-else>{{ `$(${contract.quoteType} *${row.sllerPrice}%)` }}</span>
64
- </div>
65
- </div>
66
- </template>
67
- </el-table-column>
68
-
69
- <el-table-column label="Service fee/MT" align="center">
70
- <template slot-scope="scope">${{ scope.row.serviceFee }}</template>
71
- </el-table-column>
72
-
73
- <!--总价-->
74
- <el-table-column label="Net Unit Price/MT" align="center">
75
- <template slot-scope="scope">
76
- <span v-if="contract.quoteType == 'FIXED' && contract.contractType == 'purchase'">{{ '$' + (scope.row.sllerPrice - Number(scope.row.serviceFee)) }}</span>
77
- <span v-else-if="contract.quoteType == 'FIXED' && contract.contractType == 'sale'">
78
- {{ '$' + (Number(scope.row.quotePrice) + Number(scope.row.serviceFee)) }}
79
- </span>
80
- <span v-else-if="isLme(contract.quoteType) && contract.contractType == 'purchase'">
81
- <div v-if="checkElementItem(scope.row.elementContent)">
82
- {{ scope.row.sellerPriceFormula + '- $' + Number(scope.row.serviceFee) }}
83
- </div>
84
- <div v-else>
85
- {{ '$(' + contract.quoteType + ' * ' + scope.row.sllerPrice + '%) - $' + Number(scope.row.serviceFee) }}
86
- </div>
87
- </span>
88
- <span v-else-if="isLme(contract.quoteType) && contract.contractType == 'sale'">
89
- <div v-if="checkElementItem(scope.row.elementContent)">
90
- {{ scope.row.quotePriceFormula + '+ $' + Number(scope.row.serviceFee) }}
91
- </div>
92
- <div v-else>
93
- {{ '$(' + contract.quoteType + ' * ' + scope.row.quotePrice + '%) + $' + Number(scope.row.serviceFee) }}
94
- </div>
95
- </span>
96
- <span v-else-if="isCmx(contract.quoteType) && contract.contractType == 'purchase'">
97
- {{ '${(' + contract.quoteType + '-' + scope.row.sllerPrice + ')*2204.62} - $' + Number(scope.row.serviceFee) }}
98
- </span>
99
- <span v-else>
100
- {{ '${(' + contract.quoteType + '-' + scope.row.quotePrice + ')*2204.62} + $' + Number(scope.row.serviceFee) }}
101
- </span>
102
- </template>
103
- </el-table-column>
104
- </el-table>
105
- </div>
106
- <el-divider></el-divider>
107
-
108
- <el-descriptions :column="1" :labelStyle="{ fontWeight: 'bold' }">
109
- <el-descriptions-item label="Service Fee">{{ contract.serviceFee }}</el-descriptions-item>
110
- <el-descriptions-item label="Freight Terms">{{ contract.freightTerms }}</el-descriptions-item>
111
- <el-descriptions-item label="Payment Terms">
112
- <div v-if="(contract.balanceDays || contract.balanceDays == 0) && contract.balance && contract.balancePaymentType && contract.balancePaymentForm">
113
- <span v-if="contract.deposit"> Deposit ratio {{ contract.deposit }}% {{ contract.depositDays }} days {{ contract.depositPaymentForm }} and </span>
114
- {{ contract.balance }}% balance {{ contract.balancePaymentType }} paid {{ contract.balanceDays }} days {{ contract.balancePaymentForm }}
115
- {{ contract.otherPaymentTerm }}
116
- </div>
117
- <div v-else>{{ contract.otherPaymentTerm }}</div>
118
- </el-descriptions-item>
119
- <el-descriptions-item label="Price Fixing Option">
120
- <div v-if="contract.livePriceSwitch">
121
- {{ contract.livePriceDays }} Days {{ contract.livePriceForm }} cargo arrives at POD in
122
- {{ contract.livePriceUsertype }}
123
- {{ contract.livePriceType }}'s option
124
- </div>
125
- </el-descriptions-item>
126
-
127
- <el-descriptions-item label="Origin Country/Region">{{ contract.originCountry }}</el-descriptions-item>
128
- <el-descriptions-item label="Loading Country/Region">{{ contract.loadingCountry }}</el-descriptions-item>
129
- <el-descriptions-item v-if="contract.freightTerms != 'EXW'" label="Destination">{{ contract.destination }}</el-descriptions-item>
130
- <el-descriptions-item v-else label="EXW Address">{{ contract.exw }}</el-descriptions-item>
131
- <el-descriptions-item label="Special Instructions">
132
- {{ contract.numberOfContainersForTwenty }}x 20' Container
133
- <br />
134
- {{ contract.numberOfContainersForForty }}x 40' Container
135
- <br />
136
- {{ contract.numberOfContainersForTwentyOrForty }}x 20'/40' Container
137
- <br />
138
- More or less &lt; {{ contract.toleranceFloat * 100 }}%
139
- <br />
140
- </el-descriptions-item>
141
- <el-descriptions-item label="Latest shipment"> within {{ contract.latestShipment }} days of the contract signed date </el-descriptions-item>
142
- <el-descriptions-item label="Required documents">
143
- <el-tag :key="tag" v-for="tag in dynamicTags" class="mr5">{{ tag }}</el-tag>
144
- </el-descriptions-item>
145
- <el-descriptions-item label="Weight Tolerance">{{ contract.weightTolerance }}%</el-descriptions-item>
146
-
147
- <el-descriptions-item label="Quality certificate" v-if="contract.qualityCertificateSwitch">{{ contract.qualityCertificate }}</el-descriptions-item>
148
- <el-descriptions-item label="Claim" v-if="contract.claimSwitch">{{ contract.claim }}</el-descriptions-item>
149
-
150
- <el-descriptions-item label="Arbitration" v-if="contract.arbitrationSwitch">{{ contract.arbitration }}</el-descriptions-item>
151
- <el-descriptions-item label="Memo " v-if="contract.memoSwitch">{{ contract.memo }}</el-descriptions-item>
152
- <el-descriptions-item v-for="(item, index) in this.customClause" :label="item.title" :key="index">{{ item.content }}</el-descriptions-item>
153
- </el-descriptions>
154
- <div class="sign">Please sign below and return.</div>
155
- <el-row :gutter="20">
156
- <el-col :span="12">
157
- <div class="company-sign">
158
- <el-row>
159
- <el-col :span="5">
160
- <div class="company-sign-title">Seller</div>
161
- </el-col>
162
- </el-row>
163
- <div class="company-sign-title">Company Name:</div>
164
- <div class="company-sign-text">{{ contract.supplierContractCompany.companyEnglishName }}</div>
165
- <div class="company-sign-title">Signature:</div>
166
- <div class="company-sign-title">Date:</div>
167
- <div class="company-sign-text">{{ parseTime(contract.createTime, '{m}/{d}/{y}') }}</div>
168
- </div>
169
- </el-col>
170
- <el-col :span="12">
171
- <div class="company-sign">
172
- <el-row>
173
- <el-col :span="5">
174
- <div class="company-sign-title">Buyer</div>
175
- </el-col>
176
- </el-row>
177
- <div class="company-sign-title">Company Name:</div>
178
- <div class="company-sign-text">{{ contract.buyContractCompany.companyEnglishName }}</div>
179
- <div class="company-sign-title">Signature:</div>
180
- <div class="company-sign-title">Date:</div>
181
- <div class="company-sign-text">{{ parseTime(contract.createTime, '{m}/{d}/{y}') }}</div>
182
- </div>
183
- </el-col>
184
- </el-row>
185
- </div>
20
+ <info :form="contract" :dynamicTags="dynamicTags" :customClause="customClause"></info>
21
+ <contract-clause v-if="contract.contractClause" style="margin-top:60px" :form="contract"></contract-clause>
186
22
  <div style="margin-left: 100px; margin-top: 20px">FLAT/RM 07, 12/F, CHEVALIER COMMERCIAL CENTRE 8, WANG HOI ROAD, KOWLOON BAY, KL, HONG KONG</div>
187
23
  </div>
188
24
  <div class="footer" v-if="!printModel">
@@ -194,6 +30,8 @@
194
30
  <script>
195
31
  import { exportPdf } from '../../../utils/pdf'
196
32
  import { CommonFormatNumber } from '../../../utils/MycommonUtil'
33
+ import ContractClause from './contractClause'
34
+ import Info from './info'
197
35
 
198
36
  export default {
199
37
  name: 'ContractPdf',
@@ -228,7 +66,10 @@ export default {
228
66
  default: () => []
229
67
  }
230
68
  },
231
- components: {},
69
+ components: {
70
+ ContractClause,
71
+ Info
72
+ },
232
73
  data() {
233
74
  return {
234
75
  //争议选项