doctor-admin-components 1.0.13-pro.1 → 1.0.14-beta.10

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 (47) hide show
  1. package/README.md +15 -2
  2. package/package.json +1 -1
  3. package/packages/index.js +16 -1
  4. package/packages/src/api/biz/bizContract.js +1005 -0
  5. package/packages/src/api/biz/bizFileInfo.js +16 -0
  6. package/packages/src/api/biz/bizInvoice.js +1 -1
  7. package/packages/src/api/biz/bizShipment.js +38 -0
  8. package/packages/src/assets/images/click-show-table.png +0 -0
  9. package/packages/src/assets/images/more.png +0 -0
  10. package/packages/src/assets/images/pdf-new.png +0 -0
  11. package/packages/src/components/DictTag/index.vue +12 -2
  12. package/packages/src/components/FileUpload/contract-drag-new.vue +100 -11
  13. package/packages/src/i18n/en/message.json +305 -0
  14. package/packages/src/i18n/index.js +38 -0
  15. package/packages/src/i18n/zh-CN/message.json +305 -0
  16. package/packages/src/index.js +24 -1
  17. package/packages/src/utils/MycommonUtil.js +12 -0
  18. package/packages/src/utils/index.js +35 -0
  19. 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
  20. package/packages/src/views/biz/bizFileInfo/contract copy.vue +1711 -0
  21. package/packages/src/views/biz/bizFileInfo/contract.vue +1925 -1019
  22. package/packages/src/views/biz/bizFileInfo/contractFile/BillOfLadingNoTab.vue +116 -0
  23. package/packages/src/views/biz/bizFileInfo/contractFile/ContentTitle.vue +102 -0
  24. package/packages/src/views/biz/bizFileInfo/contractFile/IMGPreviewCheckBox.vue +324 -0
  25. package/packages/src/views/biz/bizFileInfo/contractFile/Progress.vue +85 -0
  26. package/packages/src/views/biz/bizFileInfo/contractFile/ProgressDetail.vue +123 -0
  27. package/packages/src/views/biz/bizFileInfo/contractFile/SectionSlot.vue +91 -0
  28. package/packages/src/views/biz/bizFileInfo/contractFile/ShowAndHide.vue +178 -0
  29. package/packages/src/views/biz/bizFileInfo/fileShow copy.vue +321 -0
  30. package/packages/src/views/biz/bizFileInfo/fileShow.vue +152 -48
  31. package/packages/src/views/biz/bizFileInfo/fileShowClaim.vue +1 -1
  32. package/packages/src/views/biz/bizShipment/add.vue +178 -29
  33. package/packages/src/views/biz/bizShipment/referenceAlert.vue +168 -0
  34. package/packages/src/views/biz/contractTracing/billInfo.vue +64 -40
  35. package/packages/src/views/biz/contractTracing/companyBanks.vue +228 -0
  36. package/packages/src/views/biz/contractTracing/contractInfo.vue +1 -1
  37. package/packages/src/views/biz/contractTracing/contractPdf.vue +10 -5
  38. package/packages/src/views/biz/contractTracing/contractSummary.vue +31 -19
  39. package/packages/src/views/biz/contractTracing/contractTracingDetail copy.vue +107 -0
  40. package/packages/src/views/biz/contractTracing/contractTracingDetail.vue +209 -31
  41. package/packages/src/views/biz/contractTracing/editBill.vue +22 -9
  42. package/packages/src/views/biz/contractTracing/purchaseInvoiceUpload.vue +153 -7
  43. package/packages/src/views/biz/contractTracing/shipmentPurchaseAmount.vue +14 -0
  44. package/packages/src/views/biz/contractTracing/subCompanyDialog.vue +8 -2
  45. package/packages/src/views/components/RegionPicker/Distpicker.vue +459 -0
  46. package/packages/src/views/components/RegionPicker/districts.js +4641 -0
  47. package/packages/src/views/test.vue +3 -3
@@ -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>
@@ -2,14 +2,55 @@
2
2
  * @Author: zhangpengwei 15038779532@163.com
3
3
  * @Date: 2023-07-20 17:13:54
4
4
  * @LastEditors: zhangpengwei@1338418459736990.onaliyun.com zhangpengwei@1338418459736990.onaliyun.com
5
- * @LastEditTime: 2024-01-19 13:54:56
5
+ * @LastEditTime: 2024-05-08 14:21:04
6
6
  * @FilePath: /recycle-vue-ui再生博士后台管理/src/views/biz/contractTracing/contractTracingDetail.vue
7
7
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
8
8
  -->
9
9
  <template>
10
10
  <div class="app-container">
