9372295c by lxs

数据资产登记更新

1 parent 0cb70e4f
...@@ -12,6 +12,7 @@ declare module '@vue/runtime-core' { ...@@ -12,6 +12,7 @@ declare module '@vue/runtime-core' {
12 ApprovalProcess: typeof import('./src/components/ApprovalProcess/src/ApprovalProcess.vue')['default'] 12 ApprovalProcess: typeof import('./src/components/ApprovalProcess/src/ApprovalProcess.vue')['default']
13 Auth: typeof import('./src/components/Auth/index.vue')['default'] 13 Auth: typeof import('./src/components/Auth/index.vue')['default']
14 AuthAll: typeof import('./src/components/AuthAll/index.vue')['default'] 14 AuthAll: typeof import('./src/components/AuthAll/index.vue')['default']
15 CarouselPanel: typeof import('./src/components/CarouselPanel/src/CarouselPanel.vue')['default']
15 ContentWrap: typeof import('./src/components/ContentWrap/src/ContentWrap.vue')['default'] 16 ContentWrap: typeof import('./src/components/ContentWrap/src/ContentWrap.vue')['default']
16 Copyright: typeof import('./src/components/Copyright/index.vue')['default'] 17 Copyright: typeof import('./src/components/Copyright/index.vue')['default']
17 Day: typeof import('./src/components/Schedule/component/day.vue')['default'] 18 Day: typeof import('./src/components/Schedule/component/day.vue')['default']
......
...@@ -85,8 +85,8 @@ export const getProduct = (params) => request({ ...@@ -85,8 +85,8 @@ export const getProduct = (params) => request({
85 // 查看平台会员信息 85 // 查看平台会员信息
86 export const getTenantInfo = (params) => request({ 86 export const getTenantInfo = (params) => request({
87 // url: `${import.meta.env.VITE_APP_PERSONAL_URL}/tenant/getByGuid/${params}`, 87 // url: `${import.meta.env.VITE_APP_PERSONAL_URL}/tenant/getByGuid/${params}`,
88 // url: `http://localhost:9000/circulation/ms-data-circulation-portal-service/enterprise/detail-by-name`, 88 url: `http://localhost:9000/circulation/ms-data-circulation-portal-service/enterprise/detail-by-name`,
89 url: `http://192.168.6.22:29900/circulation/ms-data-circulation-portal-service/enterprise/detail-by-name`, 89 // url: `http://192.168.6.22:29900/circulation/ms-data-circulation-portal-service/enterprise/detail-by-name`,
90 method: 'get', 90 method: 'get',
91 params 91 params
92 }) 92 })
......
1 import CarouselPanel from './src/CarouselPanel.vue'
2
3 export { CarouselPanel }
1 <script setup lang="ts">
2 import { ElCarousel, ElCarouselItem } from "element-plus";
3 import { CaretBottom, CaretRight } from "@element-plus/icons-vue";
4
5 const props = defineProps({
6 carouselInfo: {
7 type: Object,
8 default: () => { },
9 },
10 });
11
12 const emits = defineEmits(["carouselChange"]);
13
14 const carouselChange = (current: number, prev: number) => {
15 emits("carouselChange", current);
16 };
17
18 </script>
19
20 <template>
21 <el-carousel :height="carouselInfo.height ?? '150px'" :indicator-position="carouselInfo.indicatorPosition ?? 'none'"
22 :arrow="carouselInfo.arrow ?? 'hover'" :trigger="carouselInfo.trigger ?? 'hover'" :loop="carouselInfo.loop ?? true"
23 :autoplay="carouselInfo.autoplay ?? true" :initial-index="carouselInfo.initialIndex ?? 0" @change="carouselChange">
24 <el-carousel-item class="carousel-item" :class="[carouselInfo.itemClass]" v-for="(item, i) in carouselInfo.list" :key="'carousel' + i">
25 <slot :carousel="item"></slot>
26 </el-carousel-item>
27 </el-carousel>
28 </template>
29
30 <style lang="scss" scoped></style>
...@@ -617,7 +617,7 @@ const panelChange = (scope, row) => { ...@@ -617,7 +617,7 @@ const panelChange = (scope, row) => {
617 required_mark: item.required, 617 required_mark: item.required,
618 }">{{ 618 }">{{
619 item.label 619 item.label
620 }}</span> 620 }}</span>
621 621
622 </span> 622 </span>
623 <div class="header_title_tooltip" style="width: auto" v-if="item.tooltip"> 623 <div class="header_title_tooltip" style="width: auto" v-if="item.tooltip">
...@@ -710,7 +710,7 @@ const panelChange = (scope, row) => { ...@@ -710,7 +710,7 @@ const panelChange = (scope, row) => {
710 <div class="item_panel" :class="{ is_block: panel.block }" v-for="panel in item.children"> 710 <div class="item_panel" :class="{ is_block: panel.block }" v-for="panel in item.children">
711 <label :class="{ required_mark: panel.required }">{{ 711 <label :class="{ required_mark: panel.required }">{{
712 panel.label 712 panel.label
713 }}</label> 713 }}</label>
714 <el-checkbox v-if="panel.type == 'checkbox'" v-model="formInline[panel.field]" 714 <el-checkbox v-if="panel.type == 'checkbox'" v-model="formInline[panel.field]"
715 :disabled="panel.disabled || readonly" :true-label="panel.trueValue ?? true" 715 :disabled="panel.disabled || readonly" :true-label="panel.trueValue ?? true"
716 :false-label="panel.falseValue ?? false">{{ panel.placeholder }}</el-checkbox> 716 :false-label="panel.falseValue ?? false">{{ panel.placeholder }}</el-checkbox>
...@@ -793,7 +793,7 @@ const panelChange = (scope, row) => { ...@@ -793,7 +793,7 @@ const panelChange = (scope, row) => {
793 <span class="item-label" slot="label"> 793 <span class="item-label" slot="label">
794 <span v-if="child.label" :class="{ required_mark: child.required }">{{ 794 <span v-if="child.label" :class="{ required_mark: child.required }">{{
795 child.label 795 child.label
796 }}</span> 796 }}</span>
797 </span> 797 </span>
798 <el-select v-if="child.type == 'select'" v-model="formInline[child.field]" 798 <el-select v-if="child.type == 'select'" v-model="formInline[child.field]"
799 :placeholder="child.placeholder" :disabled="child.disabled || readonly" :filterable="child.filterable" 799 :placeholder="child.placeholder" :disabled="child.disabled || readonly" :filterable="child.filterable"
...@@ -852,7 +852,7 @@ const panelChange = (scope, row) => { ...@@ -852,7 +852,7 @@ const panelChange = (scope, row) => {
852 <span class="item-label" slot="label"> 852 <span class="item-label" slot="label">
853 <span :class="{ required_mark: child.required }">{{ 853 <span :class="{ required_mark: child.required }">{{
854 child.label 854 child.label
855 }}</span> 855 }}</span>
856 </span> 856 </span>
857 <el-cascader v-if="child.type == 'cascader'" v-model="formInline[child.field]" :props="child.props" 857 <el-cascader v-if="child.type == 'cascader'" v-model="formInline[child.field]" :props="child.props"
858 :options="child.options" :show-all-levels="child.showAllLevels ?? true" 858 :options="child.options" :show-all-levels="child.showAllLevels ?? true"
...@@ -895,7 +895,7 @@ const panelChange = (scope, row) => { ...@@ -895,7 +895,7 @@ const panelChange = (scope, row) => {
895 <div class="item_panel" v-for="child in item.children"> 895 <div class="item_panel" v-for="child in item.children">
896 <label :class="{ required_mark: child.required }">{{ 896 <label :class="{ required_mark: child.required }">{{
897 child.label 897 child.label
898 }}</label> 898 }}</label>
899 <div class="tool_item"> 899 <div class="tool_item">
900 <el-select v-model="formInline[child.field]" :class="{ is_block: child.block }" 900 <el-select v-model="formInline[child.field]" :class="{ is_block: child.block }"
901 :placeholder="child.placeholder" :multiple="child.multiple" :collapse-tags="child.collapse" 901 :placeholder="child.placeholder" :multiple="child.multiple" :collapse-tags="child.collapse"
...@@ -970,7 +970,7 @@ const panelChange = (scope, row) => { ...@@ -970,7 +970,7 @@ const panelChange = (scope, row) => {
970 <span class="item-label" slot="label"> 970 <span class="item-label" slot="label">
971 <span :class="{ required_mark: child.required }">{{ 971 <span :class="{ required_mark: child.required }">{{
972 child.label 972 child.label
973 }}</span> 973 }}</span>
974 </span> 974 </span>
975 <el-input :class="[child.col, { is_block: child.block }]" v-model="formInline[child.field]" 975 <el-input :class="[child.col, { is_block: child.block }]" v-model="formInline[child.field]"
976 :rows="child.rows ?? 4" type="textarea" :placeholder="child.placeholder" 976 :rows="child.rows ?? 4" type="textarea" :placeholder="child.placeholder"
...@@ -1026,7 +1026,7 @@ const panelChange = (scope, row) => { ...@@ -1026,7 +1026,7 @@ const panelChange = (scope, row) => {
1026 <span class="item-label" slot="label"> 1026 <span class="item-label" slot="label">
1027 <span :class="{ required_mark: child.required }">{{ 1027 <span :class="{ required_mark: child.required }">{{
1028 child.label 1028 child.label
1029 }}</span> 1029 }}</span>
1030 </span> 1030 </span>
1031 <div class="input_group" :class="[child.col]" v-if="child.type == 'input-group'"> 1031 <div class="input_group" :class="[child.col]" v-if="child.type == 'input-group'">
1032 <template v-for="(group, c) in child.children"> 1032 <template v-for="(group, c) in child.children">
...@@ -1035,13 +1035,14 @@ const panelChange = (scope, row) => { ...@@ -1035,13 +1035,14 @@ const panelChange = (scope, row) => {
1035 <span class="item-label" slot="label"> 1035 <span class="item-label" slot="label">
1036 <span :class="{ required_mark: group.required }">{{ 1036 <span :class="{ required_mark: group.required }">{{
1037 group.label 1037 group.label
1038 }}</span> 1038 }}</span>
1039 </span> 1039 </span>
1040 <el-select v-if="group.type == 'select'" v-model="formInline[group.field]" 1040 <el-select v-if="group.type == 'select'" v-model="formInline[group.field]"
1041 :placeholder="group.placeholder" :clearable="group.clearable" 1041 :placeholder="group.placeholder" :clearable="group.clearable"
1042 :disabled="group.disabled || readonly" :filterable="group.filterable" 1042 :disabled="group.disabled || readonly" :filterable="group.filterable"
1043 :multiple="group.multiple ?? false" :collapse-tags="group.collapse ?? false" 1043 :multiple="group.multiple ?? false" :collapse-tags="group.collapse ?? false"
1044 :collapse-tags-tooltip="group.tagsTooltip ?? false" 1044 :collapse-tags-tooltip="group.tagsTooltip ?? false" :allow-create="group.allowCreate ?? false"
1045 :default-first-option="group.allowCreate ?? false"
1045 @change="(val) => selectChange(val, group)"> 1046 @change="(val) => selectChange(val, group)">
1046 <el-option v-for="opts in group.options" 1047 <el-option v-for="opts in group.options"
1047 :label="group.props?.label ? opts[group.props.label] : opts.label" 1048 :label="group.props?.label ? opts[group.props.label] : opts.label"
...@@ -1176,7 +1177,7 @@ const panelChange = (scope, row) => { ...@@ -1176,7 +1177,7 @@ const panelChange = (scope, row) => {
1176 <span class="item-label" slot="label"> 1177 <span class="item-label" slot="label">
1177 <span :class="{ required_mark: child.required }">{{ 1178 <span :class="{ required_mark: child.required }">{{
1178 child.label 1179 child.label
1179 }}</span> 1180 }}</span>
1180 </span> 1181 </span>
1181 <el-select v-if="child.type == 'select'" v-model="formInline[child.field]" 1182 <el-select v-if="child.type == 'select'" v-model="formInline[child.field]"
1182 :placeholder="child.placeholder" :clearable="child.clearable" :disabled="child.disabled || readonly" 1183 :placeholder="child.placeholder" :clearable="child.clearable" :disabled="child.disabled || readonly"
...@@ -1227,7 +1228,7 @@ const panelChange = (scope, row) => { ...@@ -1227,7 +1228,7 @@ const panelChange = (scope, row) => {
1227 <span class="item-label" slot="label" :class="[child.col]"> 1228 <span class="item-label" slot="label" :class="[child.col]">
1228 <span :class="{ required_mark: child.required }">{{ 1229 <span :class="{ required_mark: child.required }">{{
1229 child.label 1230 child.label
1230 }}</span> 1231 }}</span>
1231 </span> 1232 </span>
1232 <div class="input_popover_panel" v-if="child.type == 'input-popover-panel'"> 1233 <div class="input_popover_panel" v-if="child.type == 'input-popover-panel'">
1233 <el-popover placement="bottom-start" width="100%" trigger="click" :teleported="false"> 1234 <el-popover placement="bottom-start" width="100%" trigger="click" :teleported="false">
...@@ -1281,7 +1282,7 @@ const panelChange = (scope, row) => { ...@@ -1281,7 +1282,7 @@ const panelChange = (scope, row) => {
1281 <span class="item-label" slot="label"> 1282 <span class="item-label" slot="label">
1282 <span :class="{ required_mark: child.required }">{{ 1283 <span :class="{ required_mark: child.required }">{{
1283 child.label 1284 child.label
1284 }}</span> 1285 }}</span>
1285 </span> 1286 </span>
1286 <template v-if="child.type == 'upload-image'"> 1287 <template v-if="child.type == 'upload-image'">
1287 <el-upload :class="[child.col, 'avatar-uploader', { is_block: child.block }]" action="#" 1288 <el-upload :class="[child.col, 'avatar-uploader', { is_block: child.block }]" action="#"
......
...@@ -12,6 +12,7 @@ declare module '@vue/runtime-core' { ...@@ -12,6 +12,7 @@ declare module '@vue/runtime-core' {
12 ApprovalProcess: typeof import('./../components/ApprovalProcess/src/ApprovalProcess.vue')['default'] 12 ApprovalProcess: typeof import('./../components/ApprovalProcess/src/ApprovalProcess.vue')['default']
13 Auth: typeof import('./../components/Auth/index.vue')['default'] 13 Auth: typeof import('./../components/Auth/index.vue')['default']
14 AuthAll: typeof import('./../components/AuthAll/index.vue')['default'] 14 AuthAll: typeof import('./../components/AuthAll/index.vue')['default']
15 CarouselPanel: typeof import('./../components/CarouselPanel/src/CarouselPanel.vue')['default']
15 ContentWrap: typeof import('./../components/ContentWrap/src/ContentWrap.vue')['default'] 16 ContentWrap: typeof import('./../components/ContentWrap/src/ContentWrap.vue')['default']
16 Copyright: typeof import('./../components/Copyright/index.vue')['default'] 17 Copyright: typeof import('./../components/Copyright/index.vue')['default']
17 Day: typeof import('./../components/Schedule/component/day.vue')['default'] 18 Day: typeof import('./../components/Schedule/component/day.vue')['default']
......
...@@ -1249,15 +1249,15 @@ const formattedDate = (dateVal) => { ...@@ -1249,15 +1249,15 @@ const formattedDate = (dateVal) => {
1249 (assetDetailInfo.updateFrequency?.includes(7) ? ((assetDetailInfo.updateFrequencyName > 1 ? ',' : '') 1249 (assetDetailInfo.updateFrequency?.includes(7) ? ((assetDetailInfo.updateFrequencyName > 1 ? ',' : '')
1250 + assetDetailInfo.updateFrequencyOther) : '')) ?? '--' }}</span> 1250 + assetDetailInfo.updateFrequencyOther) : '')) ?? '--' }}</span>
1251 </div> 1251 </div>
1252 <div class="list_item">
1253 <span class="item_label">是否完成质量评估:</span>
1254 <span class="item_value">{{ assetDetailInfo.isQualityAssessment == 'Y' ? '是' : '否' }}</span>
1255 </div>
1256 <div class="list_item" v-if="(detailType == 'asset' && assetDetailInfo.isQualityAssessment == 'Y')"> 1252 <div class="list_item" v-if="(detailType == 'asset' && assetDetailInfo.isQualityAssessment == 'Y')">
1257 <span class="item_label">质量评估机构:</span> 1253 <span class="item_label">质量评估机构:</span>
1258 <span class="item_value">{{ assetDetailInfo.registerAttachment.qualityEvaluationInstitution || '--' 1254 <span class="item_value">{{ assetDetailInfo.registerAttachment.qualityEvaluationInstitution || '--'
1259 }}</span> 1255 }}</span>
1260 </div> 1256 </div>
1257 <div class="list_item" v-else-if="assetDetailInfo.isQualityAssessment != 'Y'">
1258 <span class="item_label">是否完成质量评估:</span>
1259 <span class="item_value">{{ assetDetailInfo.isQualityAssessment == 'Y' ? '是' : '否' }}</span>
1260 </div>
1261 <div class="list_item"> 1261 <div class="list_item">
1262 <span class="item_label">病例总数():</span> 1262 <span class="item_label">病例总数():</span>
1263 <span class="item_value">{{ assetDetailInfo.caseNumber ? changeNum(assetDetailInfo.caseNumber, 0) : '--' 1263 <span class="item_value">{{ assetDetailInfo.caseNumber ? changeNum(assetDetailInfo.caseNumber, 0) : '--'
...@@ -1289,15 +1289,15 @@ const formattedDate = (dateVal) => { ...@@ -1289,15 +1289,15 @@ const formattedDate = (dateVal) => {
1289 <span class="item_value">{{ assetDetailInfo.isRegistered == 'N' ? '无' : 1289 <span class="item_value">{{ assetDetailInfo.isRegistered == 'N' ? '无' :
1290 (assetDetailInfo.registeredExchangeName?.join(',') ?? '--') }}</span> 1290 (assetDetailInfo.registeredExchangeName?.join(',') ?? '--') }}</span>
1291 </div> 1291 </div>
1292 <div class="list_item">
1293 <span class="item_label">是否完成价值评估:</span>
1294 <span class="item_value">{{ assetDetailInfo.isCostAssessment == 'Y' ? '是' : '否' }}</span>
1295 </div>
1296 <div class="list_item" v-if="(detailType == 'asset' && assetDetailInfo.isCostAssessment == 'Y')"> 1292 <div class="list_item" v-if="(detailType == 'asset' && assetDetailInfo.isCostAssessment == 'Y')">
1297 <span class="item_label">价值评估机构:</span> 1293 <span class="item_label">价值评估机构:</span>
1298 <span class="item_value">{{ assetDetailInfo.registerAttachment.costAssessmentInstitution || '--' 1294 <span class="item_value">{{ assetDetailInfo.registerAttachment.costAssessmentInstitution || '--'
1299 }}</span> 1295 }}</span>
1300 </div> 1296 </div>
1297 <div class="list_item" v-else-if="assetDetailInfo.isCostAssessment != 'Y'">
1298 <span class="item_label">是否完成价值评估:</span>
1299 <span class="item_value">{{ assetDetailInfo.isCostAssessment == 'Y' ? '是' : '否' }}</span>
1300 </div>
1301 <div class="list_item"> 1301 <div class="list_item">
1302 <span class="item_label">资产类型:</span> 1302 <span class="item_label">资产类型:</span>
1303 <span class="item_value">{{ assetDetailInfo.damTypeName || '--' }}</span> 1303 <span class="item_value">{{ assetDetailInfo.damTypeName || '--' }}</span>
...@@ -1437,7 +1437,44 @@ const formattedDate = (dateVal) => { ...@@ -1437,7 +1437,44 @@ const formattedDate = (dateVal) => {
1437 </div> 1437 </div>
1438 </span> 1438 </span>
1439 </div> 1439 </div>
1440 1440 <div class="list_item is_block isFile" :style="{ width: '40%', 'margin-right': '28px' }"
1441 v-if="detailType == 'asset' && assetDetailInfo.registerAttachment?.commitmentLetter?.length">
1442 <span class="item_label" :style="{ width: 'auto', 'text-align': 'left' }">承诺函附件</span>
1443 <span v-for="(item) in (assetDetailInfo.registerAttachment?.commitmentLetter || [])" class="item_value"
1444 :style="{ 'padding-left': '0px' }">
1445 <div class="file-operate">
1446 <template
1447 v-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'xls' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'xlsx' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'csv'">
1448 <img class="file-img" src="../../assets/images/excel.png" />
1449 </template>
1450 <template
1451 v-else-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'doc' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'docx'">
1452 <img class="file-img" src="../../assets/images/word.png" />
1453 </template>
1454 <template v-else-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'zip'">
1455 <img class="file-img" src="../../assets/images/zip.png" />
1456 </template>
1457 <template v-else-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'rar'">
1458 <img class="file-img" src="../../assets/images/RAR.png" />
1459 </template>
1460 <template v-else-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'pdf'">
1461 <img class="file-img" src="../../assets/images/PDF.png" />
1462 </template>
1463 <template v-else-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'png'">
1464 <img class="file-img" src="../../assets/images/png.png" />
1465 </template>
1466 <template
1467 v-else-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'jpg' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'jpeg'">
1468 <img class="file-img" src="../../assets/images/jpg.png" />
1469 </template>
1470 <div class="file-name">{{ item.name }}</div>
1471 <div :style="{ right: '36px' }"
1472 v-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'pdf' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'png' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'jpg' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'jpeg'"
1473 class="file-preview" @click="onUploadFilePreview(item)">查看</div>
1474 <div :style="{ right: '0px' }" class="file-preview" @click="onUploadFileDownload(item)">下载</div>
1475 </div>
1476 </span>
1477 </div>
1441 <div class="list_item is_block isFile" :style="{ width: '40%' }" 1478 <div class="list_item is_block isFile" :style="{ width: '40%' }"
1442 v-if="(detailType == 'asset' && assetDetailInfo.isQualityAssessment == 'Y') && assetDetailInfo.registerAttachment?.evaluationFile?.length"> 1479 v-if="(detailType == 'asset' && assetDetailInfo.isQualityAssessment == 'Y') && assetDetailInfo.registerAttachment?.evaluationFile?.length">
1443 <span class="item_label" :style="{ width: 'auto', 'text-align': 'left' }">质量评估报告</span> 1480 <span class="item_label" :style="{ width: 'auto', 'text-align': 'left' }">质量评估报告</span>
...@@ -1594,7 +1631,7 @@ const formattedDate = (dateVal) => { ...@@ -1594,7 +1631,7 @@ const formattedDate = (dateVal) => {
1594 </span> 1631 </span>
1595 </div> 1632 </div>
1596 <div class="list_item is_block isFile" :style="{ width: '40%', 'margin-right': '28px' }" 1633 <div class="list_item is_block isFile" :style="{ width: '40%', 'margin-right': '28px' }"
1597 v-if="assetDetailInfo.registerAttachment?.commitmentLetter?.length"> 1634 v-if="detailType !='asset' && assetDetailInfo.registerAttachment?.commitmentLetter?.length">
1598 <span class="item_label" :style="{ width: 'auto', 'text-align': 'left' }">承诺函附件</span> 1635 <span class="item_label" :style="{ width: 'auto', 'text-align': 'left' }">承诺函附件</span>
1599 <span v-for="(item) in (assetDetailInfo.registerAttachment?.commitmentLetter || [])" class="item_value" 1636 <span v-for="(item) in (assetDetailInfo.registerAttachment?.commitmentLetter || [])" class="item_value"
1600 :style="{ 'padding-left': '0px' }"> 1637 :style="{ 'padding-left': '0px' }">
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
6 import { ref } from 'vue'; 6 import { ref } from 'vue';
7 import TableTools from "@/components/Tools/table_tools.vue"; 7 import TableTools from "@/components/Tools/table_tools.vue";
8 import { ElMessage, ElMessageBox } from 'element-plus'; 8 import { ElMessage, ElMessageBox } from 'element-plus';
9 import { CarouselPanel } from '@/components/CarouselPanel';
9 import { useRouter, useRoute } from "vue-router"; 10 import { useRouter, useRoute } from "vue-router";
10 import { MoreFilled } from "@element-plus/icons-vue"; 11 import { MoreFilled } from "@element-plus/icons-vue";
11 import { changeNum, tagMethod, tagType, } from "@/utils/common"; 12 import { changeNum, tagMethod, tagType, } from "@/utils/common";
...@@ -26,6 +27,14 @@ const path = route.path; ...@@ -26,6 +27,14 @@ const path = route.path;
26 27
27 const loading = ref(false); 28 const loading = ref(false);
28 const defaultItemLogo = new URL('@/assets/images/home-finance-product.png', import.meta.url).href 29 const defaultItemLogo = new URL('@/assets/images/home-finance-product.png', import.meta.url).href
30 const carouselInfo: any = ref({
31 list: [],
32 height: '176px',
33 loop: false,
34 autoplay: false,
35 arrow: 'hover',
36 itemClass: 'list-content'
37 })
29 const exchangeList: any = ref([]); 38 const exchangeList: any = ref([]);
30 const exchangGuid = ref(''); 39 const exchangGuid = ref('');
31 const searchItemList = ref([ 40 const searchItemList = ref([
...@@ -131,18 +140,8 @@ const tableFields = ref([{ label: "序号", type: "index", width: 56, align: "ce ...@@ -131,18 +140,8 @@ const tableFields = ref([{ label: "序号", type: "index", width: 56, align: "ce
131 { label: "修改人", field: "updateUserName", width: 140 }, 140 { label: "修改人", field: "updateUserName", width: 140 },
132 { label: "修改时间", field: "updateTime", width: 180 }]); 141 { label: "修改时间", field: "updateTime", width: 180 }]);
133 142
134 /** 是否时企业端。不是企业端,则是服务端。 */
135 const isCompanyPlatform = ref(userData.tenantType == 1);
136
137 const listDataLoading = ref(false);
138
139 const activeListType = ref('list');
140
141 const listData: any = ref([]); 143 const listData: any = ref([]);
142 144
143 /** 记录点击省略号弹出菜单的visible */
144 const cardBtnVisible: any = ref(false);
145
146 const tableInfo = ref({ 145 const tableInfo = ref({
147 id: 'asset-data-table', 146 id: 'asset-data-table',
148 rowKey: 'guid', 147 rowKey: 'guid',
...@@ -343,7 +342,12 @@ const getTableData = () => { ...@@ -343,7 +342,12 @@ const getTableData = () => {
343 const getExchangeData = () => { 342 const getExchangeData = () => {
344 getExchangeList().then((res: any) => { 343 getExchangeList().then((res: any) => {
345 if (res.code == proxy.$passCode) { 344 if (res.code == proxy.$passCode) {
346 exchangeList.value = res.data || []; 345 const data = res.data || [];
346 while (data.length) {
347 exchangeList.value.push(data.splice(0, 4));
348 }
349 carouselInfo.value.list = exchangeList.value;
350 carouselInfo.value.arrow = exchangeList.value.length > 1 ? 'hover' : 'never';
347 } else { 351 } else {
348 ElMessage.error(res.msg); 352 ElMessage.error(res.msg);
349 } 353 }
...@@ -530,9 +534,10 @@ const rejectDialogBtnClick = (btn, info) => { ...@@ -530,9 +534,10 @@ const rejectDialogBtnClick = (btn, info) => {
530 <TableTools :searchItems="searchItemList" :searchId="'register-data-search'" @search="toSearch" /> 534 <TableTools :searchItems="searchItemList" :searchId="'register-data-search'" @search="toSearch" />
531 </div> 535 </div>
532 <div class="content_main_wrap"> 536 <div class="content_main_wrap">
533 <div class="list-content"> 537 <CarouselPanel :carousel-info="carouselInfo">
534 <template v-for="(item, i) in exchangeList" :key="item.exchangeGuid"> 538 <template v-slot:default="{ carousel }">
535 <div class="card-content" :class="{ active: exchangGuid == item.exchangeGuid }"> 539 <div class="card-content" v-for="(item, i) in carousel" :key="'item-' + i"
540 :class="{ active: exchangGuid == item.exchangeGuid, mr8: i < carousel.length - 1 && (i + 1) % 4 !== 0 }">
536 <div class="header"> 541 <div class="header">
537 <img class="left-img" 542 <img class="left-img"
538 :src="(item.picUrl && typeof item.picUrl == 'string') ? item.picUrl : defaultItemLogo" alt="" /> 543 :src="(item.picUrl && typeof item.picUrl == 'string') ? item.picUrl : defaultItemLogo" alt="" />
...@@ -556,9 +561,8 @@ const rejectDialogBtnClick = (btn, info) => { ...@@ -556,9 +561,8 @@ const rejectDialogBtnClick = (btn, info) => {
556 <div class="left-btn is_block" @click="btnClick({ value: 'create', ...item })">资产登记</div> 561 <div class="left-btn is_block" @click="btnClick({ value: 'create', ...item })">资产登记</div>
557 </div> 562 </div>
558 </div> 563 </div>
559 <div v-if="i < exchangeList.length - 1" class="space_partition"></div>
560 </template> 564 </template>
561 </div> 565 </CarouselPanel>
562 <div class="table_panel_wrap"> 566 <div class="table_panel_wrap">
563 <Table :tableInfo="tableInfo" @tableBtnClick="tableBtnClick" /> 567 <Table :tableInfo="tableInfo" @tableBtnClick="tableBtnClick" />
564 <PageNav :class="[pageInfo.type]" :pageInfo="pageInfo" @pageChange="pageChange" /> 568 <PageNav :class="[pageInfo.type]" :pageInfo="pageInfo" @pageChange="pageChange" />
...@@ -572,7 +576,6 @@ const rejectDialogBtnClick = (btn, info) => { ...@@ -572,7 +576,6 @@ const rejectDialogBtnClick = (btn, info) => {
572 <style scoped lang="scss"> 576 <style scoped lang="scss">
573 .container_wrap { 577 .container_wrap {
574 padding: 0 16px; 578 padding: 0 16px;
575 overflow: hidden auto;
576 579
577 .table_tool_wrap { 580 .table_tool_wrap {
578 height: 44px; 581 height: 44px;
...@@ -586,8 +589,7 @@ const rejectDialogBtnClick = (btn, info) => { ...@@ -586,8 +589,7 @@ const rejectDialogBtnClick = (btn, info) => {
586 } 589 }
587 590
588 .table_panel_wrap { 591 .table_panel_wrap {
589 flex: 1; 592 height: calc(100% - 176px);
590 height: auto;
591 } 593 }
592 } 594 }
593 595
...@@ -724,21 +726,32 @@ const rejectDialogBtnClick = (btn, info) => { ...@@ -724,21 +726,32 @@ const rejectDialogBtnClick = (btn, info) => {
724 } 726 }
725 } 727 }
726 728
729 .list-content-wrap {
730 position: relative;
731 }
732
727 .list-content { 733 .list-content {
728 display: flex; 734 width: 100%;
729 flex-wrap: wrap; 735 height: 176px;
736 overflow: hidden;
730 737
731 .card-content { 738 .card-content {
732 width: calc(25% - 6px); 739 width: calc(25% - 6px);
733 padding: 16px; 740 padding: 16px;
734 box-shadow: 0 0 0 1px #d9d9d9;
735 margin-bottom: 8px; 741 margin-bottom: 8px;
742 min-width: 325px;
736 max-width: 400px; 743 max-width: 400px;
744 border: 1px solid var(--el-border-color-regular);
745 float: left;
737 746
738 &.active { 747 &.active {
739 box-shadow: 0 0 0 1px var(--el-color-primary); 748 box-shadow: 0 0 0 1px var(--el-color-primary);
740 } 749 }
741 750
751 &.mr8 {
752 margin-right: 8px;
753 }
754
742 .header { 755 .header {
743 display: flex; 756 display: flex;
744 margin-bottom: 16px; 757 margin-bottom: 16px;
...@@ -817,9 +830,5 @@ const rejectDialogBtnClick = (btn, info) => { ...@@ -817,9 +830,5 @@ const rejectDialogBtnClick = (btn, info) => {
817 } 830 }
818 } 831 }
819 } 832 }
820
821 .space_partition {
822 width: 8px;
823 }
824 } 833 }
825 </style> 834 </style>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!