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.
Files changed (29) hide show
  1. package/README.md +25 -48
  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/api/biz/dictData.js +4 -1
  7. package/packages/src/i18n/zh-CN/message.json +1 -1
  8. package/packages/src/index.js +18 -2
  9. package/packages/src/utils/index.js +1 -1
  10. package/packages/src/utils/zip.js +29 -11
  11. package/packages/src/views/biz/bizFileInfo/contract.vue +131 -151
  12. package/packages/src/views/biz/bizFileInfo/contractFile/IMGPreviewCheckBox.vue +8 -6
  13. package/packages/src/views/biz/bizFileInfo/fileShow.vue +5 -3
  14. package/packages/src/views/biz/bizShipment/add.vue +234 -142
  15. package/packages/src/views/biz/contractTracing/billInfo.vue +17 -9
  16. package/packages/src/views/biz/contractTracing/changrLogList.vue +67 -0
  17. package/packages/src/views/biz/contractTracing/companyBanks.vue +19 -8
  18. package/packages/src/views/biz/contractTracing/contractChangeLog.vue +29 -2
  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 +2 -2
  24. package/packages/src/views/biz/contractTracing/editBill.vue +35 -27
  25. package/packages/src/views/biz/contractTracing/info.vue +365 -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
@@ -157,22 +157,22 @@
157
157
  <el-collapse-item name="3">
158
158
  <template slot="title">
159
159
  <el-row style="width: 75%">
160
- <el-form-item class="mt20" :label="$t('contract.secondNotifier') + ':'">{{ 'TTYY INTERNATIONAL LIMITED' }}</el-form-item>
160
+ <el-form-item class="mt20" :label="$t('contract.secondNotifier') + ':'">{{ secondNotifyInfoInfo ? secondNotifyInfoInfo.companyName : "" }}</el-form-item>
161
161
  </el-row>
162
162
  </template>
163
163
  <el-form-item :label="$t('contract.taxId') + ':'">
164
- {{ '73855725-000-23-0' }}
164
+ {{ secondNotifyInfoInfo ? secondNotifyInfoInfo.taxNumber : "" }}
165
165
  </el-form-item>
166
166
  <el-form-item :label="$t('contract.notifierAddress') + ':'">
167
- {{ 'FLAT/RM 07, 12/F, CHEVALIER COMMERCIAL CENTRE, 8 WANG HOI ROAD, KOWLOON BAY' }}
167
+ {{ secondNotifyInfoInfo ? secondNotifyInfoInfo.address : "" }}
168
168
  </el-form-item>
169
169
  <el-form-item :label="$t('contract.contact') + ':'">
170
- {{ 'Ms. Zhou' }}
170
+ {{ secondNotifyInfoInfo ? secondNotifyInfoInfo.contactPerson : "" }}
171
171
  </el-form-item>
172
172
  <el-form-item :label="$t('contract.phoneNumber') + ':'">
173
- {{ '00-852 53816912' }}
173
+ {{ secondNotifyInfoInfo ? secondNotifyInfoInfo.phoneNumber : "" }}
174
174
  </el-form-item>
175
- <el-form-item :label="$t('contract.email') + ':'">{{ 'info@tyzltech.com' }}</el-form-item>
175
+ <el-form-item :label="$t('contract.email') + ':'">{{ secondNotifyInfoInfo ? secondNotifyInfoInfo.email : "" }}</el-form-item>
176
176
  </el-collapse-item>
177
177
  </el-collapse>
178
178
 
@@ -283,12 +283,11 @@
283
283
  </template>
284
284
 
285
285
  <script>
286
- import { getBizDealRecord, updateBizDealRecord } from '../../../api/biz/bizDealRecord'
287
286
  import { listBizContractCompany } from '../../../api/biz/bizContractCompany'
288
287
  import SubCompanyDialog from './subCompanyDialog.vue'
289
288
  import BillGoods from './billGoods.vue'
