doctor-admin-components 1.0.13-beta.62 → 1.0.13-beta.63

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "doctor-admin-components",
3
3
  "version1": "1.0.11",
4
- "version": "1.0.13-beta.62",
4
+ "version": "1.0.13-beta.63",
5
5
  "private": false,
6
6
  "main1": "lib/index.umd.min.js",
7
7
  "main": "packages/index.js",
package/packages/index.js CHANGED
@@ -52,6 +52,7 @@ import {
52
52
  BizShipmentAdd,
53
53
  ContractChangeLog,
54
54
  EditBill,
55
+ CompanyBanks,
55
56
  } from "./src";
56
57
  // 组件列表
57
58
  const components = [
@@ -62,6 +63,7 @@ const components = [
62
63
  BizShipmentAdd,
63
64
  ContractChangeLog,
64
65
  EditBill,
66
+ CompanyBanks,
65
67
  ];
66
68
 
67
69
  // 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,那么所有的组件都会被注册
@@ -130,5 +132,6 @@ export default {
130
132
  ContractChangeLog,
131
133
  EditBill,
132
134
  en_JSON,
133
- zh_JSON
135
+ zh_JSON,
136
+ CompanyBanks,
134
137
  };
@@ -1088,3 +1088,20 @@ export function shipmentConfirmDraftBl({shipmentId}) {
1088
1088
  });
1089
1089
  }
1090
1090
 
1091
+ // 根据合同号,添加收款账号
1092
+ export function insertCompanyBank(data) {
1093
+ return request({
1094
+ url: "biz/contract/company/savePaymentByContract",
1095
+ method: "post",
1096
+ data: data,
1097
+ });
1098
+ }
1099
+
1100
+ // 根据合同号,获取收款账号
1101
+ export function getCompanyBanks(contractId) {
1102
+ return request({
1103
+ url: `biz/contract/company/paymentAccount/${contractId}`,
1104
+ method: "get",
1105
+ params: {},
1106
+ });
1107
+ }
@@ -156,7 +156,7 @@ export function uploadByShipmentId(data) {
156
156
  });
157
157
  }
158
158
 
