doctor-admin-components 1.0.13-beta.21 → 1.0.13-beta.22

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 (26) hide show
  1. package/package.json +1 -1
  2. package/packages/index.js +4 -0
  3. package/packages/src/api/biz/bizContract.js +967 -4
  4. package/packages/src/assets/images/more.png +0 -0
  5. package/packages/src/assets/images/pdf-new.png +0 -0
  6. package/packages/src/components/FileUpload/contract-drag-new.vue +82 -8
  7. package/packages/src/i18n/en/message.json +259 -0
  8. package/packages/src/i18n/index.js +38 -0
  9. package/packages/src/i18n/zh-CN/message.json +259 -0
  10. package/packages/src/utils/index.js +1 -0
  11. 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
  12. package/packages/src/views/biz/bizFileInfo/contract copy.vue +1711 -0
  13. package/packages/src/views/biz/bizFileInfo/contract.vue +1232 -974
  14. package/packages/src/views/biz/bizFileInfo/contractFile/BillOfLadingNoTab.vue +114 -0
  15. package/packages/src/views/biz/bizFileInfo/contractFile/ContentTitle.vue +102 -0
  16. package/packages/src/views/biz/bizFileInfo/contractFile/IMGPreviewCheckBox.vue +235 -0
  17. package/packages/src/views/biz/bizFileInfo/contractFile/Progress.vue +84 -0
  18. package/packages/src/views/biz/bizFileInfo/contractFile/ProgressDetail.vue +122 -0
  19. package/packages/src/views/biz/bizFileInfo/contractFile/SectionSlot.vue +83 -0
  20. package/packages/src/views/biz/bizFileInfo/fileShow copy.vue +321 -0
  21. package/packages/src/views/biz/bizFileInfo/fileShow.vue +114 -37
  22. package/packages/src/views/biz/bizFileInfo/fileShowClaim.vue +1 -1
  23. package/packages/src/views/biz/bizShipment/add.vue +6 -8
  24. package/packages/src/views/biz/contractTracing/contractTracingDetail copy.vue +107 -0
  25. package/packages/src/views/biz/contractTracing/contractTracingDetail.vue +202 -8
  26. package/packages/src/views/biz/contractTracing/shipmentPurchaseAmount.vue +1 -1