11
- <div style="position: relative">
12
- <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
11
+ <div class="app-container-container">
12
+ <div class="app-container-left">
13
+ <div class="contract-number">
14
+ <div>{{ $t('contractDetail.Contract_No') }}</div>
15
+ <div>{{ contract.contractNo }}</div>
16
+ </div>
17
+ <div class="contract-number">
18
+ <div>
19
+ <span>{{$t('contractDetail.Reference_No')}}</span>
20
+ <el-button size="mini" type="text" icon="el-icon-edit" @click="clickEditReference"></el-button>
21
+ </div>
22
+ <div>{{ contract.reference || '--' }}</div>
23
+ </div>
24
+ <div class="tab-root">
25
+ <div :class="['tab', activeName == tabsItem.name ? 'active' : '']" v-for="tabsItem in saleTabsArr" :key="tabsItem.id" @click="changeTabs(tabsItem)">
26
+ {{ tabsItem.label }}
27
+ </div>
28
+ </div>
29
+ </div>
30
+ <div class="app-container-right" :style="activeName == 'fourth' ? 'overflow:visible' : 'overflow:auto'">
31
+ <contract-summary v-if="activeName == 'first'" :channel="channel"></contract-summary>
32
+ <contract-info v-if="activeName == 'second'" :channel="channel"></contract-info>
33
+ <!-- 提单指令 -->
34
+ <div v-if="activeName == 'third'">
35
+ <!-- 标题分栏 -->
36
+ <el-tabs v-model="activeBillIndex">
37
+ <el-tab-pane v-for="(bill, i) in blList" :key="i" :label="contract.contractNo + ' 提单指令'" :name="i.toString()">
38
+ <bill-info @refresh="getBlList" :contract="contract" :billData="bill" :channel="channel"></bill-info>
39
+ </el-tab-pane>
40
+ </el-tabs>
41
+ </div>
42
+
43
+ <contract-file
44
+ v-if="activeName == 'fourth' && contract.contractType"
45
+ :contract="contract"
46
+ :channel="channel"
47
+ :buyerFlag="buyerFlag"
48
+ ref="contractFileRef"
49
+ ></contract-file>
50
+ </div>
51
+ </div>
52
+ <!-- <div style="position: relative">
53
+ <el-tabs tabPosition="left" v-model="activeName" type="card" @tab-click="handleClick">
13
54
  <el-tab-pane :label="$t('contractDetail.summary')" name="first">
14
55
  <contract-summary v-if="activeName == 'first'" :channel="channel"></contract-summary>
15
56
  </el-tab-pane>
@@ -33,10 +74,10 @@
33
74
  :buyerFlag="buyerFlag"
34
75
  ></contract-file>
35
76
  </el-tab-pane>
36
- </el-tabs>
77
+ </el-tabs> -->
37
78
 
38
- <!-- 这里添加合同编号的显示 -->
39
- <div
79
+ <!-- 这里添加合同编号的显示 -->
80
+ <!-- <div
40
81
  style="
41
82
  position: absolute;
42
83
  right: 10px;
@@ -45,16 +86,16 @@
45
86
  font-weight: bold;
46
87
  "
47
88
  >{{$t('contractDetail.Contract_No')}}:{{ contract.contractNo }}</div>
48
- </div>
89
+ </div> -->
49
90
  </div>
50
91
  </template>
51
92
 
52
93
  <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';
94
+ import { getBizContract, getContractBlList, editReferenceNo } from '../../../api/biz/bizContract'
95
+ import ContractSummary from './contractSummary.vue'
96
+ import BillInfo from './billInfo.vue'
97
+ import ContractFile from '../bizFileInfo/contract.vue'
98
+ import ContractInfo from './contractInfo.vue'
58
99
 
59
100
  export default {
60
101
  name: 'ContractTracingDetail',
@@ -63,45 +104,182 @@ export default {
63
104
  ContractSummary,
64
105
  BillInfo,
65
106
  ContractFile,
66
- ContractInfo,
107
+ ContractInfo
67
108
  },
68
109
  props: {
69
- channel: '',
110
+ channel: ''
70
111
  },
71
112
  data() {
72
113
  return {
73
114
  activeName: 'first',
74
115
  contract: {},
75
116
  buyerFlag: true,
76
- };
117
+ saleTabsArr: [
118
+ {
119
+ label: this.$t('contractDetail.summary'),
120
+ name: 'first',
121
+ id: 0
122
+ },
123
+ {
124
+ label: this.$t('contractDetail.info'),
125
+ name: 'second',
126
+ id: 1
127
+ },
128
+ {
129
+ label: this.$t('contractDetail.blInfo'),
130
+ name: 'third',
131
+ id: 2
132
+ },
133
+ {
134
+ label: this.$t('contractDetail.fileManage'),
135
+ name: 'fourth',
136
+ id: 3
137
+ }
138
+ ],
139
+ purchaseTabsArr: [
140
+ {
141
+ label: this.$t('contractDetail.summary'),
142
+ name: 'first',
143
+ id: 0
144
+ },
145
+ {
146
+ label: this.$t('contractDetail.info'),
147
+ name: 'second',
148
+ id: 1
149
+ },
150
+ {
151
+ label: this.$t('contractDetail.fileManage'),
152
+ name: 'fourth',
153
+ id: 2
154
+ }
155
+ ],
156
+
157
+ // 提单指令列表
158
+ blList: null,
159
+ activeBillIndex: null
160
+ }
77
161
  },
