jialh
2024-12-18 b131e9bb15cd8ffe062231f43c3c2f0ae90cf844
一键企业画像表格布局
7个文件已修改
220 ■■■■ 已修改文件
src/components/main/components/user/user.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js 81 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/IntelligentAgent/allAgent.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/IntelligentAgent/chat.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/IntelligentAgent/myAgent.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/echarts/radar.vue 91 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/echarts/tree.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/main/components/user/user.vue
@@ -14,8 +14,8 @@
        <!--        <DropdownItem name="changePassword">修改密码</DropdownItem>-->
        <DropdownItem name="reportCenter">政策收藏</DropdownItem>
        <DropdownItem name="accountCash">政策推送</DropdownItem>
        <DropdownItem name="tree">公司图谱</DropdownItem>
        <DropdownItem name="radar">公司画像</DropdownItem>
        <!-- <DropdownItem name="tree">公司图谱</DropdownItem>
        <DropdownItem name="radar">公司画像</DropdownItem> -->
        <DropdownItem name="logout">安全退出</DropdownItem>
      </DropdownMenu>
    </Dropdown>
src/router/index.js
@@ -208,46 +208,47 @@
            name: 'login'
          })
        }
        if (user.Msg.indexOf('系统无默认项目') > -1 && ['newsFlash_tool', 'originalText', 'basicAttributes_tool', 'fundMonitoring', 'editFundMonitoring', 'paymentMonitoring', 'flowAnalysis', 'flowAnalysisTab3', 'flowAnalysisTab2', 'checkGQJGT', 'offSiteCheckQYTP'].indexOf(to.name) == -1) {
          switch (user.ShowType) {
            case 'tips_info':
              Message.info(user.Msg)
              break
            case 'tips_success':
              Message.success(user.Msg)
              break
            case 'tips_warning':
              Message.warning(user.Msg)
              break
            case 'tips_error':
              Message.error(user.Msg)
              break
            case 'modal_info':
              Modal.info({
                title: '消息',
                content: user.Msg
              })
              break
            case 'modal_success':
              Modal.success({
                title: '成功',
                content: user.Msg
              })
              break
            case 'modal_warning':
              Modal.warning({
                title: '警告',
                content: user.Msg
              })
              break
            case 'modal_error':
              Modal.error({
                title: '错误',
                content: user.Msg
              })
              break
          }
        }
        //取消"系统无默认项目,请选择已有项目或创建新项目!"弹窗
        // if (user.Msg.indexOf('系统无默认项目') > -1 && ['newsFlash_tool', 'originalText', 'basicAttributes_tool', 'fundMonitoring', 'editFundMonitoring', 'paymentMonitoring', 'flowAnalysis', 'flowAnalysisTab3', 'flowAnalysisTab2', 'checkGQJGT', 'offSiteCheckQYTP'].indexOf(to.name) == -1) {
        //   switch (user.ShowType) {
        //     case 'tips_info':
        //       Message.info(user.Msg)
        //       break
        //     case 'tips_success':
        //       Message.success(user.Msg)
        //       break
        //     case 'tips_warning':
        //       Message.warning(user.Msg)
        //       break
        //     case 'tips_error':
        //       Message.error(user.Msg)
        //       break
        //     case 'modal_info':
        //       Modal.info({
        //         title: '消息',
        //         content: user.Msg
        //       })
        //       break
        //     case 'modal_success':
        //       Modal.success({
        //         title: '成功',
        //         content: user.Msg
        //       })
        //       break
        //     case 'modal_warning':
        //       Modal.warning({
        //         title: '警告',
        //         content: user.Msg
        //       })
        //       break
        //     case 'modal_error':
        //       Modal.error({
        //         title: '错误',
        //         content: user.Msg
        //       })
        //       break
        //   }
        // }
      }).catch(() => {
        setToken('')
        next({
src/view/IntelligentAgent/allAgent.vue
@@ -146,13 +146,19 @@
        },
        chat(item) {
            if (item.SystemRouting) {
                console.log('系统路由不可对话')
                this.$router.push({
                    path: item.SystemRouting,
                })
            } else {
            this.$router.push({
                path: '/AgentChat',
                query: {
                    chatInfo: JSON.stringify(item)
                }
            })
            }
        },
        changePage(e) {
src/view/IntelligentAgent/chat.vue
@@ -266,7 +266,7 @@
          this.scrollToBottom();
        }
      }, 50);
      }, 30);
    },
    formatMessage(message) {
      message = message.replace(/\*\*(.*?)\*\*/g, '<strong>$1</strong>');
src/view/IntelligentAgent/myAgent.vue
@@ -110,6 +110,8 @@
            <Input v-model="formItem.ModelApi" placeholder="请输入模型API(非必填)" />
            <div style="margin-top: 10px;font-weight: 600;">模型KEY(非必填)</div>
            <Input v-model="formItem.ModelKey" placeholder="请输入模型KEY(非必填)" />
            <div style="margin-top: 10px;font-weight: 600;">系统路由(非必填)</div>
            <Input v-model="formItem.SystemRouting" placeholder="系统路由(非必填)" />
            <div style="margin-top: 10px;font-weight: 600;">权限设置</div>
            <Select v-model="formItem.Permission" filterable default-label="公开 · 所有人可对话">
                <Option v-for="(option, index) in options" :value="option.value" :key="index">{{ option.label }}
@@ -156,6 +158,8 @@
            <Input v-model="formItem.ModelApi" placeholder="请输入模型API(非必填)" />
            <div style="margin-top: 10px;font-weight: 600;">模型KEY(非必填)</div>
            <Input v-model="formItem.ModelKey" placeholder="请输入模型KEY(非必填)" />
            <div style="margin-top: 10px;font-weight: 600;">系统路由(非必填)</div>
            <Input v-model="formItem.SystemRouting" placeholder="系统路由(非必填)" />
            <div style="margin-top: 10px;font-weight: 600;">权限设置</div>
            <Select v-model="formItem.Permission" filterable default-label="公开 · 所有人可对话">
                <Option v-for="(option, index) in options" :value="option.value" :key="index">{{ option.label }}
@@ -202,7 +206,8 @@
                CreatorId: this.userId,
                Prompt: '',
                ModelApi: '',
                ModelKey: ''
                ModelKey: '',
                SystemRouting: ''
            },
            isDisabled: false, // 展示详情时为TRUE