@@ -0,0 +1,83 @@
1
+ <!--
2
+ * @Author: zhangpengwei@1338418459736990.onaliyun.com zhangpengwei@1338418459736990.onaliyun.com
3
+ * @Date: 2024-02-22 13:50:20
4
+ * @LastEditors: zhangpengwei@1338418459736990.onaliyun.com zhangpengwei@1338418459736990.onaliyun.com
5
+ * @LastEditTime: 2024-02-22 14:59:52
6
+ * @FilePath: /doctor-admin-components 公共组件/packages/src/views/biz/bizFileInfo/contractFile/SectionSlot.vue
7
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
8
+ -->
9
+ <template>
10
+ <div>
11
+ <div>
12
+ <slot name="header"></slot>
13
+ </div>
14
+ <div class="slot-content-root" :style="{backgroundColor:info.bgcolor}">
15
+ <div :style="open ? 'height:max-content' : 'height:0;overflow:hidden'">
16
+ <slot name="content"></slot>
17
+ </div>
18
+ <div class="arrow" @click="open = !open">
19
+ <i v-if="open" class="el-icon-arrow-up"></i>
20
+ <i v-else class="el-icon-arrow-down"></i>
21
+ </div>
22
+ </div>
23
+
24
+ </div>
25
+ </template>
26
+
27
+ <script>
28
+ export default {
29
+ name: 'DoctorAdminComponentsSectionSlot',
30
+ props: {
31
+ infoPro: {
32
+ type: Object,
33
+ default: () => {
34
+ return {};
35
+ },
36
+ },
37
+ },
38
+ data() {
39
+ return {
40
+ open:false
41
+ };
42
+ },
43
+
44
+ mounted() {
45
+
46
+ },
47
+
48
+ methods: {
49
+
50
+ },
51
+ watch: {
52
+ infoPro: {
53
+ handler (val) {
54
+ this.info = val;
55
+ },
56
+ deep: true,
57
+ immediate: true
58
+ },
59
+ }
60
+ };
61
+ </script>
62
+
63
+ <style lang="scss" scoped>
64
+
65
+ .slot-content-root {
66
+ padding-bottom:25px;
67
+ background-color: #fff;
68
+ position: relative;
69
+ .arrow {
70
+ position:absolute;
71
+ bottom:0;
72
+ text-align: center;
73
+ width:100%;
74
+ color:#fff;
75
+ cursor: pointer;
76
+ i {
77
+ font-size: 24px;
78
+ }
79
+ }
80
+
81
+ }
82
+
83
+ </style>
@@ -0,0 +1,321 @@
1
+ <template>
2
+ <div class="file-info" v-if="fileInfo.url">
3
+ <div class="main">
4
+ <el-checkbox v-if="!this.hiddenOperation" label="" @change="handleCheck">
5
+ </el-checkbox>
6
+ <div class="area">
7
+ <div class="area-info">
8
+ <div class="area-pdf" v-if="fileInfo.ext == '.pdf'"></div>
9
+ <el-image
10
+ style="width: 54px; height: 54px"
11
+ :src="fileInfo.url"
12
+ fit="contain"
13
+ :preview-src-list="[fileInfo.url]"
14
+ v-else-if="isImage(fileInfo.ext)"
15
+ ></el-image>
16
+ <div class="area-file" v-else></div>
17
+ <el-button
18
+ type="text"
19
+ size="mini"
20
+ class="ml5"
21
+ @click="openFile(fileInfo.url)"
22
+ >{{ $t("contractDetail.preview") }}</el-button
23
+ >
24
+ <el-button type="text" size="mini" @click="handleDownload">
25
+ {{ $t("contractDetail.download") }}
26
+ </el-button>
27
+ </div>
28
+ <div v-if="!this.hiddenOperation">
29
+ <el-dropdown trigger="click" @command="handleCommand">
30
+ <span class="el-dropdown-link">
31
+ {{ fileInfo.fileName }}
32
+ <i class="el-icon-arrow-down el-icon--right"></i>
33
+ </span>
34
+ <el-dropdown-menu slot="dropdown">
35
+ <el-dropdown-item command="delete">{{
36
+ $t("contractDetail.delete")
37
+ }}</el-dropdown-item>
38
+ <el-dropdown-item command="rename">重命名</el-dropdown-item>
39
+ <el-dropdown-item command="deleteAndUpload">
40
+ {{ $t("contractDetail.deleteAndUpload") }}
41
+ </el-dropdown-item>
42
+ </el-dropdown-menu>
43
+ </el-dropdown>
44
+ </div>
45
+ <div v-else style="width:120px;word-break:break-all">
46
+ {{ fileInfo.fileName }}
47
+ </div>
48
+ </div>
49
+ </div>
50
+
51
+ <!-- 添加或修改文件信息对话框 -->
52
+ <el-dialog :title="title" :visible.sync="open" width="550px" append-to-body>
53
+ <el-form ref="form" :model="form" label-width="100px">
54
+ <el-form-item :label="$t('contractDetail.fileNmae')" prop="fileName">
55
+ <el-input v-model="form.fileName" placeholder="请输入文件名" />
56
+ </el-form-item>
57
+ </el-form>
58
+ <div slot="footer" class="dialog-footer">
59
+ <el-button type="primary" @click="submitForm">{{
60
+ $t("button.confirm")
61
+ }}</el-button>
62
+ <el-button @click="cancel">{{ $t("button.cancel") }}</el-button>
63
+ </div>
64
+ </el-dialog>
65
+
66
+ <!-- 上传文件信息对话框 -->
67
+ <el-dialog
68
+ :title="title"
69
+ :visible.sync="uploadOpen"
70
+ width="550px"
71
+ append-to-body
72
+ >
73
+ <el-form ref="form" :model="uploadForm" label-width="100px">
74
+ <file-upload v-model="uploadForm.fileInfoList"> </file-upload>
75
+ </el-form>
76
+ <div slot="footer" class="dialog-footer">
77
+ <el-button type="primary" @click="submitUploadForm">{{
78
+ $t("button.confirm")
79
+ }}</el-button>
80
+ <el-button @click="cancel">{{ $t("button.cancel") }}</el-button>
81
+ </div>
82
+ </el-dialog>
83
+ </div>
84
+ </template>
85
+ <script>
86
+ import { downloadFile } from "../../../utils/request";
87
+ import {
88
+ getBizFileInfo,
89
+ delBizFileInfo,
90
+ addBizFileInfo,
91
+ updateBizFileInfo,
92
+ } from "../../../api/biz/bizFileInfo";
93
+ export default {
94
+ name: "FileShow",
95
+ props: {
96
+ // 文件信息
97
+ fileInfo: {
98
+ type: Object,
99
+ default: () => {
100
+ return {
101
+ url: "",
102
+ fileName: "",
103
+ ext: "",
104
+ };
105
+ },
106
+ },
107
+ //是否隐藏操作
108
+ hiddenOperation: {
109
+ type: Boolean,
110
+ default: false,
111
+ },
112
+ },
113
+ data() {
114
+ return {
115
+ checkedIds: [],
116
+ //是否显示上传弹出层
117
+ uploadOpen: false,
118
+ // 是否显示弹出层
119
+ open: false,
120
+ // 弹出层标题
121
+ title: "",
122
+ // 表单参数
123
+ form: {},
124
+ //上传表单
125
+ uploadForm: {},
126
+ };
127
+ },
128
+ computed: {
129
+ fileId() {
130
+ return this.fileInfo.fileId;
131
+ },
132
+ },
133
+ methods: {
134
+ // 取消按钮
135
+ cancel() {
136
+ this.open = false;
137
+ this.uploadOpen = false;
138
+ this.reset();
139
+ },
140
+ // 表单重置
141
+ reset() {
142
+ this.form = {
143
+ fileId: null,
144
+ linkId: null,
145
+ linkType: null,
146
+ fileName: null,
147
+ fileType: null,
148
+ url: null,
149
+ createTime: null,
150
+ ext: null,
151
+ };
152
+ this.uploadForm = {
153
+ fileId: null,
154
+ linkId: null,
155
+ linkType: null,
156
+ fileName: null,
157
+ fileType: null,
158
+ url: null,
159
+ createTime: null,
160
+ ext: null,
161
+ fileInfoList: [],
162
+ };
163
+ this.resetForm("form");
164
+ },
165
+ /** 提交按钮 */
166
+ submitForm() {
167
+ this.$refs["form"].validate((valid) => {
168
+ if (valid) {
169
+ if (this.form.fileId != null) {
170
+ updateBizFileInfo(this.form).then((response) => {
171
+ this.$modal.msgSuccess("修改成功");
172
+ this.open = false;
173
+ this.$emit("refresh");
174
+ });
175
+ } else {
176
+ addBizFileInfo(this.form).then((response) => {
177
+ this.$modal.msgSuccess("新增成功");
178
+ this.open = false;
179
+ this.$emit("refresh");
180
+ });
181
+ }
182
+ }
183
+ });
184
+ },
185
+ /** 修改按钮操作 */
186
+ handleUpdate(row) {
187
+ this.reset();
188
+ const fileId = row.fileId || this.ids;
189
+ getBizFileInfo(fileId).then((response) => {
190
+ this.form = response.data;
191
+ this.open = true;
192
+ this.title = "修改文件信息";
193
+ });
194
+ },
195
+ /** 删除按钮操作 */
196
+ handleDelete(row) {
197
+ const fileIds = row.fileId || this.ids;
198
+ this.$modal
199
+ .confirm("是否确认删除该文件?")
200
+ .then(function () {
201
+ return delBizFileInfo(fileIds);
202
+ })
203
+ .then(() => {
204
+ this.$emit("refresh");
205
+ this.$modal.msgSuccess("删除成功");
206
+ })
207
+ .catch(() => {});
208
+ },
209
+ submitUploadForm() {
210
+ console.log(this.uploadForm);
211
+ addBizFileInfo(this.uploadForm).then((response) => {
212
+ this.$modal.msgSuccess("上传成功");
213
+ this.uploadOpen = false;
214
+ this.$emit("refresh");
215
+ });
216
+ },
217
+ handleDeleteAndUpload(row) {
218
+ const fileId = row.fileId;
219
+ this.$modal
220
+ .confirm("是否确认删除该文件并重新上传?")
221
+ .then(function () {
222
+ return delBizFileInfo(fileId);
223
+ })
224
+ .then(() => {
225
+ this.$modal.msgSuccess("删除成功");
226
+ this.reset();
227
+ this.uploadOpen = true;
228
+ this.uploadForm = {
229
+ linkId: row.linkId,
230
+ linkType: row.linkType,
231
+ fileType: row.fileType,
232
+ };
233
+ this.title = "上传文件";
234
+ })
235
+ .catch(() => {});
236
+ },
237
+ handleCommand(command) {
238
+ switch (command) {
239
+ case "delete":
240
+ this.handleDelete(this.fileInfo);
241
+ break;
242
+ case "rename":
243
+ this.handleUpdate(this.fileInfo);
244
+ break;
245
+ case "deleteAndUpload":
246
+ this.handleDeleteAndUpload(this.fileInfo);
247
+ break;
248
+ default:
249
+ break;
250
+ }
251
+ },
252
+ isImage(ext) {
253
+ return [".jpg", ".jpeg", ".png", ".gif"].includes(ext);
254
+ },
255
+ /** 下载文件 */
256
+ handleDownload() {
257
+ // this.download(this.fileInfo.url, {}, this.fileInfo.fileName);
258
+ downloadFile(this.fileInfo.url, this.fileInfo.fileName);
259
+ },
260
+ openFile(url) {
261
+ window.open(url);
262
+ },
263
+ handleCheck(val) {
264
+ if (val) {
265
+ this.$emit("checked", this.fileInfo);
266
+ } else {
267
+ this.$emit("uncheck", this.fileInfo.fileId);
268
+ }
269
+ },
270
+ },
271
+ };
272
+ </script>
273
+ <style lang="scss" scoped>
274
+ .file-info {
275
+ width: 160px;
276
+ display: flex;
277
+ // border: 1px solid red;
278
+ .main {
279
+ display: flex;
280
+ .area {
281
+ margin-left: 5px;
282
+ width: 100%;
283
+ height: 100%;
284
+ display: block;
285
+ .area-info {
286
+ display: flex;
287
+ .area-pdf {
288
+ width: 38px;
289
+ height: 46px;
290
+ background: url("../../../assets/images/pdf.png") no-repeat center;
291
+ background-size: contain;
292
+ }
293
+ .area-file {
294
+ width: 38px;
295
+ height: 46px;
296
+ background: url("../../../assets/images/file.png") no-repeat center;
297
+ background-size: contain;
298
+ }
299
+ }
300
+ }
301
+ .filename {
302
+ width: 140px;
303
+ margin-top: 10px;
304
+ font-size: 14px;
305
+ color: #333;
306
+ text-align: left;
307
+ word-wrap: break-word;
308
+ }
309
+ }
310
+ ::v-deep .el-dropdown {
311
+ }
312
+ .el-dropdown-link {
313
+ cursor: pointer;
314
+ color: #409eff;
315
+ word-break: break-word;
316
+ }
317
+ .el-icon-arrow-down {
318
+ font-size: 12px;
319
+ }
320
+ }
321
+ </style>
@@ -1,34 +1,54 @@
1
1
  <template>