290
289
  import { listCompanyBillGoods } from '../../../api/biz/bizCompanyBillGoods'
291
- import { getBizContract, changeBizStatus } from '../../../api/biz/bizContract'
290
+ import { getBizContract, getContractBliDetail, updateContractBli, getSecondNotifyInfo } from '../../../api/biz/bizContract'
292
291
  import FileUpload from '../../../components/FileUpload/s3.vue'
293
292
 
294
293
  export default {
@@ -336,7 +335,8 @@ export default {
336
335
  notifierCompanyId: [{ required: true, trigger: 'blur', message: this.$t('bill.tip4') }],
337
336
  goodsName: [{ required: true, trigger: 'blur' }]
338
337
  },
339
- contract: null
338
+ contract: null,
339
+ secondNotifyInfoInfo: null
340
340
  }
341
341
  },
342
342
  watch: {
@@ -367,13 +367,16 @@ export default {
367
367
  }
368
368
  }
369
369
  },
370
- created() {},
370
+ created() {
371
+ this.getSecondNotifyInfo();
372
+ },
371
373
  methods: {
372
- async handleEdit(contractId, dealId) {
374
+ async handleEdit(contractId, buyerCompanyId) {
375
+ this.form.buyerCompanyId = buyerCompanyId
373
376
  const loading = this.openLoading()
374
377
  try {
375
378
  // 等待异步方法完成
376
- await this.getDealRecord(dealId)
379
+ await this.getBliDetail(contractId)
377
380
  await this.getContract(contractId)
378
381
  // 异步操作完成后设置open为true
379
382
  this.open = true
@@ -544,13 +547,15 @@ export default {
544
547
  }
545
548
  this.resetForm('form')
546
549
  },
547
- getDealRecord(dealId) {
550
+ getBliDetail(contractId) {
548
551
  // 将整个方法体封装在返回的Promise中
552
+ const buyerCompanyId = this.form.buyerCompanyId
549
553
  return new Promise((resolve, reject) => {
550
554
  this.reset()
551
- getBizDealRecord(dealId)
555
+ getContractBliDetail(contractId)
552
556
  .then((response) => {
553
- this.form = response.data
557
+ this.form = {...this.form, ...response.data, buyerCompanyId, contractId}
558
+ console.log("getContractBliDetail -- this.form:", this.form)
554
559
  if (this.form.buyerCompanyBillGoods) {
555
560
  this.form.buyerCompanyBillGoods = JSON.parse(this.form.buyerCompanyBillGoods)
556
561
  } else {
@@ -563,7 +568,7 @@ export default {
563
568
  this.getContractCompanyList(this.form.buyerCompanyId)
564
569
  this.getCompanyBillGoods(this.form.buyerCompanyId)
565
570
 
566
- this.form.dealRecordDetailList.map((item) => {
571
+ this.form?.dealRecordDetailList?.map((item) => {
567
572
  if (item.imageList) {
568
573
  item.askCover = item.imageList.toString()
569
574
  }
@@ -585,19 +590,22 @@ export default {
585
590
  submitForm() {
586
591
  this.$refs['form'].validate((valid) => {
587
592
  if (valid) {
588
- if (this.form.dealId != null) {
589
- var deal = JSON.parse(JSON.stringify(this.form))
590
- deal.buyerCompanyBillGoods = JSON.stringify(deal.buyerCompanyBillGoods)
591
- deal.blConfirmFlag = this.confirmFlag
592
- updateBizDealRecord(deal).then((response) => {
593
- this.open = false
594
- this.$modal.msgSuccess('Save Success')
595
- this.$emit('edit')
596
- })
597
- }
593
+ var deal = JSON.parse(JSON.stringify(this.form))
594
+ deal.buyerCompanyBillGoods = JSON.stringify(deal.buyerCompanyBillGoods)
595
+ deal.blConfirmFlag = this.confirmFlag
596
+ updateContractBli(deal).then((response) => {
597
+ this.open = false
598
+ this.$modal.msgSuccess('Save Success')
599
+ this.$emit('edit')
600
+ })
598
601
  }
599
602
  })
600
- }
603
+ },
604
+ getSecondNotifyInfo() {
605
+ getSecondNotifyInfo().then((res) => {
606
+ this.secondNotifyInfoInfo = res.data;
607
+ })
608
+ },
601
609
  }
602
610
  }
603
611
  </script>
@@ -0,0 +1,365 @@
1
+ <template>
2
+ <div v-if="form" style="margin-bottom:40px">
3
+ <el-row :gutter="20">
4
+ <el-col :span="12">
5
+ <div class="company">
6
+ <div class="company-type">Party A (Seller):</div>
7
+ <div class="company-text">{{ form.supplierContractCompany.companyEnglishName }}</div>
8
+ <div class="company-text">{{ form.supplierContractCompany.address }}</div>
9
+ </div>
10
+ </el-col>
11
+ <el-col :span="12">
12
+ <div class="company">
13
+ <div class="company-type">Party B (Buyer):</div>
14
+ <div class="company-text">{{ form.buyContractCompany.companyEnglishName }}</div>
15
+ <div class="company-text">{{ form.buyContractCompany.address }}</div>
16
+ </div>
17
+ </el-col>
18
+ </el-row>
19
+ <el-divider></el-divider>
20
+ <div class="item">
21
+ <el-table
22
+ :data="form.contractDetailList"
23
+ :header-cell-style="{ backgroundColor: '#ffffff' }"
24
+ :row-style="{ border: 'none' }"
25
+ :summary-method="getSummaries"
26
+ show-summary
27
+ >
28
+ <el-table-column label="Description" align="center" prop="askName"></el-table-column>
29
+ <el-table-column label="Commodity Name" align="center" prop="askAliasName"></el-table-column>
30
+ <el-table-column label="Quantity" align="center" prop="weight">
31
+ <template slot-scope="scope">{{ scope.row.weight }}</template>
32
+ </el-table-column>
33
+ <el-table-column label="Unit Price/MT" align="center" width="200">
34
+ <template slot-scope="{ row }">
35
+ <div v-if="form.quoteType == 'FIXED'">
36
+ <span v-if="form.contractType == 'sale'">${{ row.quotePrice }}</span> <span v-else>${{ row.sllerPrice }}</span>
37
+ </div>
38
+ <div v-if="isCmx(form.quoteType)">
39
+ <span v-if="form.contractType == 'sale'">{{ `$(${form.quoteType}-${row.quotePrice})*2204.62` }}</span>
40
+ <span v-else>{{ `$(${form.quoteType}-${row.sllerPrice})*2204.62` }}</span>
41
+ </div>
42
+ <div v-if="isLme(form.quoteType)">
43
+ <div v-if="checkElementItem(row.elementContent)">
44
+ {{ form.contractType == 'sale' ? row.quotePriceFormula : row.sellerPriceFormula }}
45
+ </div>
46
+ <div v-else>
47
+ <span v-if="form.contractType == 'sale'">{{ ` $(${form.quoteType} *${row.quotePrice}%) ` }}</span>
48
+ <span v-else>{{ `$(${form.quoteType} *${row.sllerPrice}%)` }}</span>
49
+ </div>
50
+ </div>
51
+ </template>
52
+ </el-table-column>
53
+
54
+ <el-table-column label="Service fee" align="center">
55
+ <template slot-scope="scope">{{ scope.row.serviceFee ? `$${scope.row.serviceFee}/MT` : '' }}</template>
56
+ </el-table-column>
57
+
58
+ <!-- 总价 -->
59
+ <el-table-column label="Net Unit Price/MT" align="center">
60
+ <template slot-scope="scope">
61
+ <span v-if="form.quoteType == 'FIXED' && form.contractType == 'purchase'">{{ '$' + (scope.row.sllerPrice - Number(scope.row.serviceFee)) }}</span>
62
+ <span v-else-if="form.quoteType == 'FIXED' && form.contractType == 'sale'">
63
+ {{ '$' + (Number(scope.row.quotePrice) + Number(scope.row.serviceFee)) }}
64
+ </span>
65
+ <span v-else-if="isLme(form.quoteType) && form.contractType == 'purchase'">
66
+ <div v-if="checkElementItem(scope.row.elementContent)">
67
+ {{ scope.row.sellerPriceFormula + '- $' + Number(scope.row.serviceFee) }}
68
+ </div>
69
+ <div v-else>
70
+ {{ '$(' + form.quoteType + ' * ' + scope.row.sllerPrice + '%) - $' + Number(scope.row.serviceFee) }}
71
+ </div>
72
+ </span>
73
+ <span v-else-if="isLme(form.quoteType) && form.contractType == 'sale'">
74
+ <div v-if="checkElementItem(scope.row.elementContent)">
75
+ {{ scope.row.quotePriceFormula + '+ $' + Number(scope.row.serviceFee) }}
76
+ </div>
77
+ <div v-else>
78
+ {{ '$(' + form.quoteType + ' * ' + scope.row.quotePrice + '%) + $' + Number(scope.row.serviceFee) }}
79
+ </div>
80
+ </span>
81
+ <span v-else-if="isCmx(form.quoteType) && form.contractType == 'purchase'">
82
+ {{ '${(' + form.quoteType + '-' + scope.row.sllerPrice + ')*2204.62} - $' + Number(scope.row.serviceFee) }}
83
+ </span>
84
+ <span v-else>
85
+ {{ '${(' + form.quoteType + '-' + scope.row.quotePrice + ')*2204.62} + $' + Number(scope.row.serviceFee) }}
86
+ </span>
87
+ </template>
88
+ </el-table-column>
89
+ </el-table>
90
+ </div>
91
+ <el-divider></el-divider>
92
+
93
+ <el-descriptions :column="1" :labelStyle="{ fontWeight: 'bold' }">
94
+ <el-descriptions-item label="Freight Terms">{{ form.freightTerms ? `Incoterms2020 ${form.freightTerms}` : '' }}</el-descriptions-item>
95
+ <el-descriptions-item label="Payment Terms">
96
+ <div>{{ form.paymentTermFullText }}</div>
97
+ </el-descriptions-item>
98
+ <el-descriptions-item label="Price Fixing Option" v-if="form.livePriceSwitch">
99
+ From the loading date to {{form.livePriceDays}} days {{form.livePriceForm}} cargo arrives at POD in {{form.livePriceUsertype}} option.
100
+ <span v-if="form.contractType == 'sale'">Time based on China Standard Time (UTC+8).</span>
101
+ </el-descriptions-item>
102
+
103
+ <el-descriptions-item label="Origin Country/Region">{{ form.originCountry }}</el-descriptions-item>
104
+ <el-descriptions-item label="Loading Country/Region">{{ form.loadingCountry }}</el-descriptions-item>
105
+ <el-descriptions-item label="Loading Port" v-if="form.freightTerms != 'EXW'">{{ form.originPort }}</el-descriptions-item>
106
+ <el-descriptions-item v-if="form.freightTerms != 'EXW'" label="Destination">{{ form.destination }}</el-descriptions-item>
107
+ <el-descriptions-item v-else label="EXW Address">{{ form.exw }}</el-descriptions-item>
108
+ <el-descriptions-item label="Containers">
109
+ {{ form.numberOfContainersForTwenty }}x 20' Container
110
+ <br />
111
+ {{ form.numberOfContainersForForty }}x 40' Container
112
+ <br />
113
+ {{ form.numberOfContainersForTwentyOrForty }}x 20'/40' Container
114
+ <br />
115
+ </el-descriptions-item>
116
+ <el-descriptions-item label="Latest shipment"
117
+ >The goods shall be fully loaded within {{ form.latestShipment }} days as of the date when the contract is signed</el-descriptions-item
118
+ >
119
+ <el-descriptions-item label="Required documents" v-if="isMobile">
120
+ <div style="display: flex; flex-direction: column">
121
+ <el-tag :key="tag" v-for="tag in dynamicTags" class="mr5" style="margin-top: 5px">{{ tag }}</el-tag>
122
+ </div>
123
+ </el-descriptions-item>
124
+ <el-descriptions-item label="Required documents" v-else>
125
+ <div style="display: flex; flex-wrap: wrap">
126
+ <el-tag :key="tag" v-for="tag in dynamicTags" class="mr5" style="margin-top: 5px">{{ tag }}</el-tag>
127
+ </div>
128
+ </el-descriptions-item>
129
+ <el-descriptions-item label="Shipment Quantity Tolerance"> ± {{ form.toleranceFloat * 100 }}%</el-descriptions-item>
130
+ <el-descriptions-item label="Shortage Tolerance"> &lt;{{ form.weightTolerance }}%{{ form.weightToleranceWeight > 0 ? ` / ${form.weightToleranceWeight}kg` : '' }}</el-descriptions-item>
131
+ <el-descriptions-item label="Packing Type"> {{ form.packingMethod ? form.packingMethod.replace(/,/g, '/') : '' }}</el-descriptions-item>
132
+ <el-descriptions-item label="Partial Shipment"> {{ form.partialShipment }}</el-descriptions-item>
133
+ <el-descriptions-item label="Transshipment"> {{ form.transshipment }}</el-descriptions-item>
134
+ <el-descriptions-item label="Quality" v-if="form.qualityCertificateSwitch">{{ form.qualityCertificate }}</el-descriptions-item>
135
+ <el-descriptions-item label="Customs Rejection" v-if="form.returnedBearer">{{ form.returnedBearer && form.returnedBearer.toUpperCase() }} shall bear the return costs if goods are not in compliance with the required standards of the import country and are rejected by customs authoritie</el-descriptions-item>
136
+ <el-descriptions-item label="Claim" v-if="form.claimSwitch">
137
+ <div v-html="form.claim" style="white-space: pre-wrap; word-break: break-word;"></div>
138
+ </el-descriptions-item>
139
+ <el-descriptions-item label="Timeline of document submission" v-if="form.arbitrationSwitch">
140
+ <div v-html="form.arbitration" style="white-space: pre-wrap; word-break: break-word;"></div>
141
+ </el-descriptions-item>
142
+ <el-descriptions-item label="Specification" v-if="form.memoSwitch">{{ form.memo }}</el-descriptions-item>
143
+ <el-descriptions-item v-for="(item, index) in this.customClause" :label="item.title" :key="index">{{ item.content }}</el-descriptions-item>
144
+ </el-descriptions>
145
+ <!-- <div class="sign">Please sign below and return.</div> -->
146
+ <el-row :gutter="20">
147
+ <el-col :span="12">
148
+ <div class="company-sign">
149
+ <el-row>
150
+ <el-col :span="isMobile ? 12 : 6">
151
+ <div class="company-sign-title">Party A ({{form.contractType == 'sale' ? 'TTYY' : 'Seller'}})</div>
152
+ </el-col>
153
+ <slot name="seller" />
154
+ </el-row>
155
+ <div class="company-sign-title">Company Name:</div>
156
+ <div class="company-sign-text">{{ form.supplierContractCompany.companyEnglishName }}</div>
157
+ <div class="company-sign-title">Signature:</div>
158
+ <div class="company-sign-title">Print Name:
159
+ {{ form.contractType == 'sale' ? form.printName : ''}}
160
+ </div>
161
+ <div class="company-sign-title">Title:
162
+ {{ form.contractType == 'sale' ? form.printTitle : ''}}
163
+ </div>
164
+ <div class="company-sign-title">Date:</div>
165
+ <div class="company-sign-text">{{ parseTime(form.createTime, '{m}/{d}/{y}') }}</div>
166
+ </div>
167
+ </el-col>
168
+ <el-col :span="12">
169
+ <div class="company-sign">
170
+ <el-row>
171
+ <el-col :span="isMobile ? 12 : 6">
172
+ <div class="company-sign-title">Party B ({{form.contractType == 'sale' ? 'Buyer' : 'TTYY'}})</div>
173
+ </el-col>
174
+ <slot name="buyer" />
175
+ </el-row>
176
+ <div class="company-sign-title">Company Name:</div>
177
+ <div class="company-sign-text">{{ form.buyContractCompany.companyEnglishName }}</div>
178
+ <div class="company-sign-title">Signature:</div>
179
+ <div class="company-sign-title">Print Name:
180
+ {{ form.contractType != 'sale' ? form.printName : ''}}
181
+ </div>
182
+ <div class="company-sign-title">Title:
183
+ {{ form.contractType != 'sale' ? form.printTitle : ''}}
184
+ </div>
185
+ <div class="company-sign-title">Date:</div>
186
+ <div class="company-sign-text">{{ parseTime(form.createTime, '{m}/{d}/{y}') }}</div>
187
+ </div>
188
+ </el-col>
189
+ </el-row>
190
+ <slot name="select-contract-company"></slot>
191
+ </div>
192
+ </template>
193
+
194
+ <script>
195
+
196
+ export default {
197
+ name: 'ContractInfo',
198
+ props: {
199
+ form: {
200
+ type: Object,
201
+ default: null
202
+ },
203
+ dynamicTags: {
204
+ type: Array,
205
+ default: () => []
206
+ },
207
+ customClause: {
208
+ type: Array,
209
+ default: () => []
210
+ },
211
+ printModel: {
212
+ type: Boolean,
213
+ default: false
214
+ },
215
+ isMobile: {
216
+ type: Boolean,
217
+ default: false
218
+ }
219
+ },
220
+ components: { },
221
+ data() {
222
+ return {}
223
+ },
224
+ methods: {
225
+ //确认公司
226
+ confirmCompany(company, type) {
227
+ company.email = company.email && company.email.length > 0 ? company.email[0] : ''
228
+ company.phoneNumber = company.phoneNumber && company.phoneNumber.length > 0 ? company.phoneNumber[0] : ''
229
+ if (type == 'seller') {
230
+ this.$set(this.form, 'supplierContractCompany', company)
231
+ this.form.supplierContractCompanyId = company.contractCompanyId
232
+ this.form.supplierCompanyId = company.companyId
233
+ } else if (type == 'buyer') {
234
+ this.$set(this.form, 'buyContractCompany', company)
235
+ this.form.buyContractCompanyId = company.contractCompanyId
236
+ this.form.buyCompanyId = company.companyId
237
+ }
238
+ },
239
+ //选择合同公司
240
+ selectContractCompany(companyId, type) {
241
+ this.$refs.selectContractCompany.handleShow(companyId, type)
242
+ },
243
+ getSummaries(param) {
244
+ const { columns, data } = param
245
+ const sums = []
246
+ columns.forEach((column, index) => {
247
+ if (index === 0) {
248
+ sums[index] = 'Total'
249
+ return
250
+ }
251
+ const values = data.map((item) => Number(item[column.property]))
252
+ if (!values.every((value) => isNaN(value))) {
253
+ sums[index] = values.reduce((prev, curr) => {
254
+ const value = Number(curr)
255
+ if (!isNaN(value)) {
256
+ return prev + curr
257
+ } else {
258
+ return prev
259
+ }
260
+ }, 0)
261
+ if (index === 2) {
262
+ sums[index] += ''
263
+ } else if (index === 1) {
264
+ sums[index] = ''
265
+ } else {
266
+ sums[index] += ''
267
+ }
268
+ } else {
269
+ sums[index] = ''
270
+ }
271
+ })
272
+
273
+ return sums
274
+ }
275
+ }
276
+ }
277
+ </script>
278
+ <style lang="scss" scoped>
279
+ .info {
280
+ border: 1px solid #606676;
281
+ padding: 20px;
282
+
283
+ .type {
284
+ font-size: 13px;
285
+ font-weight: bold;
286
+ }
287
+
288
+ .title {
289
+ text-align: center;
290
+ font-size: 26px;
291
+ font-weight: bold;
292
+ }
293
+
294
+ .sub-title {
295
+ margin-top: 20px;
296
+ text-align: center;
297
+ font-size: 16px;
298
+ }
299
+
300
+ .company {
301
+ margin-top: 20px;
302
+ padding: 10px 20px;
303
+ border: 1px solid #000;
304
+ font-size: 10px;
305
+ height: 130px;
306
+
307
+ &-type {
308
+ font-size: 13px;
309
+ font-weight: bold;
310
+ margin-bottom: 10px;
311
+ }
312
+
313
+ &-text {
314
+ margin-bottom: 10px;
315
+ }
316
+ }
317
+
318
+ .item {
319
+ display: flex;
320
+ justify-content: space-between;
321
+ align-items: center;
322
+
323
+ // 去掉所有的横线
324
+ ::v-deep.el-table__cell {
325
+ border-bottom: none;
326
+ }
327
+
328
+ // 只去除表格的最最底部的横线
329
+ ::v-deep .el-table--border::after,
330
+ ::v-deep .el-table--group::after,
331
+ ::v-deep .el-table::before {
332
+ background-color: transparent;
333
+ }
334
+ }
335
+
336
+ .sign {
337
+ height: 230px;
338
+ display: flex;
339
+ align-items: center;
340
+ }
341
+
342
+ .company-sign {
343
+ margin-top: 20px;
344
+ padding: 10px 20px;
345
+ font-size: 10px;
346
+ height: 130px;
347
+ margin-bottom: 20px;
348
+
349
+ &-title {
350
+ font-size: 13px;
351
+ font-weight: bold;
352
+ margin-bottom: 10px;
353
+ }
354
+
355
+ &-text {
356
+ margin-bottom: 10px;
357
+ }
358
+ }
359
+ }
360
+
361
+ .company-sign-text {
362
+ color: #606266;
363
+ font-size: 14px;
364
+ }
365
+ </style>
@@ -246,13 +246,14 @@
246
246
  </el-form>
247
247
  <div slot="footer" class="dialog-footer">
248
248
  <el-button @click="cancel">取 消</el-button>
249
- <el-button type="primary" @click="submitForm">确认上传</el-button>
249
+ <!-- <el-button type="primary" @click="submitForm">确认上传</el-button>
250
250
  <el-button
251
251
  v-if="type == 'deposit'"
252
252
  type="primary"
253
253
  @click="uploadAndGenerate"
254
254
  >上传并生成收付款</el-button
255
- >
255
+ > -->
256
+ <el-button type="primary" @click="submitForm">上传并发起审核</el-button>
256
257
  </div>
257
258
  <el-dialog
258
259
  title="系统计算金额和发票金额不一致"
@@ -385,6 +386,7 @@ export default {
385
386
  this.$refs["form"].validate((valid) => {
386
387
  if (valid) {
387
388
  console.log('type', this.type);
389
+ // deposit 定金; finally尾款
388
390
  if (this.type == "finally") {
389
391
  if(comfirmClickFlag) {
390
392
  if(this.form.fixedInvoiceList[0].amount && this.purchaseBalanceMoney && this.form.fixedInvoiceList[0].amount != this.purchaseBalanceMoney) {
@@ -421,6 +423,7 @@ export default {
421
423
  },
422
424
  /** 展示按钮操作 */
423
425
  handleUpload(row, type, shipmentId) {
426
+ // deposit 定金; finally尾款
424
427
  console.log('row:', row)
425
428
  this.reset();
426
429
  this.type = type;
@@ -0,0 +1,103 @@
1
+ <!--
2
+ * @Author: zhangpengwei@1338418459736990.onaliyun.com zhangpengwei@1338418459736990.onaliyun.com
3
+ * @Date: 2024-08-20 10:37:30
4
+ * @LastEditors: zhangpengwei@1338418459736990.onaliyun.com zhangpengwei@1338418459736990.onaliyun.com
5
+ * @LastEditTime: 2024-08-23 13:49:18
6
+ * @FilePath: /doctor-admin-components 公共组件/packages/src/views/biz/contractTracing/queryDeductionRecords.vue
7
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
8
+ -->
9
+ <template>
10
+ <el-dialog
11
+ title="定金扣减记录"
12
+ :visible.sync="dialogVisible"
13
+ width="1200px"
14
+ :modal="false"
15
+ >
16
+ <el-table
17
+ :data="tableList"
18
+ :cell-style="{'text-align': 'center'}"
19
+ :header-cell-style="{'text-align': 'center'}"
20
+ >
21
+ <el-table-column
22
+ prop="billOfLadingNo"
23
+ label="提单号"
24
+ width="180">
25
+ </el-table-column>
26
+ <el-table-column
27
+ prop="containerNumber"
28
+ label="柜数"
29
+ width="180">
30
+ </el-table-column>
31
+ <el-table-column
32
+ prop="purchaseDepositTotalAmount"
33
+ label="定金总额">
34
+ <template slot-scope="{ row }">
35
+ {{ row.purchaseDepositTotalAmount ? "$" + $formatNumber(row.purchaseDepositTotalAmount, 2) : '0' }}
36
+ </template>
37
+ </el-table-column>
38
+ <el-table-column
39
+ prop="purchaseDepositBalance"
40
+ label="上次剩余定金">
41
+ <template slot-scope="{ row }">
42
+ {{ row.purchaseDepositBalance ? "$" + $formatNumber(row.purchaseDepositBalance,2) : '0' }}
43
+ </template>
44
+ </el-table-column>
45
+ <el-table-column
46
+ prop="purchaseDepositAmount"
47
+ label="扣减定金">
48
+ <template slot-scope="{ row }">
49
+ <span class="edit-style" v-if="row.purchaseDepositAmount" @click.stop="jumpFileManage(row)">{{ row.purchaseDepositAmount ? "$" + $formatNumber(row.purchaseDepositAmount, 2) : '0' }}</span>
50
+ <span v-else>0</span>
51
+ </template>
52
+ </el-table-column>
53
+ <el-table-column
54
+ prop="purchaseDepositRemainAmount"
55
+ label="定金余额">
56
+ <template slot-scope="{ row }">
57
+ {{ row.purchaseDepositRemainAmount ? "$" + $formatNumber(row.purchaseDepositRemainAmount, 2) : '0' }}
58
+ </template>
59
+ </el-table-column>
60
+ </el-table>
61
+ </el-dialog>
62
+ </template>
63
+
64
+ <script>
65
+ import { deductionRecords } from '../../../api/biz/bizShipment'
66
+
67
+ export default {
68
+ name: 'DoctorAdminComponentsQueryDeductionRecords',
69
+
70
+ data() {
71
+ return {
72
+ tableList:[],
73
+ dialogVisible: false
74
+ };
75
+ },
76
+
77
+ mounted() {
78
+
79
+ },
80
+
81
+ methods: {
82
+ handlerOpen(shipmentId) {
83
+ this.dialogVisible = true
84
+ deductionRecords({shipmentId}).then((res) => {
85
+ this.tableList = res.rows
86
+ })
87
+ },
88
+ jumpFileManage(row) {
89
+ window.open(`/contract/tracing/detail/${row.purchaseContractId}?activeName=fourth&deductionRecordsShipmentId=${row.shipmentId}`)
90
+ }
91
+
92
+
93
+ },
94
+ };
95
+ </script>
96
+
97
+ <style lang="scss" scoped>
98
+ .edit-style {
99
+ cursor: pointer;
100
+ color: #409eff;
101
+ }
102
+
103
+ </style>