@@ -261,13 +266,19 @@
            reader.readAsDataURL(e.target.files[0]);
        },
        chat(item) {
            if (item.SystemRouting) {
                console.log('系统路由不可对话')
                this.$router.push({
                    path: item.SystemRouting,
                })
            } else {
            this.$router.push({
                path: '/AgentChat',
                query: {
                    chatInfo: JSON.stringify(item)
                }
            })
            }
        },
        changePage(e) {
            this.PageNum = e
@@ -394,6 +405,8 @@
        },
        // 获取数据列表
        getAgentDataList() {
            console.log('origin======', window.location.origin);
            this.loading = true;
            let data = {
                Keyword: this.searchQuery,
@@ -573,6 +586,7 @@
<style scoped>
@import url("http://at.alicdn.com/t/c/font_4776342_gl8cdk3qwyb.css");
.container {
    padding-top: 20px;
    width: 1000px;
src/view/echarts/radar.vue
@@ -6,9 +6,10 @@
            <textarea v-model="message" placeholder="请输入公司名称(必填)"></textarea>
            <button onclick="document.getElementById('file').click()">请上传尽调报告</button>
            <input type="file" id="file" accept=".doc,.docx" @change="getFiles($event)" style="display: none" />
            <p class="file-tit">已选择文件: <span v-if="selectedFile"> {{ selectedFile.name }}</span></p>
            <p class="file-tit">已选择文件: <span v-if="selectedFile"> {{ selectedFile.name }}</span> <span v-else>暂无</span> </p>
            <button @click="generateChart" :disabled="disableButton"
                :class="{ 'disabled-button': disableButton }">一键生成</button>
            <!-- <button style="margin-top: 20px;" @click="GetSaveExcel">下载excel</button> -->
        </div>
        <div class="echarts-box">
            <div class="radar-box" v-show="!loadingSub">
@@ -27,7 +28,7 @@
                <table border="1" style="border-collapse: collapse; width: 100%;">
                    <thead>
                        <tr>
                            <th v-for="(header, index) in headers" :key="index">{{ header }}</th>
                            <th v-for="(header, index) in headers" :key="index" :style="{ width: headerWidths[index] ,textAlign: 'center'}">{{ header }}</th>
                        </tr>
                    </thead>
                    <tbody>
@@ -89,11 +90,12 @@
            childLength: [],
            selectedFile: null,
            fileUrl: '',
            excelData:'',
            scores: {}, // 存储接口返回的得分数据
            categoryScores: {}, // 存储大类评分
            totalScore: 0, // 总分
            dynamicData: {}, // 存储动态数据
            headerWidths: ['113px', '150px', '150px', 'auto', '50px', '50px', '80px', '50px'], // 自定义宽度
            headers: [
                '企业评分',
                '评价维度',
@@ -128,7 +130,7 @@
                    { value: '客户增长率', rowspan: 1, colspan: 1 },
                    { value: '越多越好', rowspan: 1, colspan: 1 },
                    { value: '10', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '客户与市场扩展维度', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '客户增长率', rowspan: 1, colspan: 1 },
                ],
                [
                    { value: '品牌知名度', rowspan: 1, colspan: 1 },
@@ -142,11 +144,11 @@
                    { value: '社交媒体参与度', rowspan: 1, colspan: 1 },
                    { value: '越多越好', rowspan: 1, colspan: 1 },
                    { value: '5', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '社交媒体与互动维度', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '社交媒体参与度', rowspan: 1, colspan: 1 },
                ],
                [
                    { value: '创新与研发维度', rowspan: 1, colspan: 1 },
                    { value: '创新能力', rowspan: 1, colspan: 1 },
                    { value: '企业活跃度创新能力', rowspan: 1, colspan: 1 },
                    {
                        value:
                            '分析企业的研发成果,如专利数量、新产品推出速度等,评估企业的技术创新能力和成长潜力。',
@@ -154,7 +156,7 @@
                        colspan: 1,
                    },
                    { value: '10', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '创新与研发维度', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '企业活跃度创新能力', rowspan: 1, colspan: 1 },
                ],
                // 运营与管理维度
                [
@@ -167,7 +169,7 @@
                        colspan: 1,
                    },
                    { value: '10', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '运营与管理维度', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '运营状态', rowspan: 1, colspan: 1 },
                ],
                [
                    { value: '企业变更备案次数', rowspan: 1, colspan: 1 },
@@ -191,7 +193,7 @@
                        colspan: 1,
                    },
                    { value: '10', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '成长与扩张维度', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '分支机构开设数量', rowspan: 1, colspan: 1 },
                ],
                [
                    { value: '对外投资企业数', rowspan: 1, colspan: 1 },
@@ -214,7 +216,7 @@
                        colspan: 1,
                    },
                    { value: '10', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '外部支持与资源维度', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '资本活跃度', rowspan: 1, colspan: 1 },
                ],
                // 企业合法合规
                [
@@ -228,7 +230,7 @@
                        colspan: 1,
                    },
                    { value: '20', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '企业合法合规', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '法律法规遵守', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '大类评分2', rowspan: 6, colspan: 1 },
                ],
                [
@@ -274,7 +276,7 @@
                        colspan: 1,
                    },
                    { value: '10', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '外部合规认证与监管', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '外部认证', rowspan: 1, colspan: 1 },
                ],
                [
                    { value: '监管配合', rowspan: 1, colspan: 1 },
@@ -299,7 +301,7 @@
                        colspan: 1,
                    },
                    { value: '10', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '企业发展力', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '盈利能力毛利率', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '大类评分3', rowspan: 10, colspan: 1 },
                ],
                [
@@ -342,7 +344,7 @@
                    { key: '得分', value: '偿债能力资产负债率', rowspan: 1, colspan: 1 },
                ],
                [
                    { value: '筹资活动现金流量', rowspan: 1, colspan: 1 },
                    { value: '偿债能力筹资活动现金流量', rowspan: 1, colspan: 1 },
                    {
                        value:
                            '筹资活动现金流量:体现企业筹集资金的能力和方式。企业能够通过股权融资、债券发行等方式筹集到资金,为发展提供必要的资金支持。',
@@ -350,7 +352,7 @@
                        colspan: 1,
                    },
                    { value: '10', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '筹资活动现金流量', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '偿债能力筹资活动现金流量', rowspan: 1, colspan: 1 },
                ],
                // 市场维度
                [
@@ -363,7 +365,7 @@
                        colspan: 1,
                    },
                    { value: '10', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '市场维度', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '客户满意度与忠诚度', rowspan: 1, colspan: 1 },
                ],
                [
                    { value: '客户忠诚度', rowspan: 1, colspan: 1 },
@@ -386,7 +388,7 @@
                        colspan: 1,
                    },
                    { value: '10', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '人力资源维度', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '人才结构', rowspan: 1, colspan: 1 },
                ],
                [
                    { value: '人才激励机制', rowspan: 1, colspan: 1 },
@@ -411,7 +413,7 @@
                        colspan: 1,
                    },
                    { value: '20', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '企业成长性', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '研发投入', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '大类评分4', rowspan: 6, colspan: 1 },
                ],
                [
@@ -446,7 +448,7 @@
                        colspan: 1,
                    },
                    { value: '20', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '管理维度', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '战略规划与执行', rowspan: 1, colspan: 1 },
                ],
                [
                    { value: '组织架构优化', rowspan: 1, colspan: 1 },
@@ -482,7 +484,7 @@
                        colspan: 1,
                    },
                    { value: '20', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '企业就业带动', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '员工数量增长', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '大类评分5', rowspan: 5, colspan: 1 },
                ],
                [
@@ -506,7 +508,7 @@
                        colspan: 1,
                    },
                    { value: '20', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '产业关联维度', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '上下游企业带动', rowspan: 1, colspan: 1 },
                ],
                [
                    { value: '产业集群效应', rowspan: 1, colspan: 1 },
@@ -529,7 +531,7 @@
                        colspan: 1,
                    },
                    { value: '20', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '技能提升维度', rowspan: 1, colspan: 1 },
                    { key: '得分', value: '产学研合作', rowspan: 1, colspan: 1 },
                ],
            ],
        }
