doctor-admin-components 1.0.13-beta.6 → 1.0.13-beta.61

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 (49) 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 +980 -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/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/FileUpload/contract-drag-new.vue +99 -10
  12. package/packages/src/i18n/en/message.json +296 -0
  13. package/packages/src/i18n/index.js +38 -0
  14. package/packages/src/i18n/zh-CN/message.json +296 -0
  15. package/packages/src/index.js +6 -0
  16. package/packages/src/utils/index.js +35 -0
  17. package/packages/src/utils/request.js +120 -146
  18. 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
  19. package/packages/src/views/biz/bizFileInfo/contract copy.vue +1711 -0
  20. package/packages/src/views/biz/bizFileInfo/contract.vue +1678 -1003
  21. package/packages/src/views/biz/bizFileInfo/contractFile/BillOfLadingNoTab.vue +114 -0
  22. package/packages/src/views/biz/bizFileInfo/contractFile/ContentTitle.vue +102 -0
  23. package/packages/src/views/biz/bizFileInfo/contractFile/IMGPreviewCheckBox.vue +280 -0
  24. package/packages/src/views/biz/bizFileInfo/contractFile/Progress.vue +85 -0
  25. package/packages/src/views/biz/bizFileInfo/contractFile/ProgressDetail.vue +122 -0
  26. package/packages/src/views/biz/bizFileInfo/contractFile/SectionSlot.vue +83 -0
  27. package/packages/src/views/biz/bizFileInfo/contractFile/ShowAndHide.vue +178 -0
  28. package/packages/src/views/biz/bizFileInfo/fileShow copy.vue +321 -0
  29. package/packages/src/views/biz/bizFileInfo/fileShow.vue +131 -46
  30. package/packages/src/views/biz/bizFileInfo/fileShowClaim.vue +1 -1
  31. package/packages/src/views/biz/bizShipment/add.vue +119 -69
  32. package/packages/src/views/biz/contractTracing/addSubCompany.vue +106 -169
  33. package/packages/src/views/biz/contractTracing/billInfo.vue +150 -315
  34. package/packages/src/views/biz/contractTracing/companyBanks.vue +228 -0
  35. package/packages/src/views/biz/contractTracing/contractSummary.vue +286 -629
  36. package/packages/src/views/biz/contractTracing/contractTracingDetail copy.vue +107 -0
  37. package/packages/src/views/biz/contractTracing/contractTracingDetail.vue +200 -7
  38. package/packages/src/views/biz/contractTracing/editBill.vue +219 -359
  39. package/packages/src/views/biz/contractTracing/purchaseInvoiceUpload.vue +157 -7
  40. package/packages/src/views/biz/contractTracing/shipmentPurchaseAmount.vue +8 -2
  41. package/packages/src/views/biz/contractTracing/subCompanyDialog.vue +196 -176
  42. package/packages/src/views/test.vue +3 -3
  43. package/packages/src/views/biz/contractTracing/association.vue +0 -189
  44. package/packages/src/views/biz/contractTracing/chargingDialog.vue +0 -84
  45. package/packages/src/views/biz/contractTracing/contract.vue +0 -1276
  46. package/packages/src/views/biz/contractTracing/disputeRecord.vue +0 -311
  47. package/packages/src/views/biz/contractTracing/edit.vue +0 -205
  48. package/packages/src/views/biz/contractTracing/sendDrafEmail.vue +0 -120
  49. package/packages/src/views/biz/contractTracing/shipment.vue +0 -601
