zhangjq
2026-01-28 6912a54615823236cac3e44444145384a622cce6
修复bug和和改动布局还有合同统计信息
21个文件已修改
609 ■■■■ 已修改文件
src/settings/componentSetting.ts 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/ContractCW/Contract.data.ts 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/ContractCW/ContractList.vue 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/contract/Contract.data.ts 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/contract/ContractList.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/contractDL/Contract.data.ts 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/contractDL/ContractList.vue 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/copywritingReview/Copywriting.data.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/copywritingReview/CopywritingList.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datacabin/SemanticWordCountChart.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datacabin/index.vue 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/page/desc/detailCW/index.vue 160 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/ranking/rankingOff/RankingOff.data.ts 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/ranking/rankingOff/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/ranking/rankingOn/RankingOn.data.ts 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/ranking/rankingOn/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/semanticword/SemanticWord.data.ts 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/semanticword/SemanticWordList.vue 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/semanticwordFP/SemanticWord.data.ts 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/semanticwordFP/SemanticWordList.vue 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/semanticwordPD/SemanticWordList.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/settings/componentSetting.ts
@@ -70,7 +70,8 @@
      sm: { span: 18 },
    },
    //表单默认冒号
    colon: true,
    colon: false,
  },
};
src/views/ContractCW/Contract.data.ts
@@ -54,31 +54,31 @@
];
//查询数据
export const searchFormSchema: FormSchema[] = [
    {
      label: "客户名称",
      field: "customerName",
      component: 'JInput',
      //colProps: {span: 6},
     },
  {
    label: "客户名称",
    field: "customerName",
    component: 'Input',
    componentProps: {
      style: { width: '160px' } // 增加宽度,确保标签显示完整
    },
  },
  {
    label: "代理商名称",
    field: "agentsName",
    component: 'JInput',
    //colProps: {span: 6},
    component: 'Input',
    componentProps: {
      style: { width: '160px' } // 增加宽度,确保标签显示完整
    },
  },
    {
      label: "审核状态",
      field: "reviewStatus",
      component: 'JDictSelectTag',
      componentProps:{
        options: [
          { label: '待审核', value: '1' },
          { label: '已驳回', value: '2' },
          { label: '已通过', value: '3' },
        ]
      },
      //colProps: {span: 6},
     },
  {
    label: "审核状态",
    field: "reviewStatus",
    component: 'JDictSelectTag',
    componentProps:{
      dictCode: "yuyici_status",
      style: { width: '140px'} // 增加宽度,确保标签显示完整
    },
  },
];
//表单数据
export const formSchema: FormSchema[] = [
src/views/ContractCW/ContractList.vue
@@ -131,14 +131,30 @@
      api: list,
      columns,
      canResize: true,
      formConfig: {
        //labelWidth: 120,
        schemas: searchFormSchema,
        autoSubmitOnEnter: true,
        showAdvancedButton: true,
        fieldMapToNumber: [],
        fieldMapToTime: [],
      },
     formConfig: {
  labelWidth: 90, // 设置标签宽度,确保标签显示完整
  schemas: searchFormSchema,
  autoSubmitOnEnter: true,
  showAdvancedButton: true,
  fieldMapToNumber: [],
  fieldMapToTime: [],
  compact: true, // 启用紧凑模式
  baseColProps: {
    xs: 24,
    sm: 4,
    md: 4,
    lg: 4,
    xl: 4,
    xxl: 4,
  },
  rowProps: {
    gutter: 8,
  },
  actionColOptions: {
    span: 8,
    style: { textAlign: 'left' },
  },
},
      actionColumn: {
        width: 180,
        fixed: 'right',
@@ -410,9 +426,17 @@
<style lang="less" scoped>
  :deep(.ant-picker),
  :deep(.ant-input-number) {
    width: 100%;
    width: 100%;}
     :deep(.ant-form) {
    text-align: left !important;
  }
  // 确保搜索项左对齐
  :deep(.ant-row) {
    justify-content: flex-start !important;
  }
  .contract-select-modal {
    .contract-file-card {
      cursor: pointer;
src/views/contract/Contract.data.ts
@@ -46,33 +46,21 @@
];
//查询数据
export const searchFormSchema: FormSchema[] = [
    {
{
    label: "客户名称",
    field: "customerName",
    component: 'Input',
    componentProps: {
      style: { width: '150px' }
    },
    colProps: {
      span: 6,
      style: { marginRight: '-125px' }
    },
     },
    {
  },
  {
    label: "合作月",
    field: "month",
    component: 'Input',
    componentProps: {
      type: 'number',
      placeholder: '请输入合作月(正整数)',
      style: { width: '150px' }
    },
    colProps: {
      span: 6,
      style: { marginRight: '-125px' }
    },
    },
    {
  },
  {
    label: "加急类型",
    field: "emergencyStatus",
    component: 'Select',
@@ -81,26 +69,16 @@
        { label: '正常', value: 3 },
        { label: '紧急', value: 1 },
      ],
      style: { width: '150px'}
    },
    colProps: {
      span: 6,
      style: { marginRight: '-125px' }
    },
    },
    {
  },
  {
    label: "审核状态",
    field: "reviewStatus",
    component: 'JDictSelectTag',
    componentProps:{
      dictCode:"yuyici_status",
      style: { width: '150px'}
    },
    colProps: {
      span: 6,
      style: { marginRight: '-125px' }
    },
     },
  },
];
//表单数据
export const formSchema: FormSchema[] = [
src/views/contract/ContractList.vue
@@ -268,6 +268,22 @@
        autoAdvancedCol: 4,
        fieldMapToNumber: [],
        fieldMapToTime: [],
        compact: true,
        baseColProps: {
          xs: 24,
          sm: 4,
          md: 4,
          lg: 4,
          xl: 4,
          xxl: 4,
        },
        rowProps: {
          gutter: 8,
        },
        actionColOptions: {
          span: 8,
          style: { textAlign: 'left' },
        },
      },
      actionColumn: {
        width: 180,
src/views/contractDL/Contract.data.ts
@@ -62,6 +62,9 @@
      label: "代理商名称",
      field: "agentsName",
      component: 'JInput',
      componentProps: {
      style: { width: '180px' } // 增加宽度,确保文字显示完整
    },
      //colProps: {span: 6},
    },
    {
@@ -75,7 +78,7 @@
            { label: '已驳回', value: '2' },
            { label: '已通过', value: '3' },
          ],
          style: { width: '150px'}
          style: { width: '180px'}
      },
      //colProps: {span: 6},
    },