@@ -582,7 +584,8 @@
                    // 去除前后的中文引号
                    // console.log('json2222:',json);
                    let outputValue = json.output.replace(/[\n]/g, "").replace(/ /g, ''); // 获取 "output" 的值
                    // console.log('outputValue2222:',outputValue);
                    console.log('outputValue2222:',outputValue);
                    this.excelData=outputValue
                    // 解析字符串
                    const parsedData = outputValue.split(',').map(item => {
                        const [key, value] = item.split(':'); // 使用中文冒号分割
@@ -696,24 +699,6 @@
                console.error('获取得分数据失败:', error);
            }
        },
        // 调用接口获取动态数据
        async fetchDynamicData() {
            try {
                // // 模拟接口调用
                // const response = await fetch('/api/getDynamicData');
                // const data = await response.json();
                // // 将动态数据存储到 dynamicData 对象中
                // this.dynamicData = data.data;
                const data = {
                    "dynamicField1": "动态值1",
                    "dynamicField2": "动态值2"
                }
                this.dynamicData = data;
            } catch (error) {
                console.error('获取动态数据失败:', error);
            }
        },
        // 根据评分细则获取得分
        getScore(key) {
            return this.scores[key] || 0; // 如果接口未返回得分,默认显示 0
@@ -803,7 +788,7 @@
                    this.radarData = JSON.parse(JSON.stringify(result.match(/\d+/g).map(Number)));
                    console.log('this.radarData:', this.radarData);
                } else {
                    this.radarData = JSON.parse(JSON.stringify(result.split(",").map(Number)));
                    this.radarData = JSON.parse(JSON.stringify(result.slice(1, -1).split(",").map(Number)));
                    console.log('this.radarData:', this.radarData);
                }