@@ -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,54 @@
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-04-10 20:22:55
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="tab-root">
18
+ <div :class="['tab', activeName == tabsItem.name ? 'active' : '']" v-for="tabsItem in (contract.contractType == 'sale' ? saleTabsArr : purchaseTabsArr) " :key="tabsItem.id" @click="changeTabs(tabsItem)">
19
+ {{ tabsItem.label }}
20
+ </div>
21
+ </div>
22
+ <div>
23
+ <!-- 选择项 -->
24
+ <div class="selection-root">
25
+ <span>{{ $t('contractDetail.Selected') }} {{ selectFileList.length }} {{ $t('contractDetail.item') }}</span>
26
+ <div class="border-button" @click.stop="downLoadAll">{{ $t('contractDetail.Download_All') }}</div>
27
+ <div class="border-button" @click.stop="deleteAll">{{$t('contractDetail.Delete_All')}}</div>
28
+ <div class="border-button" @click.stop="cancelAll">{{ $t('contractDetail.Deselect') }}</div>
29
+ </div>
30
+ </div>
31
+ </div>
32
+ <div class="app-container-right">
33
+ <contract-summary v-if="activeName == 'first'" :channel="channel"></contract-summary>
34
+ <contract-info v-if="activeName == 'second'" :channel="channel"></contract-info>
35
+
36
+ <bill-info :contract="contract" v-if="activeName == 'third'"
37
+ :channel="channel"
38
+ ></bill-info>
39
+
40
+ <contract-file
41
+ v-if="activeName == 'fourth' && contract.contractType"
42
+ :contract="contract"
43
+ :channel="channel"
44
+ :buyerFlag="buyerFlag"
45
+ :selectFileListProp="selectFileList"
46
+ ref="contractFileRef"
47
+ ></contract-file>
48
+
49
+ </div>
50
+ </div>
51
+ <!-- <div style="position: relative">
52
+ <el-tabs tabPosition="left" v-model="activeName" type="card" @tab-click="handleClick">
13
53
  <el-tab-pane :label="$t('contractDetail.summary')" name="first">
14
54
  <contract-summary v-if="activeName == 'first'" :channel="channel"></contract-summary>
15
55
  </el-tab-pane>
@@ -33,10 +73,10 @@
33
73
  :buyerFlag="buyerFlag"
34
74
  ></contract-file>
35
75
  </el-tab-pane>
36
- </el-tabs>
76
+ </el-tabs> -->
37
77
 
38
78
  <!-- 这里添加合同编号的显示 -->
39
- <div
79
+ <!-- <div
40
80
  style="
41
81
  position: absolute;
42
82
  right: 10px;
@@ -45,7 +85,7 @@
45
85
  font-weight: bold;
46
86
  "
47
87
  >{{$t('contractDetail.Contract_No')}}:{{ contract.contractNo }}</div>
48
- </div>
88
+ </div> -->
49
89
  </div>
50
90
  </template>
51
91
 
@@ -55,6 +95,7 @@ import ContractSummary from './contractSummary.vue';
55
95
  import BillInfo from './billInfo.vue';
56
96
  import ContractFile from '../bizFileInfo/contract.vue';
57
97
  import ContractInfo from './contractInfo.vue';
98
+ import { delBizFileInfo } from '../../../api/biz/bizFileInfo';
58
99
 
59
100
  export default {
60
101
  name: 'ContractTracingDetail',
@@ -73,6 +114,38 @@ export default {
73
114
  activeName: 'first',
74
115
  contract: {},
75
116
  buyerFlag: true,
117
+ saleTabsArr:[{
118
+ label: this.$t('contractDetail.summary'),
119
+ name: 'first',
120
+ id:0
121
+ },{
122
+ label: this.$t('contractDetail.info'),
123
+ name: 'second',
124
+ id:1
125
+ },{
126
+ label: this.$t('contractDetail.blInfo'),
127
+ name: 'third',
128
+ id:2
129
+ },{
130
+ label: this.$t('contractDetail.fileManage'),
131
+ name: 'fourth',
132
+ id:3
133
+ }],
134
+ purchaseTabsArr:[{
135
+ label: this.$t('contractDetail.summary'),
136
+ name: 'first',
137
+ id:0
138
+ },{
139
+ label: this.$t('contractDetail.info'),
140
+ name: 'second',
141
+ id:1
142
+ },{
143
+ label: this.$t('contractDetail.fileManage'),
144
+ name: 'fourth',
145
+ id:2
146
+ }],
147
+
148
+ selectFileList: [],
76
149
  };
77
150
  },
78
151
  computed: {},
@@ -82,11 +155,58 @@ export default {
82
155
  this.getContract(contractId);
83
156
  const activeName = this.$route.query && this.$route.query.activeName;
84
157
  this.activeName = activeName || 'first';
158
+ // this.activeName = 'fourth'
85
159
  localStorage.setItem('contractDetail', location.href);
86
160
  location.href;
87
161
  },
