doctor-admin-components 1.0.13-beta.9 → 1.0.13-beta.91

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 (56) hide show
  1. package/README.md +28 -9
  2. package/package.json +1 -1
  3. package/packages/index.js +10 -0
  4. package/packages/src/api/biz/bizContract.js +996 -1
  5. package/packages/src/api/biz/bizContractCompany.js +1 -1
  6. package/packages/src/api/biz/bizFileInfo.js +16 -0
  7. package/packages/src/api/biz/bizInvoice.js +1 -1
  8. package/packages/src/api/biz/bizShipment.js +18 -0
  9. package/packages/src/assets/images/click-show-table.png +0 -0
  10. package/packages/src/assets/images/more.png +0 -0
  11. package/packages/src/assets/images/pdf-new.png +0 -0
  12. package/packages/src/components/DictTag/index.vue +12 -2
  13. package/packages/src/components/FileUpload/contract-drag-new.vue +99 -10
  14. package/packages/src/i18n/en/message.json +305 -0
  15. package/packages/src/i18n/index.js +38 -0
  16. package/packages/src/i18n/zh-CN/message.json +305 -0
  17. package/packages/src/index.js +13 -1
  18. package/packages/src/utils/index.js +35 -0
  19. package/packages/src/utils/request.js +120 -146
  20. package/packages/src/views/biz/bizFileInfo/PAYMENT_VOUCHER(/"payment_voucher/", /"/344/273/230/346/254/276/345/207/255/350/257/201.ini" +222 -0
  21. package/packages/src/views/biz/bizFileInfo/contract copy.vue +1711 -0
  22. package/packages/src/views/biz/bizFileInfo/contract.vue +1783 -986
  23. package/packages/src/views/biz/bizFileInfo/contractFile/BillOfLadingNoTab.vue +114 -0
  24. package/packages/src/views/biz/bizFileInfo/contractFile/ContentTitle.vue +102 -0
  25. package/packages/src/views/biz/bizFileInfo/contractFile/IMGPreviewCheckBox.vue +308 -0
  26. package/packages/src/views/biz/bizFileInfo/contractFile/Progress.vue +85 -0
  27. package/packages/src/views/biz/bizFileInfo/contractFile/ProgressDetail.vue +123 -0
  28. package/packages/src/views/biz/bizFileInfo/contractFile/SectionSlot.vue +83 -0
  29. package/packages/src/views/biz/bizFileInfo/contractFile/ShowAndHide.vue +178 -0
  30. package/packages/src/views/biz/bizFileInfo/fileShow copy.vue +321 -0
  31. package/packages/src/views/biz/bizFileInfo/fileShow.vue +143 -47
  32. package/packages/src/views/biz/bizFileInfo/fileShowClaim.vue +1 -1
  33. package/packages/src/views/biz/bizShipment/add.vue +223 -75
  34. package/packages/src/views/biz/bizShipment/referenceAlert.vue +168 -0
  35. package/packages/src/views/biz/contractTracing/addSubCompany.vue +106 -169
  36. package/packages/src/views/biz/contractTracing/billInfo.vue +191 -332
  37. package/packages/src/views/biz/contractTracing/companyBanks.vue +228 -0
  38. package/packages/src/views/biz/contractTracing/contractInfo.vue +1 -1
  39. package/packages/src/views/biz/contractTracing/contractPdf.vue +7 -4
  40. package/packages/src/views/biz/contractTracing/contractSummary.vue +20 -7
  41. package/packages/src/views/biz/contractTracing/contractTracingDetail copy.vue +107 -0
  42. package/packages/src/views/biz/contractTracing/contractTracingDetail.vue +229 -9
  43. package/packages/src/views/biz/contractTracing/editBill.vue +236 -363
  44. package/packages/src/views/biz/contractTracing/purchaseInvoiceUpload.vue +153 -7
  45. package/packages/src/views/biz/contractTracing/shipmentPurchaseAmount.vue +8 -2
  46. package/packages/src/views/biz/contractTracing/subCompanyDialog.vue +202 -176
  47. package/packages/src/views/components/RegionPicker/Distpicker.vue +459 -0
  48. package/packages/src/views/components/RegionPicker/districts.js +4641 -0
  49. package/packages/src/views/test.vue +3 -3
  50. package/packages/src/views/biz/contractTracing/association.vue +0 -189
  51. package/packages/src/views/biz/contractTracing/chargingDialog.vue +0 -84
  52. package/packages/src/views/biz/contractTracing/contract.vue +0 -1276
  53. package/packages/src/views/biz/contractTracing/disputeRecord.vue +0 -311
  54. package/packages/src/views/biz/contractTracing/edit.vue +0 -205
  55. package/packages/src/views/biz/contractTracing/sendDrafEmail.vue +0 -120
  56. package/packages/src/views/biz/contractTracing/shipment.vue +0 -601
@@ -0,0 +1,228 @@
1
+ <template>
2
+ <div class="bank-view-container">
3
+ <!-- 收款账户信息-展示(业务场景:生成收付款、收付款票据) -->
4
+ <el-row style="padding-top: 15px; padding-left: 10px">
5
+ <div style="font-size: 16px; color: #222222">收款账号信息</div>
6
+ <div style="padding-left: 30px; padding-top: 2px">
7
+ 选择的收款账户信息会提供给财务进行打款/对账
8
+ </div>
9
+ </el-row>
10
+ <!-- 列表数据 -->
11
+ <div
12
+ v-for="(bankData, i) in bankList"
13
+ :key="i"
14
+ class="bank-container"
15
+ :class="{ 'bank-container-select': !disableSelect && sellectIndex == i, 'bank-container-unselect': disableSelect || sellectIndex != i }"
16
+ @click="clickSelct(i)"
17
+ >
18
+ <el-row style="padding-bottom: 20px">
19
+ <el-col :span="24">
20
+ <div class="bank-item" style="padding-top: 5px">Swift Code:{{ bankData.swiftCode }}</div>
21
+ </el-col>
22
+ <el-col :span="24">
23
+ <div class="bank-item">Bank Name:{{ bankData.bankName }}</div>
24
+ </el-col>
25
+ <el-col :span="24">
26
+ <div class="bank-item" style="padding-bottom: 20px">Bank Address:{{ bankData.bankAddress }}</div>
27
+ </el-col>
28
+ <el-col :span="24">
29
+ <div class="bank-item">Beneficiary Account:{{ bankData.beneficiaryAccount }}</div>
30
+ </el-col>
31
+ <el-col :span="24">
32
+ <div class="bank-item">Beneficiary:{{ bankData.beneficiary }}</div>
33
+ </el-col>
34
+ <el-col :span="24">
35
+ <div class="bank-item">Beneficiary Address:{{ bankData.beneficiaryAddress }}</div>
36
+ </el-col>
37
+ </el-row>
38
+ </div>
39
+ <!-- 添加入口 -->
40
+ <div v-if="!bankList || bankList.length == 0" style="padding-left: 30px; padding-top: 10px">
41
+ <span>未添加收款账户信息,</span>
42
+ <el-button type="text" size="mini" @click="clickAdd">去添加</el-button>
43
+ </div>
44
+ <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>
46
+ <span>收款账户信息</span>
47
+ </div>
48
+ <!-- 添加收款账户弹框 -->
49
+ <el-dialog title="添加收款账户" :visible.sync="open" width="800px" append-to-body :close-on-click-modal="false">
50
+ <el-form ref="form" :model="form" :rules="rules" label-width="100px">
51
+ <el-row>
52
+ <el-col :span="18">
53
+ <el-form-item label="Swift Code" label-width="150px">
54
+ <el-input maxlength="500" v-model="form.swiftCode" placeholder="请输入内容" />
55
+ </el-form-item>
56
+ </el-col>
57
+ <el-col :span="18">
58
+ <el-form-item label="Bank Name" label-width="150px">
59
+ <el-input maxlength="500" v-model="form.bankName" placeholder="请输入内容" />
60
+ </el-form-item>
61
+ </el-col>
62
+ <el-col :span="18">
63
+ <el-form-item label="Bank Address" label-width="150px">
64
+ <el-input maxlength="500" v-model="form.bankAddress" placeholder="请输入内容" />
65
+ </el-form-item>
66
+ </el-col>
67
+ <el-col :span="18">
68
+ <el-form-item label="Beneficiary Account" label-width="150px">
69
+ <el-input maxlength="500" v-model="form.beneficiaryAccount" placeholder="请输入内容" />
70
+ </el-form-item>
71
+ </el-col>
72
+ <el-col :span="18">
73
+ <el-form-item label="Beneficiary" label-width="150px">
74
+ <el-input maxlength="500" v-model="form.beneficiary" placeholder="请输入内容" />
75
+ </el-form-item>
76
+ </el-col>
77
+ <el-col :span="18">
78
+ <el-form-item label="Beneficiary Address" label-width="150px">
79
+ <el-input maxlength="500" v-model="form.beneficiaryAddress" placeholder="请输入内容" />
80
+ </el-form-item>
81
+ </el-col>
82
+ </el-row>
83
+ </el-form>
84
+ <div slot="footer" class="dialog-footer">
85
+ <el-button @click="clickCancel">取 消</el-button>
86
+ <el-button type="primary" @click="clickConfirm">确 定</el-button>
87
+ </div>
88
+ </el-dialog>
89
+ </div>
90
+ </template>
91
+
92
+ <script>
93
+ import { insertCompanyBank, getCompanyBanks } from '../../../api/biz/bizContract'
94
+
95
+ export default {
96
+ name: 'CompanyBanks',
97
+ props: {
98
+ // 收款账户的公司id(目前是合同contractId)
99
+ companyId: {
100
+ type: String | Number,
101
+ default: null
102
+ },
103
+ // 是否禁止选择功能
104
+ disableSelect: {
105
+ type: Boolean,
106
+ default: false
107
+ },
108
+ // 之前选择的id
109
+ accountId: {
110
+ type: String | Number,
111
+ default: null
112
+ }
113
+ },
114
+ watch: {
115
+ companyId: {
116
+ handler(newVal, oldVal) {
117
+ console.log('companyId changed:', newVal)
118
+ this.sellectIndex = -1
119
+ this.getBankList()
120
+ }
121
+ },
122
+ accountId: {
123
+ handler(newVal, oldVal) {
124
+ console.log('accountId changed:', newVal)
125
+ this.handleCaclSelectIndex()
126
+ }
127
+ }
128
+ },
129
+ data() {
130
+ return {
131
+ open: false,
132
+ sellectIndex: -1,
133
+ bankList: null,
134
+ form: {
135
+ swiftCode: null,
136
+ bankName: null,
137
+ bankAddress: null,
138
+ beneficiaryAccount: null,
139
+ beneficiary: null,
140
+ beneficiaryAddress: null
141
+ },
142
+ rules: {}
143
+ }
144
+ },
145
+ created() {
146
+ // 获取收款账户信息
147
+ this.getBankList()
148
+ },
149
+ methods: {
150
+ restForm() {
151
+ this.form = {
152
+ swiftCode: null,
153
+ bankName: null,
154
+ bankAddress: null,
155
+ beneficiaryAccount: null,
156
+ beneficiary: null,
157
+ beneficiaryAddress: null
158
+ }
159
+ },
160
+ handleCaclSelectIndex() {
161
+ if (!this.disableSelect && this.accountId) {
162
+ this.sellectIndex = this.bankList.findIndex((item) => item.accountId == this.accountId)
163
+ if (this.sellectIndex == -1) {
164
+ console.log('pre accountId invalide')
165
+ this.$emit('selectBank', null)
166
+ }
167
+ }
168
+ },
169
+ getBankList() {
170
+ if (!this.companyId) {
171
+ return
172
+ }
173
+ getCompanyBanks(this.companyId).then((res) => {
174
+ this.bankList = res.data?.paymentAccountList
175
+ this.handleCaclSelectIndex()
176
+ })
177
+ },
178
+ clickAdd() {
179
+ this.restForm()
180
+ this.open = true
181
+ },
182
+ clickSelct(index) {
183
+ if (this.disableSelect) {
184
+ console.log('disableSelect')
185
+ return
186
+ }
187
+ this.sellectIndex = index
188
+ let data = this.bankList[index]
189
+ console.log('select data', data)
190
+ this.$emit('selectBank', data)
191
+ },
192
+ clickCancel() {
193
+ this.open = false
194
+ },
195
+ clickConfirm() {
196
+ let e = this.form
197
+ if (!(e.swiftCode || e.bankName || e.bankAddress || e.beneficiaryAccount || e.beneficiary || e.beneficiaryAddress)) {
198
+ this.$modal.msgError('请输入内容')
199
+ return
200
+ }
201
+ insertCompanyBank({
202
+ contractId: this.companyId,
203
+ paymentAccountList: [e]
204
+ }).then((res) => {
205
+ this.getBankList()
206
+ this.open = false
207
+ })
208
+ }
209
+ }
210
+ }
211
+ </script>
212
+
213
+ <style scoped lang="scss">
214
+ .bank-container {
215
+ background-color: rgb(240, 240, 240);
216
+ padding: 20px 10px 5px;
217
+ margin-top: 10px;
218
+ }
219
+ .bank-container-select {
220
+ border: 1px solid blue;
221
+ }
222
+ .bank-container-unselect {
223
+ border: 1px solid rgb(240, 240, 240);
224
+ }
225
+ .bank-item {
226
+ padding: 2px 40px 2px;
227
+ }
228
+ </style>
@@ -63,7 +63,7 @@
63
63
  </el-table-column>
64
64
  </el-table>
65
65
  </el-form-item>
66
- <el-button type="text" size="small" @click="handleChangeLog">历史记录</el-button>
66
+ <el-button type="text" v-if="channel !== 'official-website'" size="small" @click="handleChangeLog">历史记录</el-button>
67
67
  <contract-pdf :contract="contract" :dynamicTags="dynamicTags" :customClause="customClause"></contract-pdf>
68
68
  </el-form>
69
69
  <contract-change-log ref="contractChangeLog"></contract-change-log>
@@ -117,14 +117,17 @@
117
117
  <div v-else>{{ contract.otherPaymentTerm }}</div>
118
118
  </el-descriptions-item>
119
119
  <el-descriptions-item label="Price Fixing Option">
120
- {{ contract.livePriceDays }} Days {{ contract.livePriceForm }} cargo arrives at POD in
121
- {{ contract.livePriceUsertype }}
122
- {{ contract.livePriceType }}'s 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>
123
125
  </el-descriptions-item>
124
126
 
125
127
  <el-descriptions-item label="Origin Country/Region">{{ contract.originCountry }}</el-descriptions-item>
126
128
  <el-descriptions-item label="Loading Country/Region">{{ contract.loadingCountry }}</el-descriptions-item>
127
- <el-descriptions-item label="Destination">{{ contract.destination }}</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>
128
131
  <el-descriptions-item label="Special Instructions">
129
132
  {{ contract.numberOfContainersForTwenty }}x 20' Container
130
133
  <br />
@@ -2,7 +2,7 @@
2
2
  * @Author: zhangpengwei 15038779532@163.com
3
3
  * @Date: 2023-08-28 19:04:39
4
4
  * @LastEditors: zhangpengwei@1338418459736990.onaliyun.com zhangpengwei@1338418459736990.onaliyun.com
5
- * @LastEditTime: 2023-10-23 17:08:54
5
+ * @LastEditTime: 2024-05-24 10:26:37
6
6
  * @FilePath: /doctor-admin-components/packages/src/views/biz/contractTracing/contractSummary.vue
7
7
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
8
8
  -->
@@ -101,7 +101,8 @@
101
101
  <el-form-item :label="$t('contractDetail.paymentType')">{{ dealRecord.paymentType }}</el-form-item>
102
102
  </el-col>
103
103
  <el-col :span="8">
104
- <el-form-item :label="$t('contractDetail.destination')">{{ dealRecord.buyerDestination }}</el-form-item>
104
+ <el-form-item v-if="dealRecord.paymentType != 'EXW'" :label="$t('contractDetail.destination')">{{ dealRecord.buyerDestination }}</el-form-item>
105
+ <el-form-item v-else label="EXW">{{ dealRecord.exw }}</el-form-item>
105
106
  </el-col>
106
107
  </el-row>
107
108
  <el-row>
@@ -221,7 +222,7 @@
221
222
  <el-table-column v-if="channel !== 'official-website'" label="总金额" align="center" prop="amount" width="100" />
222
223
 
223
224
  <!-- 官网 -->
224
- <el-table-column v-if="channel == 'official-website'" :label="$t('contract.Payable_Amount')" align="center" prop="amount" width="100" />
225
+ <el-table-column v-if="channel == 'official-website'" :label="$t('contract.Payable_Amount')" align="center" prop="amount" width="140" />
225
226
  <el-table-column v-if="channel == 'official-website'" :label="$t('contract.Amount_Paid')" align="center" prop="amount" width="100">
226
227
  <template slot-scope="{ row }">{{ row.amount - row.remainingAmount }}</template>
227
228
  </el-table-column>
@@ -338,9 +339,9 @@
338
339
  >
339
340
  <!-- v-if="channel == 'official-website' && scope.row.showFallbackQuality" -->
340
341
  <el-button
341
- v-if="channel == 'official-website' && scope.row.showFallbackQuality"
342
+ v-if="channel == 'official-website'"
342
343
  size="mini"
343
- type="primary"
344
+ :type="scope.row.showFallbackQuality ? 'primary' : 'info'"
344
345
  style="padding-left: 5px; padding-right: 5px"
345
346
  @click.stop="qualityFeedback(scope.row)"
346
347
  >{{ $t('contract.Quality_Feedback') }}</el-button
@@ -534,6 +535,11 @@ export default {
534
535
  code: 3,
535
536
  en: 'Completed',
536
537
  cn: '已结束'
538
+ },
539
+ 4: {
540
+ code: 4,
541
+ en: 'Obsoleted',
542
+ cn: '已作废'
537
543
  }
538
544
  }