2
2
  <div class="file-info" v-if="fileInfo.url">
3
3
  <div class="main">
4
- <el-checkbox v-if="!this.hiddenOperation" label="" @change="handleCheck"> </el-checkbox>
4
+ <el-checkbox v-if="!this.hiddenOperation" label="" class="checkbox-position" @change="handleCheck" v-model="checkFlag">
5
+ </el-checkbox>
5
6
  <div class="area">
6
7
  <div class="area-info">
7
8
  <div class="area-pdf" v-if="fileInfo.ext == '.pdf'"></div>
8
9
  <el-image style="width: 54px; height: 54px" :src="fileInfo.url" fit="contain" :preview-src-list="[fileInfo.url]" v-else-if="isImage(fileInfo.ext)"></el-image>
9
10
  <div class="area-file" v-else></div>
10
- <el-button type="text" size="mini" class="ml5" @click="openFile(fileInfo.url)">{{ $t('contractDetail.preview') }}</el-button>
11
- <el-button type="text" size="mini" @click="handleDownload">
12
- {{ $t('contractDetail.download') }}
13
- </el-button>
14
- </div>
15
- <div v-if="!this.hiddenOperation">
16
- <el-dropdown trigger="click" @command="handleCommand">
17
- <span class="el-dropdown-link">
11
+ <div>
12
+ <div> {{ fileInfo.fileName }}</div>
13
+ <div class="preview-download-root">
14
+ <div
15
+ type="text"
16
+ size="mini"
17
+ class="preview-download"
18
+ @click="openFile(fileInfo.url)"
19
+ >{{ $t("contractDetail.preview") }}</div
20
+ >
21
+ <div class="preview-download" type="text" size="mini" @click="handleDownload">
22
+ {{ $t("contractDetail.download") }}
23
+ </div>
24
+ <div v-if="!this.hiddenOperation">
25
+ <el-dropdown trigger="click" @command="handleCommand">
26
+ <span class="el-dropdown-link">
27
+ <div class="more-icon"></div>
28
+ </span>
29
+
30
+ <el-dropdown-menu slot="dropdown" v-if="type == 'signContract'" >
31
+ <el-dropdown-item command="signContract">
32
+ 回签合同
33
+ </el-dropdown-item>
34
+ <el-dropdown-item command="rename">重命名</el-dropdown-item>
35
+ </el-dropdown-menu>
36
+ <el-dropdown-menu slot="dropdown" v-else >
37
+ <el-dropdown-item command="delete">{{
38
+ $t("contractDetail.delete")
39
+ }}</el-dropdown-item>
40
+ <el-dropdown-item command="rename">重命名</el-dropdown-item>
41
+ <el-dropdown-item command="deleteAndUpload">
42
+ {{ $t("contractDetail.deleteAndUpload") }}
43
+ </el-dropdown-item>
44
+ </el-dropdown-menu>
45
+ </el-dropdown>
46
+ </div>
47
+ <div v-else style="width:120px;word-break:break-all">
18
48
  {{ fileInfo.fileName }}
