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,116 @@
1
+ <!--
2
+ * @Author: zhangpengwei@1338418459736990.onaliyun.com zhangpengwei@1338418459736990.onaliyun.com
3
+ * @Date: 2024-03-13 14:28:59
4
+ * @LastEditors: zhangpengwei@1338418459736990.onaliyun.com zhangpengwei@1338418459736990.onaliyun.com
5
+ * @LastEditTime: 2024-06-05 13:54:37
6
+ * @FilePath: /doctor-admin-components 公共组件/packages/src/views/biz/bizFileInfo/contractFile/BillOfLadingNoTab.vue
7
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
8
+ -->
9
+ <template>
10
+ <div class="bill-no-root" :style="open ? 'height:max-content': ''">
11
+ <div :class="'bill-no'" :style="shipmentIndex == shipBillNo ? { color:'white', fontSize: '16px', backgroundColor: progressInfo.bgcolor, border: '0' } : { color: '#231F20', fontSize: '14px', border: '1px solid #231F20', backgroundColor:'transparent' }" v-for="(
12
+ shipmentFileInfo, shipmentIndex
13
+ ) in contractFileInfoData.shipmentFileInfoList" :key="shipmentIndex" @click="changeShipBillNo(shipmentIndex)">
14
+
15
+ {{ $t('contractDetail.BL_No') }} {{ shipmentFileInfo.billOfLadingNo
16
+ ? shipmentFileInfo.billOfLadingNo
17
+ : '' }} <span v-if="shipmentFileInfo.voidStatus == 1"> ( {{ $t('contract.Voided') }} )</span>
18
+ </div>
19
+ <div class="billOfLadingNo-more" v-if="contractFileInfoData.shipmentFileInfoList && contractFileInfoData.shipmentFileInfoList.length > 4" @click.stop="openFun">
20
+ <!-- <div class="billOfLadingNo-more" @click.stop="openFun"> -->
21
+ <i v-if="open" class="el-icon-caret-top"></i>
22
+ <i v-else class="el-icon-caret-bottom"></i>
23
+ </div>
24
+ </div>
25
+ </template>
26
+
27
+ <script>
28
+ export default {
29
+ name: 'BillOfLadingNoTab',
30
+ props: {
31
+ contractFileInfo: {
32
+ type: Object,
33
+ default: () => {}
34
+ },
35
+ shipBillNoProp: {
36
+ type: String | Number,
37
+ default: ''
38
+ },
39
+ progressInfo: {
40
+ type: Object,
41
+ default: () => {}
42
+ }
43
+ },
44
+ data() {
45
+ return {
46
+ open: false,
47
+ shipBillNo:0,
48
+ contractFileInfoData: {}
49
+ }
50
+ },
51
+ methods: {
52
+ openFun () {
53
+ this.open = !this.open
54
+ },
55
+ changeShipBillNo(index) {
56
+ this.$emit('changeShipBillNo', index)
57
+ }
58
+ },
59
+ watch: {
60
+ shipBillNoProp: {
61
+ handler(val) {
62
+ this.shipBillNo = val
63
+ console.log('shipBillNoProp', val);
64
+ },
65
+ immediate: true,
66
+ deep: true
67
+ },
68
+ contractFileInfo: {
69
+ handler(val) {
70
+ this.contractFileInfoData = val
71
+ },
72
+ immediate: true,
73
+ deep: true
74
+ }
75
+ },
76
+ }
77
+
78
+ </script>
79
+
80
+ <style lang="scss" scoped>
81
+ .bill-no-root {
82
+ display: flex;
83
+ flex-wrap: wrap;
84
+ width:100%;
85
+ position:relative;
86
+ height:55px;
87
+ overflow:hidden;
88
+
89
+ .billOfLadingNo-more {
90
+ width:20px;
91
+ height:30px;
92
+ position:absolute;
93
+ right:0;
94
+ top:15px;
95
+ background-color: #999;
96
+ text-align: center;
97
+ line-height: 30px;
98
+ }
99
+
100
+ .bill-no {
101
+ font-size: 14px;
102
+ color: #231F20;
103
+ padding: 0 10px;
104
+ height: 40px;
105
+ align-content: center;
106
+ border-radius: 8px;
107
+ margin-right: 30px;
108
+ margin-bottom: 15px;
109
+ }
110
+
111
+ .bill-no-active {
112
+ color: #4DA9EB;
113
+ }
114
+ }
115
+
116
+ </style>
@@ -0,0 +1,102 @@
1
+ <!--
2
+ * @Author: zhangpengwei@1338418459736990.onaliyun.com zhangpengwei@1338418459736990.onaliyun.com
3
+ * @Date: 2024-02-23 16:17:11
4
+ * @LastEditors: zhangpengwei@1338418459736990.onaliyun.com zhangpengwei@1338418459736990.onaliyun.com
5
+ * @LastEditTime: 2024-04-10 09:42:22
6
+ * @FilePath: /doctor-admin-components 公共组件/packages/src/views/biz/bizFileInfo/contractFile/ContentTitle.vue
7
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
8
+ -->
9
+ <template>
10
+ <div class="content-title">
11
+ <div class="bg-button-success" v-if="successFlag">
12
+ <i class="el-icon-success success"></i>
13
+ {{ contentTitleInfo.bgButton }}
14
+ </div>
15
+ <div class="bg-button" v-else :style="{backgroundColor:contentTitleInfo.bgcolor}">{{ contentTitleInfo.bgButton }}</div>
16
+ <div class="bg-time" v-if="contentTitleInfo.bgTime">{{ contentTitleInfo.bgTime }} {{ $t('contractDetail.upload') }}</div>
17
+ </div>
18
+ </template>
19
+
20
+ <script>
21
+ export default {
22
+ name: 'DoctorAdminComponentsContentTitle',
23
+ props: {
24
+ contentTitleProp: {
25
+ type: Object,
26
+ default: {}
27
+ },
28
+ successFlag: {
29
+ type: Boolean,
30
+ default: false
31
+ }
32
+ },
33
+ data() {
34
+ return {
35
+ contentTitleInfo: {}
36
+ };
37
+ },
38
+
39
+ mounted() {
40
+
41
+ },
42
+
43
+ methods: {
44
+
45
+ },
46
+ watch: {
47
+ contentTitleProp: {
48
+ handler: function (val) {
49
+ this.contentTitleInfo = val;
50
+ },
51
+ deep: true,
52
+ immediate: true
53
+ }
54
+
55
+ }
56
+ };
57
+ </script>
58
+
59
+ <style lang="scss" scoped>
60
+ .content-title {
61
+ display: flex;
62
+ align-items: center;
63
+ margin: 20px 0;
64
+ width: max-content;
65
+ max-width: max-content;
66
+ .bg-button {
67
+ min-width: 69px;
68
+ width:max-content;
69
+ height: 21px;
70
+ line-height: 21px;
71
+ text-align: center;
72
+ padding: 0 10px;
73
+ background-color: #FBB040;
74
+ border-radius: 10px;
75
+ font-size: 14px;
76
+ margin-right:20px;
77
+ }
78
+ .bg-button-success {
79
+ min-width: 69px;
80
+ width:max-content;
81
+ height: 21px;
82
+ line-height: 21px;
83
+ text-align: center;
84
+ // padding: 0 10px;
85
+ font-size: 14px;
86
+ margin-right:20px;
87
+ }
88
+ .bg-time {
89
+ color: #939598;
90
+ line-height: 12px;
91
+ text-align: left;
92
+ font-size: 14px;
93
+ margin-right:20px;
94
+ }
95
+ }
96
+
97
+ .success {
98
+ color: #67C23A;
99
+ font-size:15px;
100
+ }
101
+
102
+ </style>
@@ -0,0 +1,324 @@
1
+ <!--
2
+ * @Author: zhangpengwei@1338418459736990.onaliyun.com zhangpengwei@1338418459736990.onaliyun.com
3
+ * @Date: 2024-02-26 10:03:01
4
+ * @LastEditors: zhangpengwei@1338418459736990.onaliyun.com zhangpengwei@1338418459736990.onaliyun.com
5
+ * @LastEditTime: 2024-07-25 18:37:49
6
+ * @FilePath: /doctor-admin-components 公共组件/packages/src/views/biz/bizFileInfo/IMGPreviewCheckBox.vue
7
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
8
+ -->
9
+ <template>
10
+ <div class="img-preview-root">
11
+ <div class="img-preview" :style="open ? 'height:max-content' : ''">
12
+ <slot></slot>
13
+ <div class="img-block" v-for="(fit, key) in imgList" :key="key" @click.stop="previewFile(fit)">
14
+ <video v-if="isVideo(fit.url)" :src="fit.url" style="width: 100px; height: 100px;margin-left:10px;"
15
+ controls
16
+ muted="true">
17
+ </video>
18
+ <el-image
19
+ v-else
20
+ style="width: 100px; height: 100px;object-fit:cover;"
21
+ :src="othersFile(fit.url)"
22
+ :preview-src-list="srcList">
23
+ </el-image>
24
+ <i :class="['checkbox-size', 'el-checkbox__input', fit.checked ? 'is-checked' : '']" @click.stop="checkClick(key)">
25
+ <i class="el-checkbox__inner"></i>
26
+ </i>
27
+ <i @click.stop="downloadSingleFile(fit)" class="el-icon-download download-icon"/>
28
+ <i @click.stop="delteFile(fit.fileId)" class="el-icon-close download-delete"/>
29
+ </div>
30
+ <div class="billOfLadingNo-more" @click.stop="openFun" v-if="imgList && imgList.length > 7">
31
+ <i v-if="open" class="el-icon-caret-top"></i>
32
+ <i v-else class="el-icon-caret-bottom"></i>
33
+ </div>
34
+ </div>
35
+ <div class="batch-download" v-show="showDownloadIcon" @click.stop="downLoadFile">批量下载</div>
36
+ <div class="batch-download batch-delete" v-show="showDownloadIcon" @click.stop="deleteAll">批量删除</div>
37
+ </div>
38
+ </template>
39
+
40
+ <script>
41
+ import JSZip from 'jszip';
42
+ import { saveAs } from 'file-saver';
43
+ import { isImage, isVideo, isDoc, isPdf, isZip, isXls, isPpt } from '../../../../utils/index';
44
+ import { Loading } from 'element-ui';
45
+ import { delBizFileInfo } from '../../../../api/biz/bizFileInfo';
46
+
47
+
48
+ export default {
49
+ name: 'IMGPreviewCheckBox',
50
+ props: {
51
+ imgArr: {
52
+ type: Array,
53
+ default: () => []
54
+ },
55
+ info: {
56
+ type: Object,
57
+ default: () => {}
58
+ }
59
+ },
60
+ data() {
61
+ return {
62
+ isVideo,
63
+ open: false,
64
+ imgList: [],
65
+ srcList:[],
66
+ loadingInstance: null,
67
+ timer: null,
68
+ hasClicked: false,
69
+ };
70
+ },
71
+
72
+ mounted() {
73
+
74
+ },
75
+
76
+ methods: {
77
+ delteFile(fileId) {
78
+ delBizFileInfo(fileId).then(() => {
79
+ this.$message.success('删除成功')
80
+ this.$emit('refresh')
81
+ })
82
+ },
83
+ previewFile(file) {
84
+ if (!(isImage(file.url) || isVideo(file.url))) {
85
+ window.open(file.url);
86
+ }
87
+ },
88
+ checkClick(index) {
89
+ this.imgList[index].checked = !this.imgList[index].checked;
90
+ },
91
+ clickSelectAll() {
92
+ this.hasClicked = !this.hasClicked
93
+ if (this.hasClicked) {
94
+ this.checkAll1()
95
+ } else {
96
+ this.cancelAll1()
97
+ }
98
+ },
99
+ hasSelectAll() {
100
+ return !this.hasClicked
101
+ },
102
+ checkAll1() {
103
+ this.imgList.forEach((item) => {
104
+ item.checked = true;
105
+ });
106
+ },
107
+ cancelAll1() {
108
+ this.imgList.forEach((item) => {
109
+ item.checked = false;
110
+ });
111
+ },
112
+ // 文件名称
113
+ extractFileName() {
114
+ return 'loading photos-' + this.info.containerNo + '/container ' + this.info?.containerId + '/ Dated ' + this.$moment(new Date().getTime()).format('YYYY-MM-DD')
115
+ },
116
+ /**
117
+ * @description: 下载一个文件
118
+ * @param {*} file
119
+ * @return {*}
120
+ */
121
+ downloadSingleFile(file) {
122
+ this.loadingInstance = Loading.service({
123
+ text: this.$t('contractDetail.loading'),
124
+ spinner: 'el-icon-loading',
125
+ background: 'rgba(0, 0, 0, 0.7)',
126
+ });
127
+ // 从URL中提取文件名
128
+ const fileName = this.extractFileName();
129
+ // 如果是zip文件,重新命名为当前时间戳,否则使用原文件名
130
+ const newName = /\.zip$/i.test(fileName) ? fileName + '.zip' : fileName;
131
+ saveAs(file.url, newName);
132
+ this.loadingInstance.close();
133
+ },
134
+ /**
135
+ * @description: 文件下载
136
+ * @return {*}
137
+ */
138
+ async downLoadFile () {
139
+ this.loadingInstance = Loading.service({
140
+ text: this.$t('contractDetail.loading'),
141
+ spinner: 'el-icon-loading',
142
+ background: 'rgba(0, 0, 0, 0.7)',
143
+ });
144
+ // test
145
+ let files = this.imgList.filter(item => item.checked)
146
+
147
+ if (files.length === 1) {
148
+ // 如果只有一个文件且该文件是图片/视频,直接下载
149
+ this.downloadSingleFile(files[0]);
150
+ } else {
151
+ // 创建一个ZIP包,但只添加图片文件
152
+ const zip = new JSZip();
153
+ for (let file of files) {
154
+ const fileData = await fetch(file.url).then(response => {
155
+ if (!response.ok) throw new Error('Network response was not ok');
156
+ return response.blob();
157
+ });
158
+ // 从URL中提取文件名
159
+ const fileName = file.url.split('/').pop();
160
+ zip.file(fileName, fileData, { binary: true });
161
+ }
162
+ if (Object.keys(zip.files).length > 0) {
163
+ zip.generateAsync({ type: 'blob' }).then(content => {
164
+ const fileName = this.extractFileName();
165
+ saveAs(content, fileName + '.zip');
166
+ }).
167
+ finally(() => {
168
+ this.timer =setTimeout(() => {
169
+ this.loadingInstance.close();
170
+ }, 1500);
171
+ })
172
+ } else {
173
+ alert("没有文件可下载");
174
+ }
175
+ }
176
+ this.cancelAll1()
177
+ },
178
+ async deleteAll () {
179
+ let files = this.imgList.filter(item => item.checked)
180
+ files.length && await delBizFileInfo(files.map(item => item.fileId)).then(() => {
181
+ this.$message.success('删除成功')
182
+ this.$emit('refresh')
183
+ })
184
+ },
185
+ openFun () {
186
+ this.open = !this.open
187
+ },
188
+ othersFile(imgUrl) {
189
+ if(isDoc(imgUrl)) {
190
+ return 'https://s3.cdn.doctorscrap.com/dev/user/image_13/1ed150dc6171450d81a5e1f7b4e1253f.png'
191
+ } else if(isPdf(imgUrl)) {
192
+ return 'https://s3.cdn.doctorscrap.com/dev/user/image_13/5a4b66e220794c0b8284f0a8204aac3e.png'
193
+ } else if(isZip(imgUrl)) {
194
+ return 'https://s3.cdn.doctorscrap.com/dev/user/image_13/470eeab01eec430e9ed0edd81d15ace5.png'
195
+ } else if(isXls(imgUrl)) {
196
+ return 'https://s3.cdn.doctorscrap.com/dev/user/image_13/caaa343a68684216be1a4d3b27d40a9d.png'
197
+ } else if(isPpt(imgUrl)) {
198
+ return 'https://s3.cdn.doctorscrap.com/dev/user/image_13/b0590840eceb4162a8c07119ef2fe245.png'
199
+ } else {
200
+ return imgUrl
201
+ }
202
+ }
203
+ },
204
+ watch: {
205
+ imgArr: {
206
+ handler(val) {
207
+ this.imgList = [];
208
+ this.srcList = [];
209
+ if(val.length) {
210
+ val.forEach((item) => {
211
+ let coverUrl = this.othersFile(item.url)
212
+ this.imgList.push({
213
+ url: item.url,
214
+ checked: false,
215
+ fileId: item.fileId
216
+ });
217
+ this.srcList.push(coverUrl);
218
+ });
219
+ } else {
220
+ this.imgList = []
221
+ this.srcList = []
222
+ }
223
+ },
224
+ deep: true,
225
+ immediate: true
226
+ }
227
+ },
228
+ computed: {
229
+ showDownloadIcon () {
230
+ let res = this.imgList.filter(item => item.checked)
231
+ return res.length > 0
232
+ }
233
+ },
234
+ beforeDestroy() {
235
+ this.loadingInstance = null
236
+ clearTimeout(this.timer)
237
+ }
238
+ };
239
+ </script>
240
+
241
+ <style lang="scss" scoped>
242
+ .img-preview {
243
+ display:flex;
244
+ flex-wrap: wrap;
245
+ padding-right:40px;
246
+ height:110px;
247
+ overflow:hidden;
248
+ position: relative;
249
+ width:100%;
250
+ .img-block {
251
+ position: relative;
252
+ margin:0 15px 15px 0;
253
+ background-color: #666;
254
+ }
255
+ .fold-wrap {
256
+ position: absolute;
257
+ right: 0;
258
+ width: 80px;
259
+ height: 100%;
260
+ display: flex;
261
+ justify-content: center;
262
+ align-items: center;
263
+ .el-button {
264
+ margin-bottom: 20px;
265
+ }
266
+
267
+ }
268
+ }
269
+ .checkbox-size {
270
+ position:absolute;
271
+ left:0;
272
+ width:18px;
273
+ height:18px;
274
+ }
275
+ .download-icon {
276
+ position: absolute;
277
+ bottom:2px;
278
+ right:0;
279
+ background-color: #fff;
280
+ cursor: pointer;
281
+ }
282
+ .download-delete {
283
+ position: absolute;
284
+ top:1px;
285
+ right:1px;
286
+ background-color: #fff;
287
+ cursor: pointer;
288
+ }
289
+
290
+ .billOfLadingNo-more {
291
+ width:20px;
292
+ height:100px;
293
+ position:absolute;
294
+ right:0;
295
+ top:0;
296
+ background-color: #999;
297
+ text-align: center;
298
+ line-height: 100px;
299
+ }
300
+
301
+ .img-preview-root {
302
+ position: relative;
303
+ .batch-download {
304
+ position: absolute;
305
+ top: -41px;
306
+ left: 650px;
307
+ min-width: 80px;
308
+ width:max-content;
309
+ padding:0 10px;
310
+ height: 22px;
311
+ line-height: 22px;
312
+ text-align: center;
313
+ border-radius: 10px;
314
+ background-color: #54B8FF;
315
+ color: white;
316
+ cursor: pointer;
317
+ font-size:12px;
318
+ }
319
+ .batch-delete {
320
+ left: 740px;
321
+ }
322
+ }
323
+
324
+ </style>
@@ -0,0 +1,85 @@
1
+ <!--
2
+ * @Author: zhangpengwei@1338418459736990.onaliyun.com zhangpengwei@1338418459736990.onaliyun.com
3
+ * @Date: 2024-02-22 11:04:36
4
+ * @LastEditors: zhangpengwei@1338418459736990.onaliyun.com zhangpengwei@1338418459736990.onaliyun.com
5
+ * @LastEditTime: 2024-04-11 10:28:42
6
+ * @FilePath: /doctor-admin-components 公共组件/packages/src/views/biz/bizFileInfo/contractFile/Process.vue
7
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
8
+ -->
9
+ <template>
10
+ <div class="progress" :style="{backgroundColor:info.bgcolor}">
11
+ <img class="progress-img" :src="info.img" alt="">
12
+ <div class="progress-text">{{ info.text}}</div>
13
+ <div class="progress-rate">{{ info.rate }}%</div>
14
+ </div>
15
+ </template>
16
+
17
+ <script>
18
+ export default {
19
+ name: 'DoctorAdminComponentsProcess',
20
+ props: {
21
+ infoPro: {
22
+ type: Object,
23
+ default: () => {
24
+ return {};
25
+ },
26
+ },
27
+ },
28
+ data() {
29
+ return {
30
+ info:{}
31
+ };
32
+ },
33
+
34
+ mounted() {
35
+
36
+ },
37
+
38
+ methods: {
39
+
40
+ },
41
+ watch: {
42
+ infoPro: {
43
+ handler (val) {
44
+ this.info = val;
45
+ },
46
+ deep: true,
47
+ immediate: true
48
+ },
49
+ }
50
+ };
51
+ </script>
52
+
53
+ <style lang="scss" scoped>
54
+ .progress {
55
+ min-width: 130px;
56
+ height: 27px;
57
+ background: #FBB040;
58
+ display: flex;
59
+ justify-content: space-between;
60
+ align-items: center;
61
+ padding: 0 5px;
62
+ box-sizing: border-box;
63
+ margin-right:15px;
64
+ .progress-img {
65
+ width: 17px;
66
+ height: 17px;
67
+ background: #FFFFFF;
68
+ border-radius: 8px;
69
+ }
70
+ .progress-text {
71
+ font-size: 14px;
72
+ line-height:27px;
73
+ font-weight: normal;
74
+ color: #FFFFFF;
75
+ }
76
+ .progress-rate {
77
+ font-size: 14px;
78
+ font-weight: normal;
79
+ line-height:27px;
80
+ color: #231F20;
81
+ }
82
+
83
+
84
+ }
85
+ </style>