539
545
  const obj = claimTypeMap[type || '1']
@@ -547,6 +553,10 @@ export default {
547
553
  */
548
554
  qualityFeedback(row) {
549
555
  this.$buryingPoint({ data: { funcKey: 'click_feedback' } })
556
+ if (!row.showFallbackQuality) {
557
+ this.$message.warning(this.$t('contract.No_quality_feedback'))
558
+ return
559
+ }
550
560
 
551
561
  this.$store.commit('setBillNoInfo', {
552
562
  eta: row.eta,
@@ -820,11 +830,14 @@ ${invoiceNoTitleZh}:${invoiceNo}
820
830
  }
821
831
  })
822
832
  listBizInvoice({
823
- contractId: this.contractId
833
+ contractId: this.contractId,
834
+ voidFlagSearch: this.channel == 'official-website' ? [0] : []
824
835
  }).then((response) => {
825
836
  this.invoiceList = response.rows
826
837
  })
827
- var queryParams = {}
838
+ var queryParams = {
839
+ voidStatus: this.channel == 'official-website' ? 0 : null
840
+ }
828
841
  if (this.contract.contractType == 'sale') {
829
842
  queryParams.saleContractId = this.contractId
830
843
  } else {
@@ -0,0 +1,107 @@
1
+ <!--
2
+ * @Author: zhangpengwei 15038779532@163.com
3
+ * @Date: 2023-07-20 17:13:54
4
+ * @LastEditors: zhangpengwei@1338418459736990.onaliyun.com zhangpengwei@1338418459736990.onaliyun.com
5
+ * @LastEditTime: 2024-01-19 13:54:56
6
+ * @FilePath: /recycle-vue-ui再生博士后台管理/src/views/biz/contractTracing/contractTracingDetail.vue
7
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
8
+ -->
9
+ <template>
10
+ <div class="app-container">
11
+ <div style="position: relative">
12
+ <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
13
+ <el-tab-pane :label="$t('contractDetail.summary')" name="first">
14
+ <contract-summary v-if="activeName == 'first'" :channel="channel"></contract-summary>
15
+ </el-tab-pane>
16
+ <el-tab-pane :label="$t('contractDetail.info')" name="second">
17
+ <contract-info v-if="activeName == 'second'" :channel="channel"></contract-info>
18
+ </el-tab-pane>
19
+ <el-tab-pane
20
+ v-if="contract.contractType == 'sale'"
21
+ :label="$t('contractDetail.blInfo')"
22
+ name="third"
23
+ >
24
+ <bill-info :contract="contract" v-if="activeName == 'third'"
25
+ :channel="channel"
26
+ ></bill-info>
27
+ </el-tab-pane>
28
+ <el-tab-pane :label="$t('contractDetail.fileManage')" name="fourth">
29
+ <contract-file
30
+ v-if="activeName == 'fourth'"
31
+ :contract="contract"
32
+ :channel="channel"
33
+ :buyerFlag="buyerFlag"
34
+ ></contract-file>
35
+ </el-tab-pane>
36
+ </el-tabs>
37
+
38
+ <!-- 这里添加合同编号的显示 -->
39
+ <div
40
+ style="
41
+ position: absolute;
42
+ right: 10px;
43
+ top: 5px;
44
+ margin-top: 10px;
45
+ font-weight: bold;
46
+ "
47
+ >{{$t('contractDetail.Contract_No')}}:{{ contract.contractNo }}</div>
48
+ </div>
49
+ </div>
50
+ </template>
51
+
52
+ <script>
53
+ import { getBizContract } from '../../../api/biz/bizContract';
54
+ import ContractSummary from './contractSummary.vue';
55
+ import BillInfo from './billInfo.vue';
56
+ import ContractFile from '../bizFileInfo/contract.vue';
57
+ import ContractInfo from './contractInfo.vue';
58
+
59
+ export default {
60
+ name: 'ContractTracingDetail',
61
+ mixins: [],
62
+ components: {
63
+ ContractSummary,
64
+ BillInfo,
65
+ ContractFile,
66
+ ContractInfo,
67
+ },
68
+ props: {
69
+ channel: '',
70
+ },
71
+ data() {
72
+ return {
73
+ activeName: 'first',
74
+ contract: {},
75
+ buyerFlag: true,
76
+ };
77
+ },
78
+ computed: {},
79
+ watch: {},
80
+ created() {
81
+ const contractId = this.$route.params && this.$route.params.contractId;
82
+ this.getContract(contractId);
83
+ const activeName = this.$route.query && this.$route.query.activeName;
84
+ this.activeName = activeName || 'first';
85
+ localStorage.setItem('contractDetail', location.href);
86
+ location.href;
87
+ },
88
+ mounted() {},
89
+ methods: {
90
+ getContract(contractId) {
91
+ getBizContract(contractId).then((res) => {
92
+ this.contract = res.data;
93
+ // Debit note是给卖家的,要放在 ARS 下
94
+ // Credit note是给买家的,要放在 ARP 下
95
+ this.buyerFlag = this.contract?.contractNo
96
+ ?.toLowerCase()
97
+ ?.includes('arp');
98
+ });
99
+ },
100
+ handleClick(tab, event) {
101
+ console.log(tab, event);
102
+ },
103
+ },
104
+ };
105
+ </script>
106
+
107
+ <style scoped lang="scss"></style>