19
- <i class="el-icon-arrow-down el-icon--right"></i>
20
- </span>
21
- <el-dropdown-menu slot="dropdown">
22
- <el-dropdown-item command="delete">{{ $t('contractDetail.delete') }}</el-dropdown-item>
23
- <el-dropdown-item command="rename">重命名</el-dropdown-item>
24
- <el-dropdown-item command="deleteAndUpload">
25
- {{ $t('contractDetail.deleteAndUpload') }}
26
- </el-dropdown-item>
27
- </el-dropdown-menu>
28
- </el-dropdown>
29
- </div>
30
- <div v-else style="width: 120px; word-break: break-all">
31
- {{ fileInfo.fileName }}
49
+ </div>
50
+ </div>
51
+ </div>
32
52
  </div>
33
53
  </div>
34
54
  </div>
@@ -75,11 +95,21 @@ export default {
75
95
  }
76
96
  }
77
97
  },
98
+ selectFileListProp: {
99
+ type: Array,
100
+ default: () => {
101
+ return []
102
+ }
103
+ },
78
104
  //是否隐藏操作
79
105
  hiddenOperation: {
80
106
  type: Boolean,
81
- default: false
82
- }
107
+ default: false,
108
+ },
109
+ type: {
110
+ type: String,
111
+ default: '',
112
+ },
83
113
  },
