doctor-admin-components 1.0.14-beta.8 → 1.0.14-beta.81
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.
- package/README.md +25 -48
- package/package.json +1 -1
- package/packages/index.js +14 -3
- package/packages/src/api/biz/bizContract.js +36 -9
- package/packages/src/api/biz/bizShipment.js +30 -1
- package/packages/src/api/biz/dictData.js +4 -1
- package/packages/src/i18n/zh-CN/message.json +1 -1
- package/packages/src/index.js +18 -2
- package/packages/src/utils/index.js +1 -1
- package/packages/src/utils/zip.js +29 -11
- package/packages/src/views/biz/bizFileInfo/contract.vue +131 -151
- package/packages/src/views/biz/bizFileInfo/contractFile/IMGPreviewCheckBox.vue +8 -6
- package/packages/src/views/biz/bizFileInfo/fileShow.vue +5 -3
- package/packages/src/views/biz/bizShipment/add.vue +234 -142
- package/packages/src/views/biz/contractTracing/billInfo.vue +17 -9
- package/packages/src/views/biz/contractTracing/changrLogList.vue +67 -0
- package/packages/src/views/biz/contractTracing/companyBanks.vue +19 -8
- package/packages/src/views/biz/contractTracing/contractChangeLog.vue +29 -2
- package/packages/src/views/biz/contractTracing/contractClause.vue +356 -0
- package/packages/src/views/biz/contractTracing/contractClauseComponenrts/TextContent.vue +53 -0
- package/packages/src/views/biz/contractTracing/contractPdf.vue +16 -175
- package/packages/src/views/biz/contractTracing/contractSummary.vue +101 -73
- package/packages/src/views/biz/contractTracing/contractTracingDetail.vue +2 -2
- package/packages/src/views/biz/contractTracing/editBill.vue +35 -27
- package/packages/src/views/biz/contractTracing/info.vue +365 -0
- package/packages/src/views/biz/contractTracing/purchaseInvoiceUpload.vue +5 -2
- package/packages/src/views/biz/contractTracing/queryDeductionRecords.vue +103 -0
- package/packages/src/views/biz/contractTracing/shipmentPurchaseAmount.vue +361 -79
- package/packages/src/views/biz/contractTracing/shipmentPurchaseAmountEditDialog.vue +176 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
* @Author: zhangpengwei@1338418459736990.onaliyun.com zhangpengwei@1338418459736990.onaliyun.com
|
|
3
|
+
* @Date: 2024-08-19 15:46:00
|
|
4
|
+
* @LastEditors: zhangpengwei@1338418459736990.onaliyun.com zhangpengwei@1338418459736990.onaliyun.com
|
|
5
|
+
* @LastEditTime: 2024-08-21 16:19:39
|
|
6
|
+
* @FilePath: /doctor-admin-components 公共组件/packages/src/views/biz/contractTracing/shipmentPurchaseAmountEditDialog.vue
|
|
7
|
+
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
8
|
+
-->
|
|
9
|
+
<template>
|
|
10
|
+
<div v-if="list.length">
|
|
11
|
+
<div class="bold" style="margin-bottom:10px">历史修正记录</div>
|
|
12
|
+
<div class="wrap" v-for="listItem in list" :key="listItem.changeId">
|
|
13
|
+
<div class="row-wrap">
|
|
14
|
+
<div class="time">{{ utc2local(listItem.changeTime, 'yyyy-MM-DD HH:mm:ss') }}</div>
|
|
15
|
+
<div class="time">修改人:{{ listItem.operName }}</div>
|
|
16
|
+
</div>
|
|
17
|
+
<div class="row-wrap-1">
|
|
18
|
+
<div class="title bold">修改内容:</div>
|
|
19
|
+
<div>{{ listItem.changeContent }}</div>
|
|
20
|
+
</div>
|
|
21
|
+
<div class="row-wrap-1" v-if="listItem.changeReason">
|
|
22
|
+
<div class="title bold">修改原因:</div>
|
|
23
|
+
<div style="white-space: pre-line !important">{{ listItem.changeReason }}</div>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
</template>
|
|
29
|
+
<script>
|
|
30
|
+
export default {
|
|
31
|
+
props: {
|
|
32
|
+
list: {
|
|
33
|
+
type: Array,
|
|
34
|
+
default: () => []
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
name: 'changrLogList',
|
|
38
|
+
data() {
|
|
39
|
+
return {}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
</script>
|
|
43
|
+
<style scoped lang="scss">
|
|
44
|
+
.wrap {
|
|
45
|
+
padding:10px 20px;
|
|
46
|
+
margin-bottom: 10px;
|
|
47
|
+
background-color: #f2f2f2;
|
|
48
|
+
}
|
|
49
|
+
.bold {
|
|
50
|
+
font-weight: bold;
|
|
51
|
+
}
|
|
52
|
+
.row-wrap {
|
|
53
|
+
display: flex;
|
|
54
|
+
justify-content: space-between;
|
|
55
|
+
margin-bottom: 10px;
|
|
56
|
+
.time {
|
|
57
|
+
font-size:12px;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
.row-wrap-1 {
|
|
61
|
+
display: flex;
|
|
62
|
+
margin-bottom: 10px;
|
|
63
|
+
.title {
|
|
64
|
+
min-width: 70px;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
</style>
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
v-for="(bankData, i) in bankList"
|
|
13
13
|
:key="i"
|
|
14
14
|
class="bank-container"
|
|
15
|
-
:class="{ 'bank-container-select':
|
|
15
|
+
:class="{ 'bank-container-select': sellectIndex == i, 'bank-container-unselect': sellectIndex != i }"
|
|
16
16
|
@click="clickSelct(i)"
|
|
17
17
|
>
|
|
18
18
|
<el-row style="padding-bottom: 20px">
|
|
@@ -34,15 +34,18 @@
|
|
|
34
34
|
<el-col :span="24">
|
|
35
35
|
<div class="bank-item">Beneficiary Address:{{ bankData.beneficiaryAddress }}</div>
|
|
36
36
|
</el-col>
|
|
37
|
+
<el-col :span="24">
|
|
38
|
+
<div class="bank-item" style="display:flex;"><p>Remark:</p><p style="white-space: pre-wrap;">{{ bankData.remark }}</p></div>
|
|
39
|
+
</el-col>
|
|
37
40
|
</el-row>
|
|
38
41
|
</div>
|
|
39
42
|
<!-- 添加入口 -->
|
|
40
43
|
<div v-if="!bankList || bankList.length == 0" style="padding-left: 30px; padding-top: 10px">
|
|
41
44
|
<span>未添加收款账户信息,</span>
|
|
42
|
-
<el-button type="text" size="mini" @click="clickAdd">去添加</el-button>
|
|
45
|
+
<el-button type="text" size="mini" v-hasPermi="['biz:company:payment:account:add']" @click="clickAdd">去添加</el-button>
|
|
43
46
|
</div>
|
|
44
47
|
<div v-else-if="bankList && bankList.length < 3" style="padding-left: 30px; padding-top: 10px">
|
|
45
|
-
<el-button type="text" size="mini" @click="clickAdd">去添加</el-button>
|
|
48
|
+
<el-button type="text" size="mini" @click="clickAdd" v-hasPermi="['biz:company:payment:account:add']">去添加</el-button>
|
|
46
49
|
<span>收款账户信息</span>
|
|
47
50
|
</div>
|
|
48
51
|
<!-- 添加收款账户弹框 -->
|
|
@@ -79,6 +82,11 @@
|
|
|
79
82
|
<el-input maxlength="500" v-model="form.beneficiaryAddress" placeholder="请输入内容" />
|
|
80
83
|
</el-form-item>
|
|
81
84
|
</el-col>
|
|
85
|
+
<el-col :span="18">
|
|
86
|
+
<el-form-item label="Remark" label-width="150px">
|
|
87
|
+
<el-input maxlength="500" type="textarea" rows="4" v-model="form.remark" placeholder="请输入内容" />
|
|
88
|
+
</el-form-item>
|
|
89
|
+
</el-col>
|
|
82
90
|
</el-row>
|
|
83
91
|
</el-form>
|
|
84
92
|
<div slot="footer" class="dialog-footer">
|
|
@@ -137,7 +145,8 @@ export default {
|
|
|
137
145
|
bankAddress: null,
|
|
138
146
|
beneficiaryAccount: null,
|
|
139
147
|
beneficiary: null,
|
|
140
|
-
beneficiaryAddress: null
|
|
148
|
+
beneficiaryAddress: null,
|
|
149
|
+
remark: null,
|
|
141
150
|
},
|
|
142
151
|
rules: {}
|
|
143
152
|
}
|
|
@@ -154,13 +163,15 @@ export default {
|
|
|
154
163
|
bankAddress: null,
|
|
155
164
|
beneficiaryAccount: null,
|
|
156
165
|
beneficiary: null,
|
|
157
|
-
beneficiaryAddress: null
|
|
166
|
+
beneficiaryAddress: null,
|
|
167
|
+
remark: null,
|
|
158
168
|
}
|
|
159
169
|
},
|
|
160
170
|
handleCaclSelectIndex() {
|
|
161
|
-
if (
|
|
171
|
+
if (this.accountId) {
|
|
162
172
|
this.sellectIndex = this.bankList.findIndex((item) => item.accountId == this.accountId)
|
|
163
|
-
|
|
173
|
+
console.log('---sellectIndex:', this.sellectIndex)
|
|
174
|
+
if (this.sellectIndex == -1 && !this.disableSelect) {
|
|
164
175
|
console.log('pre accountId invalide')
|
|
165
176
|
this.$emit('selectBank', null)
|
|
166
177
|
}
|
|
@@ -194,7 +205,7 @@ export default {
|
|
|
194
205
|
},
|
|
195
206
|
clickConfirm() {
|
|
196
207
|
let e = this.form
|
|
197
|
-
if (!(e.swiftCode || e.bankName || e.bankAddress || e.beneficiaryAccount || e.beneficiary || e.beneficiaryAddress)) {
|
|
208
|
+
if (!(e.swiftCode || e.bankName || e.bankAddress || e.beneficiaryAccount || e.beneficiary || e.beneficiaryAddress || e.remark)) {
|
|
198
209
|
this.$modal.msgError('请输入内容')
|
|
199
210
|
return
|
|
200
211
|
}
|
|
@@ -4,8 +4,24 @@
|
|
|
4
4
|
<el-table v-loading="loading" :data="changeLogList">
|
|
5
5
|
<el-table-column label="模块标题" align="center" prop="changeTitle" />
|
|
6
6
|
<el-table-column label="操作人员" align="center" prop="operName" />
|
|
7
|
-
<el-table-column label="旧参数" align="center" prop="oldParam"
|
|
8
|
-
|
|
7
|
+
<el-table-column label="旧参数" align="center" prop="oldParam">
|
|
8
|
+
<template #default="{ row }">
|
|
9
|
+
<el-tooltip effect="dark" :content="row.oldParam" placement="top-start">
|
|
10
|
+
<div class="el-table-column-param-content">
|
|
11
|
+
{{ row.oldParam }}
|
|
12
|
+
</div>
|
|
13
|
+
</el-tooltip>
|
|
14
|
+
</template>
|
|
15
|
+
</el-table-column>
|
|
16
|
+
<el-table-column label="新参数" align="center" prop="newParam">
|
|
17
|
+
<template #default="{ row }">
|
|
18
|
+
<el-tooltip effect="dark" :content="row.newParam" placement="top-start">
|
|
19
|
+
<div class="el-table-column-param-content">
|
|
20
|
+
{{ row.newParam }}
|
|
21
|
+
</div>
|
|
22
|
+
</el-tooltip>
|
|
23
|
+
</template>
|
|
24
|
+
</el-table-column>
|
|
9
25
|
<el-table-column label="操作时间" align="center" prop="changeTime" width="180">
|
|
10
26
|
<template slot-scope="scope">
|
|
11
27
|
<span>{{ utc2local(scope.row.changeTime, 'yyyy-MM-DD HH:mm:ss') }}</span>
|
|
@@ -86,3 +102,14 @@ export default {
|
|
|
86
102
|
}
|
|
87
103
|
}
|
|
88
104
|
</script>
|
|
105
|
+
<style scoped>
|
|
106
|
+
.el-table-column-param-content {
|
|
107
|
+
white-space: pre-wrap;
|
|
108
|
+
word-break: break-word;
|
|
109
|
+
text-align: left;
|
|
110
|
+
display: -webkit-box;
|
|
111
|
+
-webkit-box-orient: vertical;
|
|
112
|
+
-webkit-line-clamp: 3;
|
|
113
|
+
overflow: hidden;
|
|
114
|
+
}
|
|
115
|
+
</style>
|
|
@@ -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>
|