doctor-admin-components 1.0.13-beta.59 → 1.0.13-beta.60

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.59",
4
+ "version": "1.0.13-beta.60",
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
  //设置进度
@@ -2145,7 +2153,7 @@ export default {
2145
2153
  getShipmentPurchaseAmount() {
2146
2154
  let shipmentFileInfo = this.shipmentItemData
2147
2155
  getPurchaseAmount(shipmentFileInfo.shipmentId).then((res) => {
2148
- this.purchaseBalanceMoney = (res.data.totalPurchaseAmount - res.data.purchaseDepositAmount).toFixed(2)
2156
+ this.purchaseBalanceMoney = (res.data?.totalPurchaseAmount - res.data?.purchaseDepositAmount).toFixed(2)
2149
2157
  this.shipmentPurchaseAmountMessage =
2150
2158
  `${this.$t('contractDetail.reference_invince')}$` + this.purchaseBalanceMoney
2151
2159
  ;
@@ -0,0 +1,224 @@
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
+ }
164
+ },
165
+ getBankList() {
166
+ if (!this.companyId) {
167
+ return
168
+ }
169
+ getCompanyBanks(this.companyId).then((res) => {
170
+ this.bankList = res.data?.paymentAccountList
171
+ this.handleCaclSelectIndex()
172
+ })
173
+ },
174
+ clickAdd() {
175
+ this.restForm()
176
+ this.open = true
177
+ },
178
+ clickSelct(index) {
179
+ if (this.disableSelect) {
180
+ console.log('disableSelect')
181
+ return
182
+ }
183
+ this.sellectIndex = index
184
+ let data = this.bankList[index]
185
+ console.log('select data', data)
186
+ this.$emit('selectBank', data)
187
+ },
188
+ clickCancel() {
189
+ this.open = false
190
+ },
191
+ clickConfirm() {
192
+ let e = this.form
193
+ if (!(e.swiftCode || e.bankName || e.bankAddress || e.beneficiaryAccount || e.beneficiary || e.beneficiaryAddress)) {
194
+ this.$modal.msgError('请输入内容')
195
+ return
196
+ }
197
+ insertCompanyBank({
198
+ contractId: this.companyId,
199
+ paymentAccountList: [e]
200
+ }).then((res) => {
201
+ this.getBankList()
202
+ this.open = false
203
+ })
204
+ }
205
+ }
206
+ }
207
+ </script>
208
+
209
+ <style scoped lang="scss">
210
+ .bank-container {
211
+ background-color: rgb(240, 240, 240);
212
+ padding: 20px 10px 5px;
213
+ margin-top: 10px;
214
+ }
215
+ .bank-container-select {
216
+ border: 1px solid blue;
217
+ }
218
+ .bank-container-unselect {
219
+ border: 1px solid rgb(240, 240, 240);
220
+ }
221
+ .bank-item {
222
+ padding: 2px 40px 2px;
223
+ }
224
+ </style>
@@ -65,7 +65,24 @@
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="应付金额($)"
85
+ label-width="140px"
69
86
  :prop="'proFormInvoiceList.' + index + '.amount'"
70
87
  :rules="[
71
88
  { required: true, message: '不能为空' },
@@ -95,6 +112,7 @@
95
112
  <upload-invoice v-model="dt.invoiceFileList" :limit="20" />
96
113
  </el-form-item>
97
114
  </el-row>
115
+ <company-banks ref="companyBanks" :companyId="companyId" @selectBank="(data) => selectBank(index, 'ProForma', data)"></company-banks>
98
116
  </el-row>
99
117
  </el-card>
100
118
  <el-row />
@@ -168,7 +186,24 @@
168
186
  </el-form-item>
169
187
  <el-row>
170
188
  <el-form-item