88
162
  mounted() {},
89
163
  methods: {
164
+ /**
165
+ * @description: 取消全部选择
166
+ * @return {*}
167
+ */
168
+ cancelAll () {
169
+ this.$refs.contractFileRef.cancelAllSelectFileList()
170
+ },
171
+
172
+ /**
173
+ * @description: 全部下载
174
+ * @return {*}
175
+ */
176
+ downLoadAll() {
177
+ if(this.selectFileList.length == 0) {
178
+ return this.$message.warning(this.$t('contractDetail.please_select_file'))
179
+ }
180
+ this.$refs.contractFileRef.downloadZip()
181
+ },
182
+ deleteAll() {
183
+ console.log('==delBizFileInfo==',this.selectFileList);
184
+ if(this.selectFileList.length == 0) {
185
+ return this.$message.warning(this.$t('contractDetail.please_select_file'))
186
+ }
187
+
188
+ this.$confirm('是否删除选中文件', '提示', {
189
+ confirmButtonText: '确定',
190
+ cancelButtonText: '取消',
191
+ type: 'warning',
192
+ }).then(() => {
193
+ const ids = this.selectFileList.map(item => item.fileId)
194
+ delBizFileInfo(ids).then(() => {
195
+ this.$message.success('删除成功')
196
+ this.$refs.contractFileRef.handleRefresh()
197
+ })
198
+ }).catch(() => {
199
+ this.$message.info('已取消删除')
200
+ })
201
+ },
202
+ /**
203
+ * @description: 切换tab
204
+ * @param {*} tab
205
+ * @return {*}
206
+ */
207
+ changeTabs(tab) {
208
+ this.activeName = tab.name;
209
+ },
90
210
  getContract(contractId) {
91
211
  getBizContract(contractId).then((res) => {
92
212
  this.contract = res.data;
@@ -104,4 +224,77 @@ export default {
104
224
  };
105
225
  </script>
106
226
 
107
- <style scoped lang="scss"></style>
227
+ <style scoped lang="scss">
228
+ .app-container {
229
+ .app-container-container {
230
+ display: flex;
231
+ height: calc(100vh - 126px);
232
+ .app-container-left {
233
+ width: 141px;
234
+ height: 100%;
235
+ margin-right:10px;
236
+ background-color: #D9DFE8;
237
+ .contract-number {
238
+ font-size: 12px;
239
+ font-weight: normal;
240
+ color: #000000;
241
+ line-height: 14px;
242
+ text-align:left;
243
+ padding: 10px 0 0 15px;
244
+ }
245
+ .tab-root {
246
+ margin-top:40px;
247
+ display:flex;
248
+ flex-direction: column;
249
+ align-items: flex-end;
250
+ .tab {
251
+ height: 48px;
252
+ font-size: 14px;
253
+ font-weight: normal;
254
+ color: #000;
255
+ line-height: 48px;
256
+ text-align:right;
257
+ width:max-content;
258
+ padding:0 20px;
259
+ box-sizing: border-box;
260
+ }
261
+ .active {
262
+ background: #EFF5FF;
263
+ border-radius: 5px 0px 0px 5px;
264
+ color:#009444;
265
+ }
266
+
267
+ }
268
+ }
269
+ .app-container-right {
270
+ flex:1;
271
+ height: 100%;
272
+ overflow:auto;
273
+
274
+ }
275
+ }
276
+ }
277
+
278
+ .selection-root {
279
+ margin-top: 26px;
280
+ display:flex;
281
+ flex-direction: column;
282
+ justify-content: center;
283
+ align-items: center;
284
+ margin-bottom: 20px;
285
+ }
286
+
287
+ .border-button {
288
+ margin-top:10px;
289
+ padding: 0 10px;
290
+ width: max-content;
291
+ height: 21px;
292
+ text-align: center;
293
+ line-height: 17px;
294
+ background: #FFFFFF;
295
+ border-radius: 11px;
296
+ font-size: 12px;
297
+ border: 2px solid #D1D3D4;
298
+ cursor: pointer;
299
+ }
300
+ </style>