src/views/contractDL/ContractList.vue
@@ -269,13 +269,30 @@
      canResize: true,
      immediate: false, // 禁用立即加载,等待角色查询完成后再加载
      formConfig: {
        //labelWidth: 120,
        schemas: searchFormSchema,
        autoSubmitOnEnter: true,
        showAdvancedButton: true,
        fieldMapToNumber: [],
        fieldMapToTime: [],
      },
  //labelWidth: 120,
  schemas: searchFormSchema,
  autoSubmitOnEnter: true,
  showAdvancedButton: true,
  fieldMapToNumber: [],
  fieldMapToTime: [],
  // 布局配置
  compact: true, // 启用紧凑模式
  baseColProps: {
    xs: 24,
    sm: 4,
    md: 4,
    lg: 4,
    xl: 4,
    xxl: 4,
  },
  rowProps: {
    gutter: 8,
  },
  actionColOptions: {
    span: 8,
    style: { textAlign: 'left' },
  },
},
      actionColumn: {
        width: 180,
        fixed: 'right',
src/views/copywritingReview/Copywriting.data.ts
@@ -56,7 +56,7 @@
          dictCode:"wa_status"
      },
      //colProps: {span: 6},
     },
      },
];
//表单数据
export const formSchema: FormSchema[] = [
src/views/copywritingReview/CopywritingList.vue
@@ -110,6 +110,10 @@
        showAdvancedButton: true,
        fieldMapToNumber: [],
        fieldMapToTime: [],
        actionColOptions: {
          span: 6,
          style: { textAlign: 'left' },
        },
      },
      actionColumn: {
        width: 120,
src/views/datacabin/SemanticWordCountChart.vue
@@ -1,7 +1,5 @@
<template>
  <div class="chart-container">
    <h2 class="section-title" style="font-size: 20px; font-weight: bold; margin-left: 60px; color: black;">签约语义词数量概览
    </h2>
    <div ref="chartRef" class="echart"></div>
  </div>
</template>
src/views/datacabin/index.vue
@@ -5,7 +5,7 @@
      <div class="overview-item">
        <div class="item-icon" style="background: #e8f3ff; color: #165dff;">合</div>
        <div class="item-content">
          <div class="item-num">1459 份</div>
          <div class="item-num">{{ isLoadingStats ? '加载中...' : contractCount }} 份</div>
          <div class="item-text">合同总数</div>
        </div>
      </div>
@@ -13,7 +13,7 @@
      <div class="overview-item">
        <div class="item-icon" style="background: #f3efff; color: #722ed1;">企</div>
        <div class="item-content">
          <div class="item-num">14596 家</div>
          <div class="item-num">{{ isLoadingStats ? '加载中...' : customerCount }} 家</div>
          <div class="item-text">合作企业总数</div>
        </div>
      </div>
@@ -21,7 +21,7 @@
      <div class="overview-item">
        <div class="item-icon" style="background: #fff5e8; color: #ff7d00;">语</div>
        <div class="item-content">
          <div class="item-num">14596 条</div>
          <div class="item-num">{{ isLoadingStats ? '加载中...' : semanticWordCount }} 条</div>
          <div class="item-text">语义总量</div>
        </div>
      </div>
@@ -29,7 +29,7 @@
      <div class="overview-item">
        <div class="item-icon" style="background: #e8fff2; color: #00b42a;">文</div>
        <div class="item-content">
          <div class="item-num">14596 篇</div>
          <div class="item-num">{{ isLoadingStats ? '加载中...' : copywritingCount }} 篇</div>
          <div class="item-text">发送门户文章总量</div>
        </div>
      </div>
@@ -37,7 +37,7 @@
      <div class="overview-item">
        <div class="item-icon" style="background: #e8f3ff; color: #165dff;">词</div>
        <div class="item-content">
          <div class="item-num">20 分</div>
          <div class="item-num">{{ avgRankTime }}</div>
          <div class="item-text">平均上词时间</div>
        </div>
      </div>
@@ -104,7 +104,10 @@
          </div>
        </div>
      </div>
      <div class="attention-z">
    </div>
    <div class="attention-z">
      <h2 class="section-title" style="font-size: 20px; font-weight: bold; margin-left: 60px; color: black;">签约语义词数量概览</h2>
      <div ref="semanticChartContainer" style="margin: 0 20px 20px 20px; padding: 16px; border: 1px solid #e9ecef; border-radius: 20px; background: white;">
        <SemanticWordCountChart />
      </div>
    </div>
@@ -286,7 +289,13 @@
const tabs = ref(['deepseek', '豆包', '文小言', '元宝', '通义', 'kimi']);
// const tab2 = ref(['deepseek', '豆包', '文小言']);
const currentTab = ref('deepseek');
// 统计数据
const contractCount = ref(0);
const customerCount = ref(0);
const semanticWordCount = ref(0);
const copywritingCount = ref(0);
const avgRankTime = ref('5 分');
const isLoadingStats = ref(false);
// 合同到期数据
const contractExpiringData = ref<
  Array<{
@@ -938,11 +947,52 @@
  });
}
// 获取统计数据
const fetchStatistics = async () => {
  isLoadingStats.value = true;
  try {
    const userInfo = userStore.getUserInfo;
    const userId = userInfo?.id;
    if (!userId) {
      console.warn('未获取到用户ID,无法获取统计数据');
      return;
    }
    // 准备参数
    const params = {
      user: userId,
      role: userInfo?.roleId || ''
    };
    // 并行调用所有统计接口
    const [contractRes, customerRes, semanticWordRes, copywritingRes] = await Promise.all([
      defHttp.get({ url: '/contract/contract/count', params }),
      defHttp.get({ url: '/customer/customer/count', params }),
      defHttp.get({ url: '/semanticword/semanticWord/count', params }),
      defHttp.get({ url: '/copywriting/copywriting/count', params })
    ]);
    // 更新统计数据
    contractCount.value = contractRes || 0;
    customerCount.value = customerRes || 0;
    semanticWordCount.value = semanticWordRes || 0;
    copywritingCount.value = copywritingRes || 0;
    avgRankTime.value = '5 分'; // 固定为5分钟
  } catch (error) {
    console.error('获取统计数据失败:', error);
  } finally {
    isLoadingStats.value = false;
  }
};
// 页面加载时初始化数据
onMounted(async () => {
  // 先检查用户角色
  await checkIsCustomer();
  // 获取统计数据
  await fetchStatistics();
  // 如果是客户,不显示卡片区域,关闭加载状态(虽然不会显示,但保持状态一致)
  if (isCustomer.value) {
    // 客户用户只加载表格数据,不加载卡片数据
src/views/demo/page/desc/detailCW/index.vue
@@ -220,6 +220,24 @@
              const customerData = result;
              // 填充表单数据
              Object.assign(formData, customerData);
              // 确保 customer 对象存在
              if (!formData.customer && customerData.customerName) {
                // 如果没有 customer 对象但有 customerName,尝试从其他接口获取客户信息
                try {
                  const customerResult = await defHttp.get({
                    url: '/customer/customer/list',
                    params: { customerName: customerData.customerName },
                  });
                  console.log('客户信息数据:', customerResult);
                  if (customerResult && customerResult.records && customerResult.records.length > 0) {
                    formData.customer = customerResult.records[0];
                  }
                } catch (customerError) {
                  console.error('加载客户信息失败:', customerError);
                }
              }
              // 确保 emergencyStatus 正确设置(1=紧急,3=正常)
              const emergencyStatus = Number(customerData.emergencyStatus);
              if (emergencyStatus === 1 || emergencyStatus === 3) {
@@ -248,40 +266,128 @@
      // 加载合同文件数据
      const loadContractFiles = async (id: string) => {
        try {
          const result = await defHttp.get({
            url: '/contract/contract/queryContractFileByMainId',
            params: { id },
          });
          console.log('合同文件数据:', result);
          // 这里可以根据返回的数据结构处理合同文件
          if (result && Array.isArray(result)) {
            // 根据 fileType 区分合同文件和附件
            const contractFileList: any[] = [];
            const attachmentFileList: any[] = [];
            result.forEach((file: any, index: number) => {
              const url = file.appendixFile || file.url;
              if (!url) {
                return;
          // 尝试多个接口获取合同文件信息
          const [fileResult1, fileResult2] = await Promise.allSettled([
            // 接口1: 专门的合同文件查询接口
            defHttp.get({
              url: '/contract/contract/queryContractFileByMainId',
              params: { id },
            }),
            // 接口2: 合同列表接口
            defHttp.get({
              url: '/contract/contract/list',
              params: { id },
            })
          ]);
          console.log('合同文件接口1结果:', fileResult1);
          console.log('合同文件接口2结果:', fileResult2);
          const contractFileList: any[] = [];
          const attachmentFileList: any[] = [];
          // 处理接口1结果
          if (fileResult1.status === 'fulfilled' && fileResult1.value) {
            const result = fileResult1.value;
            if (result && Array.isArray(result)) {
              result.forEach((file: any, index: number) => {
                // 尝试不同的字段名获取文件URL
                const url = file.appendixFile || file.url || file.fileUrl || file.filePath || file.path;
                if (!url) {
                  return;
                }
                const fileItem = {
                  uid: file.id || file.uid || `${Date.now()}-${index}`,
                  name: file.fileName || file.name || file.originalFilename || getFileName(url),
                  url,
                  fileType: file.fileType || file.type,
                };
                if (fileItem.fileType === '合同文件') {
                  contractFileList.push(fileItem);
                } else if (fileItem.fileType === '合同附件') {
                  attachmentFileList.push(fileItem);
                } else {
                  // 如果没有 fileType,根据文件名称判断
                  const fileName = fileItem.name.toLowerCase();
                  if (fileName.includes('合同') || fileName.includes('contract')) {
                    contractFileList.push(fileItem);
                  } else {
                    attachmentFileList.push(fileItem);
                  }
                }
              });
            }
          }
          // 处理接口2结果
          if (fileResult2.status === 'fulfilled' && fileResult2.value) {
            const result = fileResult2.value;
            if (result && result.records && result.records.length > 0) {
              const contractRecord = result.records[0];
              // 处理合同文件列表
              if (contractRecord.contractFileList) {
                const fileList = Array.isArray(contractRecord.contractFileList) ? contractRecord.contractFileList : [];
                fileList.forEach((file: any, index: number) => {
                  const url = file.url || file.fileUrl || file.filePath || file.path;
                  if (!url) {
                    return;
                  }
                  const fileItem = {
                    uid: file.id || file.uid || `${Date.now()}-${index}`,
                    name: file.fileName || file.name || file.originalFilename || getFileName(url),
                    url,
                    fileType: file.fileType || file.type,
                  };
                  if (fileItem.fileType === '合同文件') {
                    contractFileList.push(fileItem);
                  } else if (fileItem.fileType === '合同附件') {
                    attachmentFileList.push(fileItem);
                  } else {
                    const fileName = fileItem.name.toLowerCase();
                    if (fileName.includes('合同') || fileName.includes('contract')) {
                      contractFileList.push(fileItem);
                    } else {
                      attachmentFileList.push(fileItem);
                    }
                  }
                });
              }
              const fileItem = {
                uid: file.id || `${Date.now()}-${index}`,
                name: file.fileName || getFileName(url),
                url,
                fileType: file.fileType,
              };
              if (file.fileType === '合同文件') {
              // 处理单个合同文件
              if (contractRecord.contractFile) {
                const url = contractRecord.contractFile;
                const fileItem = {
                  uid: `contract-file-${Date.now()}`,
                  name: '合同文件.pdf',
                  url,
                  fileType: '合同文件',
                };
                contractFileList.push(fileItem);
              } else if (file.fileType === '合同附件') {
              }
              // 处理单个附件
              if (contractRecord.attachment) {
                const url = contractRecord.attachment;
                const fileItem = {
                  uid: `attachment-${Date.now()}`,
                  name: '附件.pdf',
                  url,
                  fileType: '合同附件',
                };
                attachmentFileList.push(fileItem);
              }
            });
            contractFiles.value = contractFileList;
            attachmentFiles.value = attachmentFileList;
            }
          }
          console.log('最终合同文件列表:', contractFileList);
          console.log('最终附件列表:', attachmentFileList);
          contractFiles.value = contractFileList;
          attachmentFiles.value = attachmentFileList;
        } catch (error) {
          console.error('加载合同文件失败:', error);
          message.error('加载合同文件失败');
        }
      };
src/views/ranking/rankingOff/RankingOff.data.ts
@@ -39,7 +39,7 @@
  {
    title: '编辑人',
    align: 'center',
    dataIndex: 'changer',
    dataIndex: 'createBy',
    width: 120,
  },
  {
@@ -56,7 +56,6 @@
    label: '请输入关键词',
    field: 'keyword',
    component: 'Input',
    colProps: { span: 6 },
    componentProps: {
      placeholder: '语义词 / 标题',
    },
@@ -65,7 +64,6 @@
    label: '开始时间',
    field: 'startTime',
    component: 'DatePicker',
    colProps: { span: 6 },
    componentProps: {
      valueFormat: 'YYYY-MM-DD',
    },
@@ -74,11 +72,26 @@
    label: '结束时间',
    field: 'endTime',
    component: 'DatePicker',
    colProps: { span: 6 },
    componentProps: {
      valueFormat: 'YYYY-MM-DD',
    },
  },
];
// 表单布局配置
export const formLayoutConfig = {
  compact: true,
  baseColProps: {
    xs: 24,
    sm: 6,
    md: 6,
    lg: 6,
    xl: 6,
    xxl: 6,
  },
  rowProps: {
    gutter: 8,
  },
};
src/views/ranking/rankingOff/index.vue
@@ -14,7 +14,7 @@
  import { reactive } from 'vue';
  import { BasicTable } from '/@/components/Table';
  import { useListPage } from '/@/hooks/system/useListPage';
  import { columns, searchFormSchema } from './RankingOff.data';
  import { columns, searchFormSchema, formLayoutConfig } from './RankingOff.data';
  // 使用 semanticWord 列表接口
  import { list as semanticWordList, getExportUrl, getImportUrl } from '/@/views/semanticword/SemanticWord.api';
  import { getDateByPicker } from '/@/utils';
@@ -40,9 +40,10 @@
        autoSubmitOnEnter: true,
        showAdvancedButton: false,
        showActionButtonGroup: true,
        ...formLayoutConfig,
        actionColOptions: {
          span: 6,
          style: { textAlign: 'right' },
          style: { textAlign: 'left' },
        },
      },
      beforeFetch: (params) => {
src/views/ranking/rankingOn/RankingOn.data.ts
@@ -39,7 +39,7 @@
  {
    title: '编辑人',
    align: 'center',
    dataIndex: 'changer',
    dataIndex: 'createBy',
    width: 120,
  },
  {
@@ -56,7 +56,6 @@
    label: '请输入关键词',
    field: 'keyword',
    component: 'Input',
    colProps: { span: 6 },
    componentProps: {
      placeholder: '语义词 / 标题',
    },
@@ -65,7 +64,6 @@
    label: '开始时间',
    field: 'startTime',
    component: 'DatePicker',
    colProps: { span: 6 },
    componentProps: {
      valueFormat: 'YYYY-MM-DD',
    },
@@ -74,11 +72,26 @@
    label: '结束时间',
    field: 'endTime',
    component: 'DatePicker',
    colProps: { span: 6 },
    componentProps: {
      valueFormat: 'YYYY-MM-DD',
    },
  },
];
// 表单布局配置
export const formLayoutConfig = {
  compact: true,
  baseColProps: {
    xs: 24,
    sm: 6,
    md: 6,
    lg: 6,
    xl: 6,
    xxl: 6,
  },
  rowProps: {
    gutter: 8,
  },
};
src/views/ranking/rankingOn/index.vue
@@ -15,7 +15,7 @@
  import { reactive } from 'vue';
  import { BasicTable } from '/@/components/Table';
  import { useListPage } from '/@/hooks/system/useListPage';
  import { columns, searchFormSchema } from './RankingOn.data';
  import { columns, searchFormSchema, formLayoutConfig } from './RankingOn.data';
  // 使用 semanticWord 列表接口
  import { list as semanticWordList, getExportUrl, getImportUrl } from '/@/views/semanticword/SemanticWord.api';
  import { getDateByPicker } from '/@/utils';
@@ -41,9 +41,10 @@
        autoSubmitOnEnter: true,
        showAdvancedButton: false,
        showActionButtonGroup: true,
        ...formLayoutConfig,
        actionColOptions: {
          span: 6,
          style: { textAlign: 'right' },
          style: { textAlign: 'left' },
        },
      },
      beforeFetch: (params) => {
src/views/semanticword/SemanticWord.data.ts
@@ -44,14 +44,20 @@
      label: "语义词",
      field: 'word',
      component: 'JInput',
      componentProps: {
        style: { width: '220px' } // 增加宽度,确保文字显示完整
      },
      //colProps: {span: 6},
     },
      },
    {
      label: "露出词",
      field: 'outWord',
      component: 'JInput',
      componentProps: {
        style: { width: '220px' } // 增加宽度,确保文字显示完整
      },
      //colProps: {span: 6},
     },
      },
    {
      label: "状态",
      field: 'status',
@@ -63,10 +69,11 @@
            { label: '已通过', value: '3' },
            { label: '已驳回', value: '2' },
            { label: '已上词', value: '5' },
          ]
          ],
          style: { width: '180px' } // 增加宽度,确保文字显示完整
      },
      //colProps: {span: 6},
     },
      },
    // {
  //     label: "文案编辑",
  //     field: 'changer',
