diff --git a/src/router/index.js b/src/router/index.js index cdb15d0..214eadc 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -89,6 +89,48 @@ export const constantRoutes = [ // 动态路由,基于用户权限动态去加载 export const dynamicRoutes = [ + { + path: '/supplier/detailPage', + component: Layout, + hidden: true, + permissions: ['supplier:detail'], + children: [ + { + path: ':supplierId(\\d+)', + component: () => import('@/views/supplier/linkSupplerDetail'), + name: 'linkSupplerDetail', + meta: { title: '供应商详情', activeMenu: '/supplier' } + } + ] + }, + { + path: '/supplier/formPage', + component: Layout, + hidden: true, + permissions: ['supplier:update'], + children: [ + { + path: ':supplierId(\\d+)', + component: () => import('@/views/supplier/linkSupplierForm'), + name: 'linkSupplierForm', + meta: { title: '供应商表单', activeMenu: '/supplier' } + } + ] + }, + { + path: '/mediaLibrary/formPage', + component: Layout, + hidden: true, + permissions: ['mediaLibrary:update'], + children: [ + { + path: ':mediaId(\\d+)', + component: () => import('@/views/mediaLibrary/linkMediaForm'), + name: 'linkMediaForm', + meta: { title: '媒体表单', activeMenu: '/mediaLibrary' } + } + ] + }, // { // path: '/supplierForm', // component: Layout, diff --git a/src/views/index.vue b/src/views/index.vue index 62459c4..8de1d04 100644 --- a/src/views/index.vue +++ b/src/views/index.vue @@ -51,7 +51,8 @@ @@ -114,7 +115,11 @@ const handleGoMediaMap = () => { const handleGoSupplierManage = () => { router.push('/supplier') } - +// 通知跳转 +const handleGoFormManage = (businessId, businessType) => { + if (businessType == 1) router.push('/supplier/formPage/' + businessId) + if (businessType == 2) router.push('/mediaLibrary/formPage/' + businessId) +} // 打开媒体库管理 const handleGoMediaLibary = () => { router.push('/mediaLibrary') diff --git a/src/views/mediaLibrary/exportDialog.vue b/src/views/mediaLibrary/exportDialog.vue index b87ac73..81bb6e1 100644 --- a/src/views/mediaLibrary/exportDialog.vue +++ b/src/views/mediaLibrary/exportDialog.vue @@ -72,6 +72,7 @@ import { mediaExcelBaseField, mediaExcelPriceField, exportMediaExcel } from "@/a const exportTitle = ref('导出') const exportOpen = ref(false) const activeName = ref('first') +const curDeptIds = ref(null) // 导出提交信息 const exportForm = ref({ @@ -86,6 +87,7 @@ const baseFieldCheckAll = ref(false) const baseFieldIsIndeterminate = ref(true) // 基础字段 const baseFields = ref([]) +const _baseFields = ref(null) // 已选择的基础字段 const checkedBaseFields = ref([]) @@ -94,6 +96,7 @@ const priceFieldCheckAll = ref(false) const priceFieldIsIndeterminate = ref(true) // 报价字段 const priceFields = ref([]) +const _priceFields = ref(null) // 已选择的报价字段 const checkedPriceFields = ref([]) @@ -181,18 +184,44 @@ const getCurrentTime = () => { // 获取基础信息字段 const getMediaExcelBaseField = () => { mediaExcelBaseField().then(res => { - baseFields.value = res.data + if (curDeptIds.value && curDeptIds.value.length == 2) baseFields.value = res.data + else if (curDeptIds.value && curDeptIds.value.length == 1) { + if (curDeptIds.value[0] == '219') { + // 网络媒体 + _baseFields.value = "媒体名称,媒体类型,媒体大类,展示形式,省,市,区,镇,商圈,地址,经度,纬度,状态,废除原因, 部门" + } else { + _baseFields.value = "媒体名称,媒体类型,媒体大类,展示形式,是否照明,播放时间,媒体尺寸,mr,日均车流量,媒体朝向,省,市,区,镇,商圈,地址,经度,纬度,最小购买周期,首次制作安装费,换刊制作安装费,状态,废除原因, 部门" + } + baseFields.value = [...new Set( // 去重 + res.data.filter(item => _baseFields.value.includes(item.displayName)) + )]; + } }) } // 获取报价信息字段 const getMediaExcelPriceField = () => { mediaExcelPriceField().then(res => { - priceFields.value = res.data + if (curDeptIds.value && curDeptIds.value.length == 2) priceFields.value = res.data + else if (curDeptIds.value && curDeptIds.value.length == 1) { + if (curDeptIds.value[0] == '219') { + // 网络媒体 + _priceFields.value = "年份,媒体大类,实际购买频次,是否框内,制作成本,供应商,项目名称" + priceFields.value = [...new Set( // 去重 + res.data.filter(item => !_priceFields.value.includes(item.displayName)) + )]; + } else { + _priceFields.value = "年份,城市/市场,媒体大类,媒体名称,频次,刊例价,刊例价单位,实际购买频次,实际购买刊例价,购买周期,折扣,媒体总净价,总制作费,总净价,单日覆盖人流量,SOV,CPM,备注,是否框内,成本,制作成本,供应商,项目名称" + priceFields.value = [...new Set( // 去重 + res.data.filter(item => _priceFields.value.includes(item.displayName)) + )]; + } + } }) } // 初始化 -const initExportExcel = (_mediaIds) => { +const initExportExcel = (_mediaIds, _curDeptIds) => { exportForm.value.ids = _mediaIds + curDeptIds.value = _curDeptIds exportOpen.value = true getMediaExcelBaseField() getMediaExcelPriceField() diff --git a/src/views/mediaLibrary/index.vue b/src/views/mediaLibrary/index.vue index 4b89dce..0438636 100644 --- a/src/views/mediaLibrary/index.vue +++ b/src/views/mediaLibrary/index.vue @@ -606,7 +606,8 @@ const handleExportExcel = () => { return false } const mediaIds = multipleChoseArr.value.map(item => item.id); - exportDialogRef.value.initExportExcel(mediaIds) + const uniqueDeptIds = [...new Set(multipleChoseArr.value.map(item => item.dataScopeDeptId))]; + exportDialogRef.value.initExportExcel(mediaIds, uniqueDeptIds) } /** 导出PPT按钮操作 */ const handleExportPPT = (tempId) => { diff --git a/src/views/mediaLibrary/linkMediaForm.vue b/src/views/mediaLibrary/linkMediaForm.vue new file mode 100644 index 0000000..96f20dd --- /dev/null +++ b/src/views/mediaLibrary/linkMediaForm.vue @@ -0,0 +1,26 @@ + + \ No newline at end of file diff --git a/src/views/mediaLibrary/mediaDetail.vue b/src/views/mediaLibrary/mediaDetail.vue index 84f269e..896d8ff 100644 --- a/src/views/mediaLibrary/mediaDetail.vue +++ b/src/views/mediaLibrary/mediaDetail.vue @@ -91,11 +91,22 @@
- + {{ detailForm.mediaOrientation }} + + + + + {{ detailForm.belongSupplierName }} + + +
@@ -182,7 +193,7 @@ - {{ detailForm.belongSupplierName }} + {{ detailForm.belongName }} @@ -459,10 +470,9 @@ import highSpeedRailway from './components/highSpeedRailway.vue' import officeBuilding from './components/officeBuilding.vue' import garageLightBox from './components/garageLightBox.vue' import supplierDetailFile from '../../components/FileUpload/supplierDetailFile.vue'; -import { useBackgroundStore } from '@/store/modules/background' -import otherbg from '@/assets/images/otherbg.png' -const bgStore = useBackgroundStore() +import { useRouter } from 'vue-router' +const router = useRouter() const { proxy } = getCurrentInstance() const emit = defineEmits(['handleShowList']); // 详情参数 @@ -599,6 +609,10 @@ const getMediaInfo = () => { }) } +// 打开供应商详情 +const handleOpenSupplierDetail = (supplierId) => { + router.push('/supplier/detailPage/' + supplierId) +} const initForm = (_ruleForm) => { detailForm.value = _ruleForm if (detailForm.value.id) getMediaInfo() diff --git a/src/views/mediaLibrary/mediaForm.vue b/src/views/mediaLibrary/mediaForm.vue index 93c9889..4c7239b 100644 --- a/src/views/mediaLibrary/mediaForm.vue +++ b/src/views/mediaLibrary/mediaForm.vue @@ -35,6 +35,36 @@ + + + + + + + + @@ -149,16 +179,6 @@