|
|
@@ -92,6 +92,20 @@
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
|
|
|
+ <!-- 新增:政策来源网站列 -->
|
|
|
+ <el-table-column label="政策来源网站" align="center" width="150">
|
|
|
+ <template v-slot="scope">
|
|
|
+ <span
|
|
|
+ v-if="getWebsiteSource(scope.row.puburl)"
|
|
|
+ :title="getFullDomain(scope.row.puburl)"
|
|
|
+ class="website-source"
|
|
|
+ >
|
|
|
+ {{ getWebsiteSource(scope.row.puburl) }}
|
|
|
+ </span>
|
|
|
+ <span v-else class="website-source-empty">-</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
<el-table-column label="沟通主题" align="center" prop="title" />
|
|
|
<el-table-column label="沟通类型" align="center" prop="submitType">
|
|
|
<template v-slot="scope">
|
|
|
@@ -271,6 +285,32 @@ export default {
|
|
|
this.getList();
|
|
|
},
|
|
|
methods: {
|
|
|
+ /** 从URL中提取主域名(用于显示) */
|
|
|
+ /** 从URL中提取完整域名(保留所有子域名) */
|
|
|
+ getWebsiteSource(url) {
|
|
|
+ if (!url) return null;
|
|
|
+
|
|
|
+ try {
|
|
|
+ // 处理没有协议的URL
|
|
|
+ let urlToParse = url;
|
|
|
+ if (!urlToParse.startsWith('http://') && !urlToParse.startsWith('https://')) {
|
|
|
+ urlToParse = 'https://' + urlToParse;
|
|
|
+ }
|
|
|
+
|
|
|
+ const urlObj = new URL(urlToParse);
|
|
|
+ // 直接返回完整的hostname,保留所有子域名(如 zsj.www.gov.cn)
|
|
|
+ return urlObj.hostname;
|
|
|
+ } catch (error) {
|
|
|
+ console.warn('解析URL失败:', url, error);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ /** 获取完整域名(用于title提示) */
|
|
|
+ /** 获取完整域名(用于title提示,直接复用getWebsiteSource) */
|
|
|
+ getFullDomain(url) {
|
|
|
+ return this.getWebsiteSource(url) || url;
|
|
|
+ },
|
|
|
/** 点击政策标题跳转 */
|
|
|
handlePolicyTitleClick(row) {
|
|
|
if (row.puburl) {
|