@@ -75,7 +82,7 @@
  //         dictCode:"sys_user,realname,id"
  //     },
  //     //colProps: {span: 6},
     // },
      // },
];
//表单数据
export const formSchema: FormSchema[] = [
src/views/semanticword/SemanticWordList.vue
@@ -156,6 +156,22 @@
        showAdvancedButton: true,
        fieldMapToNumber: [],
        fieldMapToTime: [],
        compact: true, // 启用紧凑模式
        baseColProps: {
          xs: 24,
          sm: 6,
          md: 6,
          lg: 6,
          xl: 6,
          xxl: 6,
        },
        rowProps: {
          gutter: 8,
        },
        actionColOptions: {
          span: 8,
          style: { textAlign: 'left', marginLeft: '0px' },
        },
      },
      beforeFetch: (params) => {
        if (params && fieldPickers) {
@@ -293,4 +309,39 @@
    align-items: center;
    gap: 20px;
  }
  /* 更具体的样式选择器,确保搜索表单更靠左 */
  :deep(.basic-table) {
    padding-left: 0 !important;
  }
  :deep(.basic-table-search) {
    margin-left: 0 !important;
    padding-left: 0 !important;
  }
  :deep(.ant-form) {
    margin-left: 0 !important;
    padding-left: 0 !important;
    width: 100%;
  }
  :deep(.ant-row) {
    margin-left: 0 !important;
    width: 100%;
    justify-content: flex-start !important;
  }
  :deep(.ant-form-item) {
    margin-right: 16px !important;
    margin-left: 0 !important;
  }
  :deep(.ant-form-item-label) {
    padding-right: 8px !important;
  }
  :deep(.ant-form-item-control) {
    min-width: 180px;
  }
</style>
src/views/semanticwordFP/SemanticWord.data.ts
@@ -54,8 +54,11 @@
      label: "语义词",
      field: 'word',
      component: 'JInput',
      componentProps: {
        style: { width: '200px' } // 适当宽度,确保文字显示完整
      },
      //colProps: {span: 6},
     },
      },
  {
    label: "状态",
    field: 'status',
@@ -64,7 +67,8 @@
      options: [
        { label: '待分配', value: '1' },
        { label: '已分配', value: '7' },
      ]
      ],
      style: { width: '200px' } // 适当宽度,确保文字显示完整
     },
  },
    // {
