| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432 |
- <template>
- <div class="examine-container">
- <div class="left-container">
- <template v-for="source in sourceTypes" :key="source.SERVICETYPE">
- <div class="soure-item-row" :class="{ active: current === source.SERVICETYPE }" @click="selectHandle(source)">
- {{ `${source.name}(` }}<span :id="'scsh' + source.SERVICETYPE">{{ 0 }}</span>)
- </div>
- </template>
- </div>
- <div class="right-container">
- <BasicTable @register="registerTable" @fetch-success="onFetchSuccess">
- <template #toolbar>
- <!-- <Authority>
- <a-button type="primary" @click="batchExamine" :disabled="hasBatchDelete">批量审核</a-button>
- </Authority> -->
- </template>
- <template #action="{ record }">
- <TableAction :actions="[
- {
- label: '浏览',
- ifShow: current == 'DR' ? false : true,
- onClick: handleVliew.bind(null, record),
- },
- {
- label: '查看',
- onClick: handleDetail.bind(null, record),
- },
- {
- label: '审核',
- disabled: statusShow == 1 ? false : true,
- color: 'warning',
- onClick: handleEdit.bind(null, record),
- },
- ]" />
- </template>
- <template #pdate="{ record }">
- <a-tag :color="'red'">
- {{ record.publishdate ? moment(record.publishdate).format('YYYY-MM-DD HH:mm:ss') : '' }}
- </a-tag>
- </template>
- <template #FLOWNAME="{ record }">
- {{ record.FLOWNAME.replace('上传', '') }}
- </template>
- <template #ISPASS="{ record }">
- <a-tag
- :style="`color:${record.ISPASS == '1' ? 'green' : 'red'};opacity:${(record.ISPASS === '1' || record.ISPASS === '0') ? '1' : '0'};`">
- {{
- record.ISPASS == '1' ? '通过' : record.ISPASS == '0' ? '不通过' : ''
- }}
- </a-tag>
- </template>
- <template #status="{ record }">
- <a-tag :style="`color:${record.status === 3 || record.status === 3 ? 'red' : ''};`">
- {{
- !record.status ? '待审核' : record.status == 2 ? '审核不通过' : record.status ? '审核通过' : ''
- }}
- </a-tag>
- </template>
- <template #BLZT="{ record }">
- <a-tag :style="`color:${record.status === 3 || record.status === 3 ? 'red' : ''};`">
- {{
- record.BLZT
- }}
- </a-tag>
- </template>
- <!-- <template #ISPASS="{ record }">
- {{
- record.ISPASS == '1' ? '同意' : record.ISPASS == '0' ? '不同意' : ''
- }}
- </template> -->
- </BasicTable>
- <!-- <check v-if="ischect" @register="registerModal" @success="handleSuccess" />
- <map-resource-upload v-if="!ischect && current === 'MR'" @register="registerModal"
- @success="handleSuccess"></map-resource-upload>
- <scene-resource-upload v-if="!ischect && current === 'ER'" @register="registerModal"
- @success="handleSuccess"></scene-resource-upload>
- <file-resource-upload v-if="!ischect && current === 'DR'" @register="registerModal"
- @success="handleSuccess"></file-resource-upload>
- <ass-resource-upload v-if="!ischect && current === 'SR'" @register="registerModal"
- @success="handleSuccess"></ass-resource-upload> -->
- <map-resource-upload v-if="current === 'MR'" @register="registerModal"
- @success="handleSuccess"></map-resource-upload>
- <scene-resource-upload v-if="current === 'ER'" @register="registerModal"
- @success="handleSuccess"></scene-resource-upload>
- <file-resource-upload v-if="current === 'DR'" @register="registerModal"
- @success="handleSuccess"></file-resource-upload>
- <ass-resource-upload v-if="current === 'SR'" @register="registerModal"
- @success="handleSuccess"></ass-resource-upload>
- </div>
- </div>
- </template>
- <script lang="ts">
- import { defineComponent, nextTick, ref, watch } from 'vue';
- import { BasicTable, useTable, TableAction } from '/@/components/Table';
- import { delRole, setRoleStatus } from '/@/api/system/system';
- import MapResourceUpload from '/@/views/dataAdmin/dataAdmin/mapUpload/MapSourceModal.vue';
- import FileResourceUpload from '/@/views/dataAdmin/dataAdmin/fileResourceUpload/AddMethod.vue';
- import SceneResourceUpload from '/@/views/dataAdmin/dataAdmin/sceneResourceUpload/AddMethod.vue';
- import AssResourceUpload from '/@/views/dataAdmin/assembly/MapSourceModal.vue';
- import check from './check.vue';
- import { getFileUrl } from '/@/api/resource/files';
- import { session } from '/@/utils/Memory.js';
- import {
- columns,
- searchFormSchemaMR,
- searchFormSchemaER,
- searchFormSchemaDR,
- searchFormSchemaSR,
- } from './map.data';
- import { RoleEnum } from '/@/enums/roleEnum';
- import { Authority } from '/@/components/Authority';
- import { useBatchDelete } from '/@/hooks/web/useBatchDelete';
- import { useMessage } from '/@/hooks/web/useMessage';
- import { Switch, Popconfirm } from 'ant-design-vue';
- import { queryResourceById } from '/@/api/resource/map';
- import Moment from 'moment';
- import { updateExamine } from '/@/api/resource/updateExamine';
- import { useModal } from '/@/components/Modal';
- import { useRouter } from 'vue-router';
- import { useAppStore } from '/@/store/modules/app';
- export default defineComponent({
- name: 'RoleManagement',
- components: {
- BasicTable,
- check,
- TableAction,
- Authority,
- Switch,
- Popconfirm,
- MapResourceUpload,
- FileResourceUpload,
- AssResourceUpload,
- SceneResourceUpload,
- },
- setup() {
- const appStore = useAppStore();
- const { currentRoute } = useRouter();
- const currRoute = currentRoute.value;
- let current = ref(currRoute?.query?.type || 'MR');
- let statusShow = ref(1);
- const [registerTable, { getSelectRows, setProps, reload, setSelectedRowKeys, getDataSource }] = useTable({
- title: '地图资源审核列表',
- api: (param) => {
- statusShow.value = param.checkStatus;
- const data = Object.assign(param, { serviceType: current.value });
- return updateExamine(data);
- }, //求接口
- //dataSource: dataSources, //表格的数据
- columns,
- rowKey: (record) => record.BUSSID,
- formConfig: {
- labelWidth: 90,
- schemas: searchFormSchemaMR,
- },
- useSearchForm: true,
- showTableSetting: true,
- bordered: true,
- showIndexColumn: true,
- actionColumn: {
- width: 200,
- title: '操作',
- dataIndex: 'action',
- slots: { customRender: 'action' },
- fixed: 'right',
- },
- pagination: {
- hideOnSinglePage: false,
- pageSize: 10,
- },
- clickToRowSelect: true, //点击当前行多选框不选中,默认是true
- rowSelection: { type: 'checkbox' }, //是否有多选功能
- tableSetting: {
- redo: true,
- size: true,
- setting: false,
- fullScreen: false,
- },
- });
- const onFetchSuccess = () => {
- // 请求后拿到数据,打开对应的资源审核弹窗
- nextTick(() => {
- let dataList = getDataSource()
- if (currRoute?.query?.bussid && appStore.routerPushAuditFlag) {
- dataList.forEach(item => {
- item.BUSSID === currRoute.query.bussid && handleEdit(item)
- })
- }
- });
- }
- const moment = Moment;
- const ischect = ref(true)
- const sourceTypes = ref([
- { SERVICETYPE: 'MR', name: '地图资源', SUM: 0 },
- { SERVICETYPE: 'ER', name: '场景资源', SUM: 0 },
- { SERVICETYPE: 'DR', name: '文件资源', SUM: 0 },
- { SERVICETYPE: 'SR', name: '组件资源', SUM: 0 },
- ]);
- const { hasBatchDelete, handleDeleteOrBatchDelete, selectionOptions, resetSelectedRowKeys } =
- useBatchDelete(delRole, handleSuccess, setProps);
- selectionOptions.rowSelection.getCheckboxProps = (record: Recordable) => {
- // Demo:status为1的选择框禁用
- // if (record.status === 1) {
- // return { disabled: true };
- // } else {
- // return { disabled: false };
- // }
- };
- const [registerModal, { openModal }] = useModal();
- watch(
- () => current.value, (val) => {
- let searchFormSchema = searchFormSchemaMR;
- let title = '地图资源审核列表';
- if (val === 'MR') {
- searchFormSchema = searchFormSchemaMR;
- title = '地图资源审核列表';
- } else if (val === 'ER') {
- searchFormSchema = searchFormSchemaER;
- title = '场景资源审核列表';
- } else if (val === 'DR') {
- searchFormSchema = searchFormSchemaDR;
- title = '文件资源审核列表';
- } else {
- searchFormSchema = searchFormSchemaSR;
- title = '组件资源审核列表';
- }
- setProps({
- title: title,
- formConfig: {
- labelWidth: 90,
- schemas: searchFormSchema,
- },
- });
- reload();
- }
- );
- nextTick(() => {
- setProps(selectionOptions);
- });
- function selectHandle(record) {
- current.value = record.SERVICETYPE;
- }
- /**
- * 详情
- */
- async function handleDetail(record: Recordable) {
- ischect.value = false;
- const res = (await queryResourceById(record?.SERVICEID)) as any;
- if (res) {
- if (res.dataVersionConf) {
- res.metadata.isnew = res.servicebase.isnew = res.dataVersionConf.active == 'Y' ? "1" : "0";
- }
- const result = Object.assign(res.metadata, res.servicebase, res.dataVersionConf || {},{bussid:record?.BUSSID});
- //if (record.bussid) res.bussid = record?.BUSSID;
- debugger
- openModal(true, {
- record: result,
- isUpdate: true,
- isView: true,
- isCheck: false,
- });
- }
- }
- /**
- * 审核
- */
- async function handleEdit(record: Recordable) {
- ischect.value = true;
- if(!record?.BUSSID) return;
- const res = (await queryResourceById(record?.SERVICEID)) as any;
- if (res) {
- if (res.dataVersionConf) {
- res.metadata.isnew = res.servicebase.isnew = res.dataVersionConf.active == 'Y' ? "1" : "0";
- }
- const result = Object.assign(res.metadata, res.servicebase, res.dataVersionConf || {},{bussid:record?.BUSSID});
- //if (record.bussid) res.bussid = record.BUSSID;
- openModal(true, {
- record: result,
- isUpdate: true,
- isView: true,
- isCheck: true,
- });
- }
- }
- /**
- * 浏览
- */
- async function handleVliew(record: Recordable) {
- //场景资源
- if (current.value === 'ER') {
- // window.open(`http://192.168.119.143:8080/onemapV5.0/sceneview.html?${record.SERVICEID}`, 'target', '');
- window.open(`./sceneview.html?${record.SERVICEID}`, 'target', '');
- }
- //地图资源
- if (current.value === 'MR') {
- // window.open(`http://192.168.119.143:8080/onemapV5.0/mapview.html?${record.SERVICEID}`, 'target', '');
- window.open(`./mapview.html?${record.SERVICEID}`, 'target', '');
- }
- //地图资源
- if (current.value === 'SR') {
- var res = (await queryResourceById(record?.SERVICEID)) as any;
- res = Object.assign(res.metadata, res.servicebase, res.dataVersionConf || {});
- if (res) {
- window.open(`./mapview.html?onlineIde_${res.servicealiasname}`, 'target', '');
- }
- }
- //文件资源
- if (current.value === 'DR') {
- const obj = {
- id: record['fileid'],
- userid: record['userid'],
- parentId: session.getItem('sysFild').dirId,
- };
- const res = (await getFileUrl(obj)) as any;
- if (res) {
- const fileName = res.fileName;
- console.log('下载文件', fileName);
- const url = res.url;
- window.open(url);
- }
- }
- if (current.value === 'DR') {
- console.log('组件');
- }
- }
- function handleSuccess() {
- openModal(false, {
- isUpdate: false,
- isCheck: false,
- });
- reload();
- }
- const statusChange = async (checked, record) => {
- setProps({
- loading: true,
- });
- setSelectedRowKeys([]);
- resetSelectedRowKeys();
- const newStatus = checked ? 1 : 0;
- const { createMessage } = useMessage();
- try {
- await setRoleStatus(record.id, newStatus);
- if (newStatus) {
- createMessage.success(`启用成功`);
- } else {
- createMessage.success('禁用成功');
- }
- } finally {
- setProps({
- loading: false,
- });
- reload();
- }
- };
- const batchExamine = () => {
- console.log('审核数据', getSelectRows());
- };
- return {
- statusShow,
- current,
- moment,
- ischect,
- sourceTypes,
- registerTable,
- registerModal,
- handleVliew,
- handleDetail,
- handleEdit,
- handleSuccess,
- RoleEnum,
- hasBatchDelete,
- handleDeleteOrBatchDelete,
- statusChange,
- batchExamine,
- selectHandle,
- onFetchSuccess
- };
- },
- });
- </script>
- <style scoped lang="less">
- .examine-container {
- display: flex;
- height: 100%;
- width: 100%;
- .left-container {
- width: 240px;
- height: calc(100% - 32px);
- margin: 16px 0 16px 10px;
- padding: 10px 20px;
- background-color: #fff;
- border-radius: 2px;
- .soure-item-row {
- height: 34px;
- width: 100%;
- margin: 20px 0;
- line-height: 34px;
- text-align: center;
- font-size: 14px;
- font-weight: normal;
- letter-spacing: 0px;
- color: #333333;
- background: #eff0f5;
- border-radius: 2px;
- cursor: pointer;
- }
- .active {
- background: #0671dd;
- color: #fff;
- }
- }
- .right-container {
- width: calc(100% - 260px);
- height: 100%;
- }
- }
- </style>
|