doctor-admin-components 1.0.13-beta.8 → 1.0.13-beta.80

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 (54) hide show
  1. package/README.md +18 -7
  2. package/package.json +1 -1
  3. package/packages/index.js +7 -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 +298 -0
  15. package/packages/src/i18n/index.js +38 -0
  16. package/packages/src/i18n/zh-CN/message.json +298 -0
  17. package/packages/src/index.js +6 -0
  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 +1677 -999
  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 +122 -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 +131 -46
  32. package/packages/src/views/biz/bizFileInfo/fileShowClaim.vue +1 -1
  33. package/packages/src/views/biz/bizShipment/add.vue +218 -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 +181 -329
  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 +5 -3
  40. package/packages/src/views/biz/contractTracing/contractSummary.vue +17 -9
  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 +231 -361
  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/test.vue +3 -3
  48. package/packages/src/views/biz/contractTracing/association.vue +0 -189
  49. package/packages/src/views/biz/contractTracing/chargingDialog.vue +0 -84
  50. package/packages/src/views/biz/contractTracing/contract.vue +0 -1276
  51. package/packages/src/views/biz/contractTracing/disputeRecord.vue +0 -311
  52. package/packages/src/views/biz/contractTracing/edit.vue +0 -205
  53. package/packages/src/views/biz/contractTracing/sendDrafEmail.vue +0 -120
  54. 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,9 +117,11 @@
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.livericeSwitch">
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>
@@ -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
  -->
@@ -172,14 +172,14 @@
172
172
  <template slot-scope="scope">
173
173
  <span v-if="dealRecord.quoteType == 'FIXED'">{{ '$' + scope.row.sllerPrice }}</span>
174
174
  <span v-else-if="dealRecord.quoteType == 'CMX'">{{ 'CMX - ' + scope.row.sllerPrice }}</span>
175
- <span v-else>{{ scope.row.sllerPrice + '%LME' }}</span>
175
+ <span v-else>{{ scope.row.sellerPriceFormula || scope.row.sllerPrice + '%LME' }}</span>
176
176
  </template>
177
177
  </el-table-column>
178
178
  <el-table-column prop="quotePrice" :label="$t('contractDetail.quotePrice')" :width="channel === 'official-website' ? 180 : 120">
179
179
  <template slot-scope="scope">
180
180
  <span v-if="dealRecord.quoteType == 'FIXED'">{{ '$' + scope.row.quotePrice }}</span>
181
181
  <span v-else-if="dealRecord.quoteType == 'CMX'">{{ 'CMX - ' + scope.row.quotePrice }}</span>
182
- <span v-else>{{ scope.row.quotePrice + '%LME' }}</span>
182
+ <span v-else>{{ scope.row.quotePriceFormula || scope.row.quotePrice + '%LME' }}</span>
183
183
  </template>
184
184
  </el-table-column>
185
185
  <el-table-column prop="totalQuote" :label="$t('contractDetail.totalQuote')" :width="channel === 'official-website' ? 180 : 120"></el-table-column>
@@ -221,7 +221,7 @@
221
221
  <el-table-column v-if="channel !== 'official-website'" label="总金额" align="center" prop="amount" width="100" />
222
222
 
223
223
  <!-- 官网 -->
224
- <el-table-column v-if="channel == 'official-website'" :label="$t('contract.Payable_Amount')" align="center" prop="amount" width="100" />
224
+ <el-table-column v-if="channel == 'official-website'" :label="$t('contract.Payable_Amount')" align="center" prop="amount" width="140" />
225
225
  <el-table-column v-if="channel == 'official-website'" :label="$t('contract.Amount_Paid')" align="center" prop="amount" width="100">
226
226
  <template slot-scope="{ row }">{{ row.amount - row.remainingAmount }}</template>
227
227
  </el-table-column>
@@ -338,9 +338,10 @@
338
338
  >
339
339
  <!-- v-if="channel == 'official-website' && scope.row.showFallbackQuality" -->
340
340
  <el-button
341
- v-if="channel == 'official-website' && scope.row.showFallbackQuality"
341
+ v-if="
342
+ 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
@@ -546,7 +547,11 @@ export default {
546
547
  * @return {*}
547
548
  */
548
549
  qualityFeedback(row) {
549
- this.$buryingPoint({ data: { funcKey: 'click_feedback' } })
550
+ this.$buryingPoint({ data: { funcKey: 'click_feedback' } });
551
+ if(!row.showFallbackQuality) {
552
+ this.$message.warning(this.$t('contract.No_quality_feedback'));
553
+ return;
554
+ }
550
555
 
551
556
  this.$store.commit('setBillNoInfo', {
552
557
  eta: row.eta,
@@ -820,11 +825,14 @@ ${invoiceNoTitleZh}:${invoiceNo}
820
825
  }
821
826
  })
822
827
  listBizInvoice({
823
- contractId: this.contractId
828
+ contractId: this.contractId,
829
+ voidFlagSearch: this.channel == 'official-website' ? [0] : []
824
830
  }).then((response) => {
825
831
  this.invoiceList = response.rows
826
832
  })
827
- var queryParams = {}
833
+ var queryParams = {
834
+ voidStatus: this.channel == 'official-website' ? 0 : null
835
+ }
828
836
  if (this.contract.contractType == 'sale') {
829
837
  queryParams.saleContractId = this.contractId
830
838
  } 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>