84
114
  data() {
85
115
  return {
@@ -93,9 +123,10 @@ export default {
93
123
  // 表单参数
94
124
  form: {},
95
125
  //上传表单
96
- uploadForm: {}
126
+ uploadForm: {},
127
+ checkFlag: false
97
128
  }
98
- },
129
+ },
99
130
  computed: {
100
131
  fileId() {
101
132
  return this.fileInfo.fileId
@@ -207,15 +238,18 @@ export default {
207
238
  },
208
239
  handleCommand(command) {
209
240
  switch (command) {
210
- case 'delete':
211
- this.handleDelete(this.fileInfo)
212
- break
213
- case 'rename':
214
- this.handleUpdate(this.fileInfo)
215
- break
216
- case 'deleteAndUpload':
217
- this.handleDeleteAndUpload(this.fileInfo)
218
- break
241
+ case "delete":
242
+ this.handleDelete(this.fileInfo);
243
+ break;
244
+ case "rename":
245
+ this.handleUpdate(this.fileInfo);
246
+ break;
247
+ case "signContract":
248
+ this.$emit("signContract", this.fileInfo);
249
+ break;
250
+ case "deleteAndUpload":
251
+ this.handleDeleteAndUpload(this.fileInfo);
252
+ break;
219
253
  default:
220
254
  break
221
255
  }
@@ -234,20 +268,36 @@ export default {
234
268
  handleCheck(val) {
235
269
  if (val) {
236
270
  this.$emit('checked', this.fileInfo)
271
+ this.checkFlag = true
237
272
  } else {
238
273
  this.$emit('uncheck', this.fileInfo.fileId)
274
+ this.checkFlag = false
239
275
  }
240
276
  }
277
+ },
278
+ watch: {
279
+ selectFileListProp: {
280
+ handler(val) {
281
+ if(val == 0) {
282
+ this.checkFlag = false
283
+ }
284
+ },
285
+ immediate: true,
286
+ deep: true
287
+ }
241
288
  }
242
289
  }
243
290
  </script>
244
291
  <style lang="scss" scoped>
245
292
  .file-info {
246
- width: 160px;
293
+ min-width: 450px;
247
294
  display: flex;
248
295
  // border: 1px solid red;
249
296
  .main {
250
297
  display: flex;
298
+ .checkbox-position {
299
+ margin-top: 10px;
300
+ }
251
301
  .area {
252
302
  margin-left: 5px;
253
303
  width: 100%;
@@ -258,7 +308,7 @@ export default {
258
308
  .area-pdf {
259
309
  width: 38px;
260
310
  height: 46px;
261
- background: url('../../../assets/images/pdf.png') no-repeat center;
311
+ background: url("../../../assets/images/pdf-new.png") no-repeat center;
262
312
  background-size: contain;
263
313
  }
264
314
  .area-file {
@@ -267,6 +317,33 @@ export default {
267
317
  background: url('../../../assets/images/file.png') no-repeat center;
268
318
  background-size: contain;
269
319
  }
320
+ .more-icon {
321
+ margin-left:10px;
322
+ cursor: pointer;
323
+ width: 20px;
324
+ height: 20px;
325
+ background: url("../../../assets/images/more.png") no-repeat center;
326
+ background-size: contain;
327
+ }
328
+ .preview-download-root {
329
+ display:flex;
330
+ margin-top:5px;
331
+
332
+ .preview-download {
333
+ cursor: pointer;
334
+ margin-left:8px;
335
+ min-width: 45px;
336
+ width:max-content;
337
+ padding: 0 10px;
338
+ height: 21px;
339
+ text-align: center;
340
+ line-height: 17px;
341
+ background: #FFFFFF;
342
+ border-radius: 11px;
343
+ font-size:12px;
344
+ border: 2px solid #D1D3D4;
345
+ }
346
+ }
270
347
  }
271
348
  }
272
349
  .filename {
@@ -269,7 +269,7 @@ export default {
269
269
  .area-pdf {
270
270
  width: 38px;
271
271
  height: 46px;
272
- background-image: url("../../../assets/images/pdf.png") no-repeat
272
+ background-image: url("../../../assets/images/pdf-new.png") no-repeat
273
273
  center;
274
274
  background-size: contain;
275
275
  }