78
162
  computed: {},
79
163
  watch: {},
80
164
  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;
165
+ const contractId = this.$route.params && this.$route.params.contractId
166
+ this.getContract(contractId)
167
+ const activeName = this.$route.query && this.$route.query.activeName
168
+ this.activeName = activeName || 'first'
169
+ // this.activeName = 'fourth'
170
+ localStorage.setItem('contractDetail', location.href)
171
+ location.href
87
172
  },
88
173
  mounted() {},
89
174
  methods: {
175
+ // 编辑合同参考号
176
+ clickEditReference() {
177
+ const contractId = this.$route.params && this.$route.params.contractId;
178
+ this.$prompt('请在下方填写合同参考号', '编辑合同参考号', {
179
+ confirmButtonText: '确认',
180
+ cancelButtonText: '取消',
181
+ inputType: 'text',
182
+ inputValue: this.contract.reference,
183
+ inputPlaceholder: '请填写合同参考号'
184
+ })
185
+ .then(({ value }) => {
186
+ return editReferenceNo({reference: value, contractId:contractId})
187
+ })
188
+ .then(() => {
189
+ this.$modal.msgSuccess('编辑成功')
190
+ this.getContract(contractId)
191
+ })
192
+ .catch((e) => {
193
+ console.log(e)
194
+ })
195
+ },
196
+
197
+ /**
198
+ * @description: 切换tab
199
+ * @param {*} tab
200
+ * @return {*}
201
+ */
202
+ changeTabs(tab) {
203
+ this.activeName = tab.name
204
+ },
90
205
  getContract(contractId) {
91
206
  getBizContract(contractId).then((res) => {
92
- this.contract = res.data;
207
+ this.contract = res.data
93
208
  // Debit note是给卖家的,要放在 ARS 下
94
209
  // Credit note是给买家的,要放在 ARP 下
95
- this.buyerFlag = this.contract?.contractNo
96
- ?.toLowerCase()
97
- ?.includes('arp');
98
- });
210
+ this.buyerFlag = this.contract?.contractNo?.toLowerCase()?.includes('arp')
211
+ // 获取提单指令
212
+ this.getBlList()
213
+ })
99
214
  },
100
- handleClick(tab, event) {
101
- console.log(tab, event);
215
+ getBlList() {
216
+ const contractId = this.$route.params && this.$route.params.contractId
217
+ if (contractId) {
218
+ getContractBlList(contractId).then((res) => {
219
+ this.blList = res.rows
220
+ // 默认选中第一个
221
+ if (!this.activeBillIndex) {
222
+ this.activeBillIndex = '0'
223
+ }
224
+ })
225
+ }
102
226
  },
103
- },
104
- };
227
+
228
+ handleClick(tab, event) {
229
+ console.log(tab, event)
230
+ }
231
+ }
232
+ }
105
233
  </script>
106
234
 
107
- <style scoped lang="scss"></style>
235
+ <style scoped lang="scss">
236
+ .app-container {
237
+ .app-container-container {
238
+ display: flex;
239
+ height: calc(100vh - 126px);
240
+ .app-container-left {
241
+ width: 141px;
242
+ height: 100%;
243
+ margin-right: 10px;
244
+ background-color: #d9dfe8;
245
+ .contract-number {
246
+ font-size: 12px;
247
+ font-weight: normal;
248
+ color: #000000;
249
+ line-height: 14px;
250
+ text-align: left;
251
+ padding: 10px 0 0 15px;
252
+ }
253
+ .tab-root {
254
+ margin-top: 40px;
255
+ display: flex;
256
+ flex-direction: column;
257
+ align-items: flex-end;
258
+ .tab {
259
+ height: 48px;
260
+ font-size: 14px;
261
+ font-weight: normal;
262
+ color: #000;
263
+ line-height: 48px;
264
+ text-align: right;
265
+ width: max-content;
266
+ padding: 0 20px;
267
+ box-sizing: border-box;
268
+ }
269
+ .active {
270
+ background: #eff5ff;
271
+ border-radius: 5px 0px 0px 5px;
272
+ color: #009444;
273
+ }
274
+ }
275
+ }
276
+ .app-container-right {
277
+ flex: 1;
278
+ height: 100%;
279
+ overflow: auto;
280
+ }
281
+
282
+ }
283
+ }
284
+
285
+ </style>
@@ -4,11 +4,18 @@
4
4
  <div class="contract">