171
- label="金额($)"
189
+ label="发票金额($)"
190
+ :prop="'fixedInvoiceList.' + index + '.invoiceAmount'"
191
+ :rules="[
192
+ { required: true, message: '不能为空' },
193
+ { type: 'number', message: '必须为数字值' },
194
+ ]"
195
+ >
196
+ <el-input
197
+ v-model.number="item.invoiceAmount"
198
+ clearable
199
+ size="small"
200
+ placeholder="请填写票面金额"
201
+ type="number"
202
+ />
203
+ </el-form-item>
204
+ <el-form-item
205
+ label="应付金额($)"
206
+ label-width="140px"
172
207
  :prop="'fixedInvoiceList.' + index + '.amount'"
173
208
  :rules="[
174
209
  { required: true, message: '不能为空' },
@@ -207,6 +242,7 @@
207
242
  </el-form-item>
208
243
  </el-row>
209
244
  <el-divider></el-divider>
245
+ <company-banks ref="companyBanks" :companyId="companyId" @selectBank="(data) => selectBank(index, 'Fixed', data)"></company-banks>
210
246
  </el-row>
211
247
  </el-card>
212
248
  </el-form>
@@ -252,13 +288,20 @@ import {
252
288
  getInvoiceListByShipmentId,
253
289
  } from "../../../api/biz/bizInvoice";
254
290
  import { getByContractId } from "../../../api/biz/bizShipment";
291
+ import CompanyBanks from './companyBanks.vue';
255
292
 
256
293
  export default {
257
294
  name: "PurchaseInvoiceUpload",
258
295
  components: {
259
- UploadInvoice
296
+ UploadInvoice,
297
+ CompanyBanks
260
298
  },
261
299
  props: {
300
+ // 合同公司id(目前是合同id)
301
+ companyId: {
302
+ type: String | Number,
303
+ default: null,
304
+ },
262
305
  purchaseBalanceMoneyProp: {
263
306
  type: Number | String,
264
307
  default: '',
@@ -277,7 +320,10 @@ export default {
277
320
  // 是否显示弹出层
278
321
  open: false,
279
322
  // 表单参数
280
- form: { proFormInvoiceList: [], fixedInvoiceList: [] },
323
+ form: {
324
+ proFormInvoiceList: [],
325
+ fixedInvoiceList: [],
326
+ },
281
327
  //销售合同选项表
282
328
  saleContractList: [],
283
329
  //采购合同选项表
@@ -288,7 +334,9 @@ export default {
288
334
  purchaseBalanceMoney: '',
289
335
  };
290
336
  },
291
- created() {},
337
+ created() {
338
+ console.log('companyId:', this.companyId)
339
+ },
292
340
  methods: {
293
341
  dialogVisibleCancel() {
294
342
  this.submitForm(false);
@@ -306,6 +354,16 @@ export default {
306
354
  handleClose() {
307
355
  this.dialogVisible = false;
308
356
  },
357
+ // 选择收款账户
358
+ selectBank(index, fixed, data) {
359
+ console.log('proFormInvoiceList', this.form.proFormInvoiceList);
360
+ console.log('fixedInvoiceList', this.form.fixedInvoiceList);
361
+ if (fixed == 'ProForma') {
362
+ this.form.proFormInvoiceList[index].accountId = data.accountId
363
+ } else {
364
+ this.form.fixedInvoiceList[index].accountId = data.accountId
365
+ }
366
+ },
309
367
  //上传并生成
310
368
  uploadAndGenerate() {
311
369
  this.$refs["form"].validate((valid) => {
@@ -365,9 +423,13 @@ export default {
365
423
  },
366
424
  /** 展示按钮操作 */
367
425
  handleUpload(row, type, shipmentId) {
426
+ console.log('row:', row)
368
427
  this.reset();
369
428
  this.type = type;
370
429
  this.shipmentId = shipmentId;
430
+ if (!this.companyId) {
431
+ this.companyId = row.contractId
432
+ }
371
433
  if (type == "finally") {
372
434
  getInvoiceListByShipmentId(shipmentId)
373
435
  .then((response) => {