@@ -842,6 +827,16 @@
                // 调用接口获取得分数据
                this.fetchScores(this.fileUrl);
            }
        },
        //下载excel
        GetSaveExcel(){
            axios.request({
                    url: 'SubsidyData/GetSaveExcel',
                    method: 'post',
                    data: this.excelData
                }).then(res => {
                    console.log(res);
                })
        },
        // 绘制企业结构的echarts
@@ -970,14 +965,14 @@
    textarea:focus,
    input[type="text"]:focus {
        outline: none;
        border-color: #6c63ff;
        border-color: #2d8cf0;
        box-shadow: 0 0 5px rgba(108, 99, 255, 0.5);
    }
    button {
        width: 100%;
        padding: 10px;
        background-color: #6c63ff;
        background-color: #2d8cf0;
        color: #fff;
        border: none;
        border-radius: 4px;
@@ -987,7 +982,7 @@
    }
    button:hover {
        background-color: #5a52e6;
        background-color: #2d8cf0;
    }
    button:focus {
@@ -1013,10 +1008,10 @@
    padding-left: calc(50% - 250px);
    padding-top: 50vh;
    background: white;
    color: #6c63ff;
    color: #2d8cf0;
    /deep/ .ivu-spin-dot {
        background-color: #6c63ff;
        background-color: #2d8cf0;
    }
}
@@ -1035,7 +1030,7 @@
.radar-box {
    height: 800px;
    height: 500px;
    flex: 1;
    min-width: 800px;
}
src/view/echarts/tree.vue
@@ -660,14 +660,14 @@
    textarea:focus,
    input[type="text"]:focus {
        outline: none;
        border-color: #6c63ff;
        border-color: #2d8cf0;
        box-shadow: 0 0 5px rgba(108, 99, 255, 0.5);
    }
    button {
        width: 100%;
        padding: 10px;
        background-color: #6c63ff;
        background-color: #2d8cf0;
        color: #fff;
        border: none;
        border-radius: 4px;
@@ -677,7 +677,7 @@
    }
    button:hover {
        background-color: #5a52e6;
        background-color: #2d8cf0;
    }
    button:focus {
@@ -703,7 +703,7 @@
            /* 为复选框留出空间 */
            cursor: pointer;
            font-size: 14px;
            color: #5a52e6;
            color: #2d8cf0;
            /* 文字颜色 */
            user-select: none;
        }
@@ -725,14 +725,14 @@
            height: 20px;
            width: 20px;
            background-color: #eee;
            border: 2px solid #5a52e6;
            border: 2px solid #2d8cf0;
            /* 红色边框 */
            border-radius: 4px;
        }
        /* 当复选框被选中时,背景变为红色 */
        .custom-checkbox input:checked~.checkmark {
            background-color: #5a52e6;
            background-color: #2d8cf0;
        }
        /* 创建选中时的勾号 */
@@ -772,10 +772,10 @@
    padding-left: calc(50% - 250px);
    padding-top: 50vh;
    background: white;
    color: #6c63ff;
    color: #2d8cf0;
    /deep/ .ivu-spin-dot {
        background-color: #6c63ff;
        background-color: #2d8cf0;
    }
}