5
5
  <div class="info" id="printPdf">
6
6
  <!-- <div class="title">{{ $t("contract.billTip") }}</div> -->
7
- <div style="padding-bottom: 20px">
8
- <span style="font-size: 16px; font-weight: bold"> {{ $t('contractDetail.BLConfirm') + ':' }} </span>
9
- <el-switch v-model="confirmFlag" :inactive-text="$t('contractDetail.BL_Not_Confirm')" :active-text="$t('contractDetail.BL_Confirmed')"> </el-switch>
10
- </div>
11
- <el-form :model="form" ref="form" size="mini" :rules="rules" label-width="130px">
7
+ <el-row>
8
+ <el-col :span="12" v-if="voidFlag" style="padding-bottom: 20px">
9
+ <span style="font-size: 16px; color: red; font-weight: bold"> 已作废 </span>
10
+ </el-col>
11
+ <el-col :span="12" v-else>
12
+ <div style="padding-bottom: 20px">
13
+ <span style="font-size: 16px; font-weight: bold"> {{ $t('contractDetail.BLConfirm') + ':' }} </span>
14
+ <el-switch v-model="confirmFlag" :inactive-text="$t('contractDetail.BL_Not_Confirm')" :active-text="$t('contractDetail.BL_Confirmed')"> </el-switch>
15
+ </div>
16
+ </el-col>
17
+ </el-row>
18
+ <el-form :disabled="voidFlag" :model="form" ref="form" size="mini" :rules="rules" label-width="130px">
12
19
  <el-collapse v-model="expandItems">
13
20
  <el-collapse-item name="0" v-if="channel !== 'official-website'">
14
21
  <template slot="title">
@@ -169,10 +176,13 @@
169
176
  </el-collapse-item>
170
177
  </el-collapse>
171
178
 
172
- <el-form-item :label="$t('contract.destination') + ':'">
179
+ <el-form-item v-if="contract && contract.freightTerms && contract.freightTerms != 'EXW'" :label="$t('contract.destination') + ':'">
173
180
  {{ this.contract && this.contract.destination ? this.contract.destination : '' }}
174
181
  </el-form-item>
175
- <el-form-item :label="$t('contract.terminal') + ':'" prop="terminal">
182
+ <el-form-item v-else :label="'EXW Address' + ':'">
183
+ {{ this.contract && this.contract.exw ? this.contract.exw : '' }}
184
+ </el-form-item>
185
+ <el-form-item v-if="contract && contract.freightTerms && contract.freightTerms != 'EXW'" :label="$t('contract.terminal') + ':'" prop="terminal">
176
186
  <el-input v-model="form.terminal" type="textarea" autosize :placeholder="$t('contract.terminalTip')"></el-input>
177
187
  </el-form-item>
178
188
 
@@ -260,7 +270,7 @@
260
270
  </el-form-item>
261
271
  </el-form>
262
272
  </div>
263
- <div class="footer" v-if="!printModel">
273
+ <div class="footer" v-if="!printModel && !voidFlag">
264
274
  <el-button type="primary" @click="submitForm">{{ $t('button.saveDraft') }}</el-button>
265
275
  </div>
266
276
  </div>
@@ -298,6 +308,8 @@ export default {
298
308
  open: false,
299
309
  // 是否已确认
300
310
  confirmFlag: false,
311
+ // 是否已作废
312
+ voidFlag: false,
301
313
  // 表单参数
302
314
  form: {
303
315
  //买家公司提单货物名称
@@ -379,7 +391,8 @@ export default {
379
391
  getBizContract(contractId)
380
392
  .then((response) => {
381
393
  this.contract = response.data
382
- this.confirmFlag = this.contract.blConfirmFlag ?? false
394
+ this.confirmFlag = this.contract.blConfirmFlag == '1'
395
+ this.voidFlag = this.contract.blConfirmFlag == '2'
383
396
  resolve(response) // 异步操作成功,解决Promise
384
397
  })
385
398
  .catch((error) => {