| | |
| | | <!-- <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> |
| | |
| | | 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({ |
| | |
| | | |
| | | }, |
| | | chat(item) { |
| | | this.$router.push({ |
| | | path: '/AgentChat', |
| | | query: { |
| | | chatInfo: JSON.stringify(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.scrollToBottom(); |
| | | |
| | | } |
| | | }, 50); |
| | | }, 30); |
| | | }, |
| | | formatMessage(message) { |
| | | message = message.replace(/\*\*(.*?)\*\*/g, '<strong>$1</strong>'); |
| | |
| | | <Icon custom="custom custom-bianji" size="18" style="color: #999;" |
| | | @click.stop="goedit(item)" /> |
| | | </Tooltip> |
| | | <Tooltip v-if="item.Permission==2" content="私人" class="tableActionMargin" theme="light"> |
| | | <Tooltip v-if="item.Permission == 2" content="私人" class="tableActionMargin" theme="light"> |
| | | <Icon custom="iconfont icon-lock" size="18" style="color: #999;" /> |
| | | </Tooltip> |
| | | </div> |
| | |
| | | <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 }} |
| | |
| | | <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 }} |
| | |
| | | CreatorId: this.userId, |
| | | Prompt: '', |
| | | ModelApi: '', |
| | | ModelKey: '' |
| | | ModelKey: '', |
| | | SystemRouting: '' |
| | | }, |
| | | |
| | | isDisabled: false, // 展示详情时为TRUE |
| | |
| | | reader.readAsDataURL(e.target.files[0]); |
| | | }, |
| | | chat(item) { |
| | | this.$router.push({ |
| | | path: '/AgentChat', |
| | | query: { |
| | | chatInfo: JSON.stringify(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 |
| | |
| | | }, |
| | | // 获取数据列表 |
| | | getAgentDataList() { |
| | | console.log('origin======', window.location.origin); |
| | | |
| | | this.loading = true; |
| | | let data = { |
| | | Keyword: this.searchQuery, |
| | |
| | | |
| | | <style scoped> |
| | | @import url("http://at.alicdn.com/t/c/font_4776342_gl8cdk3qwyb.css"); |
| | | |
| | | .container { |
| | | padding-top: 20px; |
| | | width: 1000px; |
| | |
| | | <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"> |
| | |
| | | <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> |
| | |
| | | childLength: [], |
| | | selectedFile: null, |
| | | fileUrl: '', |
| | | |
| | | excelData:'', |
| | | scores: {}, // 存储接口返回的得分数据 |
| | | categoryScores: {}, // 存储大类评分 |
| | | totalScore: 0, // 总分 |
| | | dynamicData: {}, // 存储动态数据 |
| | | headerWidths: ['113px', '150px', '150px', 'auto', '50px', '50px', '80px', '50px'], // 自定义宽度 |
| | | headers: [ |
| | | '企业评分', |
| | | '评价维度', |
| | |
| | | { 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 }, |
| | |
| | | { 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: |
| | | '分析企业的研发成果,如专利数量、新产品推出速度等,评估企业的技术创新能力和成长潜力。', |
| | |
| | | colspan: 1, |
| | | }, |
| | | { value: '10', rowspan: 1, colspan: 1 }, |
| | | { key: '得分', value: '创新与研发维度', rowspan: 1, colspan: 1 }, |
| | | { key: '得分', value: '企业活跃度创新能力', rowspan: 1, colspan: 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 }, |
| | |
| | | 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 }, |
| | |
| | | colspan: 1, |
| | | }, |
| | | { value: '10', rowspan: 1, colspan: 1 }, |
| | | { key: '得分', value: '外部支持与资源维度', rowspan: 1, colspan: 1 }, |
| | | { key: '得分', value: '资本活跃度', rowspan: 1, colspan: 1 }, |
| | | ], |
| | | // 企业合法合规 |
| | | [ |
| | |
| | | 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 }, |
| | | ], |
| | | [ |
| | |
| | | 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 }, |
| | |
| | | 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 }, |
| | | ], |
| | | [ |
| | |
| | | { key: '得分', value: '偿债能力资产负债率', rowspan: 1, colspan: 1 }, |
| | | ], |
| | | [ |
| | | { value: '筹资活动现金流量', rowspan: 1, colspan: 1 }, |
| | | { value: '偿债能力筹资活动现金流量', rowspan: 1, colspan: 1 }, |
| | | { |
| | | value: |
| | | '筹资活动现金流量:体现企业筹集资金的能力和方式。企业能够通过股权融资、债券发行等方式筹集到资金,为发展提供必要的资金支持。', |
| | |
| | | colspan: 1, |
| | | }, |
| | | { value: '10', rowspan: 1, colspan: 1 }, |
| | | { key: '得分', value: '筹资活动现金流量', rowspan: 1, colspan: 1 }, |
| | | { key: '得分', value: '偿债能力筹资活动现金流量', rowspan: 1, colspan: 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 }, |
| | |
| | | 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 }, |
| | |
| | | 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 }, |
| | | ], |
| | | [ |
| | |
| | | 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 }, |
| | |
| | | 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 }, |
| | | ], |
| | | [ |
| | |
| | | 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 }, |
| | |
| | | colspan: 1, |
| | | }, |
| | | { value: '20', rowspan: 1, colspan: 1 }, |
| | | { key: '得分', value: '技能提升维度', rowspan: 1, colspan: 1 }, |
| | | { key: '得分', value: '产学研合作', rowspan: 1, colspan: 1 }, |
| | | ], |
| | | ], |
| | | } |
| | |
| | | // 去除前后的中文引号 |
| | | // 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(':'); // 使用中文冒号分割 |
| | |
| | | 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 |
| | |
| | | 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); |
| | | |
| | | } |
| | |
| | | // 调用接口获取得分数据 |
| | | this.fetchScores(this.fileUrl); |
| | | } |
| | | }, |
| | | //下载excel |
| | | GetSaveExcel(){ |
| | | axios.request({ |
| | | url: 'SubsidyData/GetSaveExcel', |
| | | method: 'post', |
| | | data: this.excelData |
| | | }).then(res => { |
| | | console.log(res); |
| | | }) |
| | | }, |
| | | |
| | | // 绘制企业结构的echarts |
| | |
| | | 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; |
| | |
| | | } |
| | | |
| | | button:hover { |
| | | background-color: #5a52e6; |
| | | background-color: #2d8cf0; |
| | | } |
| | | |
| | | button:focus { |
| | |
| | | padding-left: calc(50% - 250px); |
| | | padding-top: 50vh; |
| | | background: white; |
| | | color: #6c63ff; |
| | | color: #2d8cf0; |
| | | |
| | | /deep/ .ivu-spin-dot { |
| | | background-color: #6c63ff; |
| | | background-color: #2d8cf0; |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | |
| | | .radar-box { |
| | | height: 800px; |
| | | height: 500px; |
| | | flex: 1; |
| | | min-width: 800px; |
| | | } |
| | |
| | | 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; |
| | |
| | | } |
| | | |
| | | button:hover { |
| | | background-color: #5a52e6; |
| | | background-color: #2d8cf0; |
| | | } |
| | | |
| | | button:focus { |
| | |
| | | /* 为复选框留出空间 */ |
| | | cursor: pointer; |
| | | font-size: 14px; |
| | | color: #5a52e6; |
| | | color: #2d8cf0; |
| | | /* 文字颜色 */ |
| | | user-select: none; |
| | | } |
| | |
| | | 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; |
| | | } |
| | | |
| | | /* 创建选中时的勾号 */ |
| | |
| | | padding-left: calc(50% - 250px); |
| | | padding-top: 50vh; |
| | | background: white; |
| | | color: #6c63ff; |
| | | color: #2d8cf0; |
| | | |
| | | /deep/ .ivu-spin-dot { |
| | | background-color: #6c63ff; |
| | | background-color: #2d8cf0; |
| | | } |
| | | } |
| | | |