@@ -74,10 +78,11 @@
  //     componentProps:{
  //         dictCode:"sys_user,realname,id",
  //         dictUrl: "/sys/user/userRoleList",
  //         dictQueryParam: {roleId: ROLE_ID_COPY_EDITOR}
  //         dictQueryParam: {roleId: ROLE_ID_COPY_EDITOR},
  //         style: { width: '200px' } // 适当宽度,确保文字显示完整
  //     },
  //     //colProps: {span: 6},
     // },
  //     },
];
//表单数据
export const formSchema: FormSchema[] = [
src/views/semanticwordFP/SemanticWordList.vue
@@ -79,6 +79,22 @@
        showAdvancedButton: true,
        fieldMapToNumber: [],
        fieldMapToTime: [],
        compact: true, // 启用紧凑模式
        baseColProps: {
          xs: 24,
          sm: 6,
          md: 6,
          lg: 6,
          xl: 6,
          xxl: 6,
        },
        rowProps: {
          gutter: 8,
        },
        actionColOptions: {
          span: 8,
          style: { textAlign: 'left' },
        },
      },
      actionColumn: {
        width: 150,
@@ -260,4 +276,39 @@
      }
    }
  }
  /* 更具体的样式选择器,确保搜索表单更靠左 */
  :deep(.basic-table) {
    padding-left: 0 !important;
  }
  :deep(.basic-table-search) {
    margin-left: 0 !important;
    padding-left: 0 !important;
  }
  :deep(.ant-form) {
    margin-left: 0 !important;
    padding-left: 0 !important;
    width: 100%;
  }
  :deep(.ant-row) {
    margin-left: 0 !important;
    width: 100%;
    justify-content: flex-start !important;
  }
  :deep(.ant-form-item) {
    margin-right: 16px !important;
    margin-left: 0 !important;
  }
  :deep(.ant-form-item-label) {
    padding-right: 8px !important;
  }
  :deep(.ant-form-item-control) {
    min-width: 180px;
  }
</style>
src/views/semanticwordPD/SemanticWordList.vue
@@ -84,6 +84,22 @@
        showAdvancedButton: true,
        fieldMapToNumber: [],
        fieldMapToTime: [],
        compact: true, // 启用紧凑模式
        baseColProps: {
          xs: 24,
          sm: 6,
          md: 6,
          lg: 6,
          xl: 6,
          xxl: 6,
        },
        rowProps: {
          gutter: 8,
        },
        actionColOptions: {
          span: 8,
          style: { textAlign: 'left' },
        },
      },
      actionColumn: {
        width: 120,