159
- // 上传发票
159
+ // 上传尾款发票
160
160
  export function uploadFinallyInvoice(data) {
161
161
  return request({
162
162
  url: "/biz/invoice/uploadFinallyInvoice",
@@ -19,6 +19,7 @@ import PurchaseInvoiceUpload from "./views/biz/contractTracing/purchaseInvoiceUp
19
19
  import BizShipmentAdd from "./views/biz/bizShipment/add.vue";
20
20
  import ContractChangeLog from "./views/biz/contractTracing/contractChangeLog.vue";
21
21
  import EditBill from "./views/biz/contractTracing/editBill.vue";
22
+ import CompanyBanks from "./views/biz/contractTracing/companyBanks.vue";
22
23
 
23
24
  // 为组件提供 install 安装方法,供按需引入
24
25
 
@@ -46,6 +47,10 @@ EditBill.install = function (Vue) {
46
47
  Vue.component(EditBill.name, EditBill);
47
48
  };
48
49
 
50
+ CompanyBanks.install = function (Vue) {
51
+ Vue.component(CompanyBanks.name, CompanyBanks);
52
+ };
53
+
49
54
  // 导出组件
50
55
  export {
51
56
  EditBill,
@@ -54,4 +59,5 @@ export {
54
59
  PurchaseInvoiceUpload,
55
60
  BizShipmentAdd,
56
61
  ContractChangeLog,
62
+ CompanyBanks,
57
63
  };
@@ -1206,7 +1206,9 @@
1206
1206
 
1207
1207
  <gen-shipment ref="genShipment" @refresh="handleRefresh" />
1208
1208
 
1209
- <purchase-invoice-upload ref="purchaseInvoice" @refresh="handleRefresh"
1209
+ <purchase-invoice-upload ref="purchaseInvoice"
1210
+ :companyId="contract.contractId"
1211
+ @refresh="handleRefresh"
1210
1212
  :purchaseBalanceMoneyProp="purchaseBalanceMoney"
1211
1213
  :getShipmentPurchaseFun="getShipmentPurchase"
1212
1214
  ></purchase-invoice-upload>
@@ -1764,17 +1766,23 @@ export default {
1764
1766
  },
1765
1767
  //定金发票
1766
1768
  getDepositInvoice() {
1769
+ console.log('contract:', this.contract)
1767
1770
  if (this.contract.contractType == 'sale') {
1771
+ // 生成定金发票(销售)
1772
+ console.log('生成定金发票')
1768
1773
  getDepositInvoice(this.contract).then((response) => {
1769
1774
  const data = response.data;
1770
1775
  this.$refs.depositInvoice.handleShow(data);
1771
1776
  });
1772
1777
  } else {
1778
+ // 上传定金发票(采购)
1779
+ console.log('上传定金发票')
1773
1780
  this.$refs.purchaseInvoice.handleUpload(this.contract, 'deposit');
1774
1781
  }
1775
1782
  },
1776
1783
  //上传尾款发票
1777
1784
  uploadFinalInvoice(type, shipmentId) {
1785
+ console.log('上传尾款发票')
1778
1786
  this.$refs.purchaseInvoice.handleUpload(this.contract, type, shipmentId);
1779
1787
  },
1780
1788
  //设置进度
@@ -2146,7 +2154,7 @@ export default {
2146
2154
  let shipmentFileInfo = this.shipmentItemData
2147
2155
  if(shipmentFileInfo?.shipmentId) {
2148
2156
  getPurchaseAmount(shipmentFileInfo.shipmentId).then((res) => {
2149
- this.purchaseBalanceMoney = (res.data.totalPurchaseAmount - res.data.purchaseDepositAmount).toFixed(2)
2157
+ this.purchaseBalanceMoney = (res.data?.totalPurchaseAmount - res.data?.purchaseDepositAmount).toFixed(2)
2150
2158
  this.shipmentPurchaseAmountMessage =
2151
2159
  `${this.$t('contractDetail.reference_invince')}$` + this.purchaseBalanceMoney
2152
2160
  ;
@@ -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>
@@ -65,7 +65,23 @@
65
65
  </el-date-picker>
66
66
  </el-form-item>
67
67
  <el-form-item
68
- label="金额($)"
68
+ label="发票金额($)"
69
+ :prop="'proFormInvoiceList.' + index + '.invoiceAmount'"
70
+ :rules="[
71
+ { required: true, message: '不能为空' },
72
+ { type: 'number', message: '必须为数字值' },
73
+ ]"
74
+ >
75
+ <el-input
76
+ v-model.number="dt.invoiceAmount"
77
+ clearable
78
+ size="small"
79
+ placeholder="请输入票面金额"
80
+ type="number"
81
+ />
82
+ </el-form-item>
83
+ <el-form-item
84
+ label="应付金额($)"
69
85
  :prop="'proFormInvoiceList.' + index + '.amount'"
70
86
  :rules="[
71
87
  { required: true, message: '不能为空' },
@@ -95,6 +111,7 @@
95
111
  <upload-invoice v-model="dt.invoiceFileList" :limit="20" />
96
112
  </el-form-item>
97
113
  </el-row>
114
+ <company-banks ref="companyBanks" :companyId="companyId" @selectBank="(data) => selectBank(index, 'ProForma', data)"></company-banks>
98
115
  </el-row>
99
116
  </el-card>
100
117
  <el-row />
@@ -168,7 +185,23 @@
168
185
  </el-form-item>
169
186
  <el-row>
170
187
  <el-form-item
171
- label="金额($)"
188
+ label="发票金额($)"
189
+ :prop="'fixedInvoiceList.' + index + '.invoiceAmount'"
190
+ :rules="[
191
+ { required: true, message: '不能为空' },
192
+ { type: 'number', message: '必须为数字值' },
193
+ ]"
194
+ >
195
+ <el-input
196
+ v-model.number="item.invoiceAmount"
197
+ clearable
198
+ size="small"
199
+ placeholder="请填写票面金额"
200
+ type="number"
201
+ />
202
+ </el-form-item>
203
+ <el-form-item
204
+ label="应付金额($)"
172
205
  :prop="'fixedInvoiceList.' + index + '.amount'"
173
206
  :rules="[
174
207
  { required: true, message: '不能为空' },
@@ -207,6 +240,7 @@
207
240
  </el-form-item>
208
241
  </el-row>
209
242
  <el-divider></el-divider>
243
+ <company-banks ref="companyBanks" :companyId="companyId" @selectBank="(data) => selectBank(index, 'Fixed', data)"></company-banks>
210
244
  </el-row>
211
245
  </el-card>
212
246
  </el-form>
@@ -252,13 +286,20 @@ import {
252
286
  getInvoiceListByShipmentId,
253
287
  } from "../../../api/biz/bizInvoice";
254
288
  import { getByContractId } from "../../../api/biz/bizShipment";
289
+ import CompanyBanks from './companyBanks.vue';
255
290
 
256
291
  export default {
257
292
  name: "PurchaseInvoiceUpload",
258
293
  components: {
259
- UploadInvoice
294
+ UploadInvoice,
295
+ CompanyBanks
260
296
  },
261
297
  props: {
298
+ // 合同公司id(目前是合同id)
299
+ companyId: {
300
+ type: String | Number,
301
+ default: null,
302
+ },
262
303
  purchaseBalanceMoneyProp: {
263
304
  type: Number | String,
264
305
  default: '',
@@ -277,7 +318,10 @@ export default {
277
318
  // 是否显示弹出层
278
319
  open: false,
279
320
  // 表单参数
280
- form: { proFormInvoiceList: [], fixedInvoiceList: [] },
321
+ form: {
322
+ proFormInvoiceList: [],
323
+ fixedInvoiceList: [],
324
+ },
281
325
  //销售合同选项表
282
326
  saleContractList: [],
283
327
  //采购合同选项表
@@ -288,7 +332,9 @@ export default {
288
332
  purchaseBalanceMoney: '',
289
333
  };
290
334
  },
291
- created() {},
335
+ created() {
336
+ console.log('companyId:', this.companyId)
337
+ },
292
338
  methods: {
293
339
  dialogVisibleCancel() {
294
340
  this.submitForm(false);
@@ -306,6 +352,16 @@ export default {
306
352
  handleClose() {
307
353
  this.dialogVisible = false;
308
354
  },
355
+ // 选择收款账户
356
+ selectBank(index, fixed, data) {
357
+ console.log('proFormInvoiceList', this.form.proFormInvoiceList);
358
+ console.log('fixedInvoiceList', this.form.fixedInvoiceList);
359
+ if (fixed == 'ProForma') {
360
+ this.form.proFormInvoiceList[index].accountId = data?.accountId
361
+ } else {
362
+ this.form.fixedInvoiceList[index].accountId = data?.accountId
363
+ }
364
+ },
309
365
  //上传并生成
310
366
  uploadAndGenerate() {
311
367
  this.$refs["form"].validate((valid) => {
@@ -365,9 +421,13 @@ export default {
365
421
  },
366
422
  /** 展示按钮操作 */
367
423
  handleUpload(row, type, shipmentId) {
424
+ console.log('row:', row)
368
425
  this.reset();
369
426
  this.type = type;
370
427
  this.shipmentId = shipmentId;
428
+ if (!this.companyId) {
429
+ this.companyId = row.contractId
430
+ }
371
431
  if (type == "finally") {
372
432
  getInvoiceListByShipmentId(shipmentId)
373
433
  .then((response) => {