| | |
| | | VUE_APP_API_TARGET=http://47.92.245.94:8070/ |
| | | VUE_APP_API_TARGET=http://47.98.113.167/ |
| | |
| | | }) |
| | | // 响应拦截 |
| | | instance.interceptors.response.use(res => { |
| | | console.log(res); |
| | | |
| | | if (res.data.TimeOutFlag) { |
| | | if (store.state.user.current != 'login') { |
| | | store.state.user.current = 'login' |
| | |
| | | { |
| | | index: 3, |
| | | route: [ |
| | | 'IntelligentAgent', |
| | | 'FindAgent', |
| | | // 'enterpriseRelationshipMining', |
| | | // '_homeEx', |
| | | // 'rentExchangeCompany', |
| | |
| | | // }, |
| | | |
| | | { |
| | | path: '/IntelligentAgent', |
| | | name: 'IntelligentAgent', |
| | | path: '/FindAgent', |
| | | name: 'FindAgent', |
| | | redirect: '/FindAgent', |
| | | component: Main, |
| | | meta: { |
| | | notCache: true, |
| | | // hideInBread: true, |
| | | access: ['no_admin', 'FindAgent', 'myAgent', 'chat'], |
| | | hideInMenu: false, |
| | | title: '政策智能体' |
| | | }, |
| | | children: [{ |
| | | path: '/IntelligentAgent', |
| | | name: 'IntelligentAgent', |
| | | path: '/FindAgent', |
| | | name: 'FindAgent', |
| | | meta: { |
| | | |
| | | access: ['no_admin', 'FindAgent'], |
| | | notCache: true, |
| | | icon: 'custom custom-pingtaiyilan', |
| | | title: '发现智能体' |
| | |
| | | import('@/view/IntelligentAgent/allAgent.vue') |
| | | }, |
| | | { |
| | | path: '/myAgent', |
| | | name: 'myAgent', |
| | | path: '/MyAgent', |
| | | name: 'MyAgent', |
| | | meta: { |
| | | notCache: true, |
| | | access: ['no_admin', 'MyAgent'], |
| | | icon: 'custom custom-xingbiao', |
| | | title: '我的智能体' |
| | | }, |
| | |
| | | import('@/view/IntelligentAgent/myAgent.vue') |
| | | }, |
| | | { |
| | | path: '/chat', |
| | | name: 'chat', |
| | | path: '/AgentChat', |
| | | name: 'AgentChat', |
| | | meta: { |
| | | notCache: true, |
| | | access: ['no_admin', 'AgentChat'], |
| | | icon: 'custom custom-jixiao', |
| | | hideInMenu: true, |
| | | title: '对话' |
| | |
| | | component: () => |
| | | import('@/view/reportCenters/userManagement.vue') |
| | | }, |
| | | { |
| | | path: '/reportCenter', |
| | | name: 'reportCenter', |
| | | meta: { |
| | | access: ['no_admin', 'reportCenters'], |
| | | notCache: true, |
| | | icon: 'custom custom-fenxi1', |
| | | title: '报表管理' |
| | | }, |
| | | component: () => |
| | | import('@/view/reportCenters/reportCenter.vue') |
| | | }, |
| | | { |
| | | path: '/accountCash', |
| | | name: 'accountCash', |
| | | meta: { |
| | | access: ['no_admin', 'accountCash'], |
| | | notCache: true, |
| | | icon: 'custom custom-fenxi1', |
| | | title: '账户余额' |
| | | }, |
| | | component: () => |
| | | import('@/view/reportCenters/accountCash.vue') |
| | | }, |
| | | // { |
| | | // path: '/reportCenter', |
| | | // name: 'reportCenter', |
| | | // meta: { |
| | | // access: ['no_admin', 'reportCenters'], |
| | | // notCache: true, |
| | | // icon: 'custom custom-fenxi1', |
| | | // title: '报表管理' |
| | | // }, |
| | | // component: () => |
| | | // import('@/view/reportCenters/reportCenter.vue') |
| | | // }, |
| | | // { |
| | | // path: '/accountCash', |
| | | // name: 'accountCash', |
| | | // meta: { |
| | | // access: ['no_admin', 'accountCash'], |
| | | // notCache: true, |
| | | // icon: 'custom custom-fenxi1', |
| | | // title: '账户余额' |
| | | // }, |
| | | // component: () => |
| | | // import('@/view/reportCenters/accountCash.vue') |
| | | // }, |
| | | { |
| | | path: '/editMyReport', |
| | | name: 'editMyReport', |
| | |
| | | <!-- <Button size="large" @click="openaddModal" class="handleSubmit" type="primary">创建AI智能体</Button> --> |
| | | </div> |
| | | <div class="search-bar"> |
| | | <Input v-model="searchQuery" placeholder="搜索..." size="large" /> |
| | | <Button size="large" @click="changePage(1)" class="handleSubmit" type="primary" icon="ios-search">搜索</Button> |
| | | <Input v-model="searchQuery" placeholder="请输入感兴趣的关键词" size="large" /> |
| | | <Button size="large" @click="changePage(1)" class="handleSubmit" type="primary" |
| | | icon="ios-search">搜索</Button> |
| | | <Button size="large" @click="clearSearch()" class="handleSubmit" type="primary" |
| | | style="margin-left: 10px;" icon="ios-trash-outline">清空</Button> |
| | | |
| | | </div> |
| | | <div class="tabs"> |
| | | <Tabs :value="type" @on-click="handleTabChange"> |
| | |
| | | <TabPane label="行业" name="1"> |
| | | <!-- 工作分类的产品 --> |
| | | </TabPane> |
| | | <TabPane label="招商" name="2"> |
| | | <TabPane label="宏观" name="2"> |
| | | <!-- 行业分类的产品 --> |
| | | </TabPane> |
| | | <TabPane label="招商" name="3"> |
| | | <!-- 学习分类的产品 --> |
| | | </TabPane> |
| | | <TabPane label="我的收藏" name="-1"> |
| | |
| | | <!-- 更多TabPane --> |
| | | </Tabs> |
| | | </div> |
| | | <div class="products" v-if="products.length > 0"> |
| | | <div class="products" v-if="products.length > 0 && loading == false"> |
| | | <div class="product" v-for="item in products" :key="item.Id" @click="chat(item)"> |
| | | <img :src="api + item.AvatarLink" style="width: 100px;height: 100px;" alt="" srcset=""> |
| | | <div style="margin-left: 10px;"> |
| | | <!-- <h2 class="title">{{ item.Name }}</h2> --> |
| | | <Poptip :content="item.Name" placement="top" trigger="hover" word-wrap width="300"> |
| | | <h2 class="title">{{ item.Name.length > 15 ? |
| | | item.Name.substring(0, 15) + '...' : item.Name }}</h2> |
| | | </Poptip> |
| | | |
| | | <div> |
| | | <Poptip :content="item.Name" placement="top" trigger="hover" word-wrap width="300"> |
| | | <h2 class="title">{{ item.Name.length > 15 ? |
| | | item.Name.substring(0, 15) + '...' : item.Name }}</h2> |
| | | </Poptip> |
| | | </div> |
| | | <Poptip :content="item.Description" placement="top" trigger="hover" word-wrap width="300"> |
| | | <div>{{ item.Description.length > 20 ? |
| | | item.Description.substring(0, 20) + '...' : item.Description }}</div> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="no-data" v-else> |
| | | <div class="no-data" v-if="products.length == 0 && loading == false"> |
| | | <img src="../../assets/images/less.png" alt=""> |
| | | <p>暂无数据</p> |
| | | </div> |
| | | <Spin v-show="loading" style="padding-bottom: 50px;"> |
| | | <Icon type="ios-loading" size=18 class="demo-spin-icon-load"></Icon> |
| | | <div>Loading</div> |
| | | </Spin> |
| | | <Page :current="PageNum" :page-size="PageSize" :total="total" @on-change="changePage" show-elevator |
| | | style="float: right;position: relative; top: -50px;" /> |
| | | |
| | | </div> |
| | | |
| | | |
| | | </div> |
| | | |
| | | </template> |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | api: 'http://47.92.245.94:8070', |
| | | loading: false, |
| | | api: 'http://47.98.113.167', |
| | | total: 0, |
| | | userId: Number(localStorage.getItem('userId')), |
| | | searchQuery: '', |
| | |
| | | } |
| | | }, |
| | | methods: { |
| | | clearSearch() { |
| | | this.searchQuery = '' |
| | | this.changePage(1) |
| | | |
| | | }, |
| | | chat(item) { |
| | | this.$router.push({ |
| | | path: '/chat', |
| | | path: '/AgentChat', |
| | | query: { |
| | | chatInfo: JSON.stringify(item) |
| | | } |
| | |
| | | } |
| | | axios.request({ |
| | | url: 'StarAgent/AddStarAgentData', |
| | | |
| | | method: 'post', |
| | | data: data |
| | | }).then(res => { |
| | |
| | | }, |
| | | // 获取数据列表 |
| | | getAgentDataList() { |
| | | // this.products = [] |
| | | this.loading = true; |
| | | let data = { |
| | | Keyword: this.searchQuery, |
| | | PageNum: this.PageNum, |
| | |
| | | }).then(res => { |
| | | if (res.data.Check) { |
| | | this.products = res.data.Data.Data; |
| | | for (let i = 0; i < this.products.length; i++) { |
| | | if (!this.products[i].Description) { |
| | | this.products[i].Description = '暂无描述' |
| | | } |
| | | if (!this.products[i].Prompt) { |
| | | this.products[i].Prompt = '暂无提示' |
| | | } |
| | | } |
| | | this.total = res.data.Data.TotalCount |
| | | this.loading = false; |
| | | } else { |
| | | this.products = [] |
| | | this.$Message.error('获取数据失败'); |
| | | this.loading = false; |
| | | } |
| | | |
| | | // console.log(res); |
| | |
| | | // this.uploadList.push(this.apiTarget + res.data.fileUrl) |
| | | // file.response.fileUrl = this.apiTarget + res.data.fileUrl |
| | | // // // 回显时会用到 |
| | | this.dialogImageUrl = 'http://47.92.245.94:8070' + this.formItem.AvatarLink |
| | | this.dialogImageUrl = 'http://47.98.113.167' + this.formItem.AvatarLink |
| | | console.log(this.dialogImageUrl); |
| | | |
| | | this.formValidate.imgId = file.response.fileUrl |
| | |
| | | <div class="chat-container"> |
| | | <div class="chat" ref="chatContainer"> |
| | | <div class="chat-header"> |
| | | <div class="chat-header-left"> |
| | | <img :src="api + query.AvatarLink" alt=""> |
| | | <div style="display: flex;"> |
| | | <div class="chat-header-left"> |
| | | <img :src="api + query.AvatarLink" alt=""> |
| | | </div> |
| | | <div class="chat-header-right"> |
| | | {{ query.Name }} |
| | | </div> |
| | | </div> |
| | | <div class="chat-header-right"> |
| | | {{ query.Name }} |
| | | <div style=" font-size: 20px; |
| | | font-weight: 600; |
| | | line-height: 70px;cursor: pointer;color: #00A0E9;" @click="back"> |
| | | <Icon type="ios-arrow-back" />返回 |
| | | |
| | | </div> |
| | | |
| | | </div> |
| | | <!-- <div class="description"> |
| | | {{ |
| | | query.Description.length > 0 ? query.Description : '暂无描述' |
| | | }} |
| | | </div> --> |
| | | <!-- <Poptip :content="query.Description" placement="top" trigger="hover" word-wrap width="700"> |
| | | <div class="description" v-html="query.Description.length > 400 ? |
| | | query.Description.substring(0, 400) + '...' : query.Description"></div> |
| | | </Poptip> --> |
| | | <Poptip :content="query.Description" placement="top" trigger="hover" word-wrap width="700"> |
| | | <div class="description" v-html="truncatedDescription"></div> |
| | | </Poptip> |
| | | <!-- <Spin fix v-show="loading"> |
| | | <Icon type="ios-loading" size=18 class="demo-spin-icon-load"></Icon> |
| | | <div>Loading</div> |
| | | </Spin> --> |
| | | <!-- <div class="loading-dot" v-show="loading"></div> --> |
| | | <div v-if="this.query.Description.includes('\n') || query.Description.includes('<br')"> |
| | | <Poptip :content="query.Description" placement="top" trigger="hover" word-wrap width="700"> |
| | | <div class="description" v-html="truncatedDescription"></div> |
| | | </Poptip> |
| | | </div> |
| | | <div v-else> |
| | | <div class="description" v-html="query.Description"></div> |
| | | </div> |
| | | |
| | | |
| | | <div class="chat-list"> |
| | | <div class="chat-list-item" v-for="(item, index) in historyList" :key="item.Id"> |
| | | <div class="chat-list-item-content" |
| | |
| | | return { |
| | | loadingSub: false, |
| | | loading: false, // 添加 loading 状态 |
| | | api: 'http://47.92.245.94:8070', |
| | | api: 'http://47.98.113.167', |
| | | query: { |
| | | Name: '', |
| | | AvatarLink: '', |
| | |
| | | this.$refs.chatContainer.removeEventListener('scroll', this.handleScroll); |
| | | }, |
| | | methods: { |
| | | // 返回上一页 |
| | | back(){ |
| | | this.$router.back(-1) |
| | | }, |
| | | // 获取历史记录 |
| | | getHistory(scrollToBottom = true) { |
| | | let data = { |
| | |
| | | this.newMessage = ''; |
| | | this.loading = false; // 结束加载 |
| | | this.total = res.data.Count; |
| | | this.loadingSub = false; |
| | | this.typeWriterEffect('系统', this.formatMessage(res.data.choices[0].message.content), true, res.data.AssistantId, res.data.choices[0].message.content); |
| | | }).catch(error => { |
| | | console.error(error); |
| | |
| | | } else { |
| | | clearInterval(interval); |
| | | this.scrollToBottom(); |
| | | this.loadingSub = false; |
| | | |
| | | } |
| | | }, 100); |
| | | }, |
| | |
| | | }, |
| | | |
| | | deleteMessage(item, index, type) { |
| | | console.log(item, index); |
| | | let data = { |
| | | Id: item.id |
| | | } |
| | | axios.request({ |
| | | url: '/ChatHistory//DelChatHistoryDataById', |
| | | method: 'post', |
| | | data |
| | | }).then(res => { |
| | | console.log(res); |
| | | this.$Message.success('删除成功'); |
| | | if (type == 'chat') { |
| | | this.chatItems.splice(index, 1); |
| | | } else { |
| | | this.historyList.splice(index, 1); |
| | | } |
| | | }).catch(error => { |
| | | console.error('请求失败:', error); |
| | | }); |
| | | this.$Modal.confirm({ |
| | | title: '删除确认', |
| | | content: '<p>确定要删除该消息吗?</p>', |
| | | onOk: () => { |
| | | let data = { |
| | | Id: item.id |
| | | } |
| | | axios.request({ |
| | | url: '/ChatHistory/DelChatHistoryDataById', |
| | | method: 'post', |
| | | data |
| | | }).then(res => { |
| | | console.log(res); |
| | | this.$Message.success('删除成功'); |
| | | if (type == 'chat') { |
| | | this.chatItems.splice(index, 1); |
| | | } else { |
| | | this.historyList.splice(index, 1); |
| | | } |
| | | }).catch(error => { |
| | | console.error('请求失败:', error); |
| | | }); |
| | | }, |
| | | |
| | | }) |
| | | }, |
| | | resend(message) { |
| | | console.log(message); |
| | |
| | | }, |
| | | computed: { |
| | | truncatedDescription() { |
| | | let description = this.query.Description.replace(/\n/g, '<br>'); |
| | | if (description.length > 200) { |
| | | return description.substring(0, 200) + '...'; |
| | | let description = this.query.Description; |
| | | |
| | | // 处理换行符 |
| | | if (description.includes('\n')) { |
| | | description = description.replace(/\n/g, '<br>'); |
| | | } |
| | | |
| | | // 截断描述 |
| | | if (description.length > 150) { |
| | | description = description.substring(0, 150) + '...'; |
| | | } |
| | | |
| | | console.log(description); |
| | | |
| | | return description; |
| | | } |
| | | } |
| | | |
| | | |
| | | }; |
| | | </script> |
| | | <style scoped lang="less"> |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | margin: 0 auto; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | |
| | | .chat-header-left { |
| | | width: 70px; |
| | |
| | | margin-left: 20px; |
| | | font-size: 30px; |
| | | font-weight: 600; |
| | | line-height: 70px; |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | margin-top: 20px; |
| | | font-size: 18px; |
| | | line-height: 25px; |
| | | white-space: pre-line; |
| | | /* 确保换行符生效 */ |
| | | } |
| | | |
| | | .chat-list { |
| | |
| | | icon="md-add">创建AI智能体</Button> |
| | | </div> |
| | | <div class="search-bar"> |
| | | <Input v-model="searchQuery" placeholder="搜索..." size="large" /> |
| | | <Input v-model="searchQuery" placeholder="请输入感兴趣的关键词" size="large" /> |
| | | <Button size="large" @click="changePage(1)" class="handleSubmit" type="primary" |
| | | icon="ios-search">搜索</Button> |
| | | <Button size="large" icon="ios-trash-outline" @click="clearSearch()" style="margin-left: 10px;" |
| | | class="handleSubmit" type="primary">清空</Button> |
| | | </div> |
| | | <div class="tabs"> |
| | | <Tabs :value="type" @on-click="handleTabChange"> |
| | |
| | | <TabPane label="行业" name="1"> |
| | | <!-- 工作分类的产品 --> |
| | | </TabPane> |
| | | <TabPane label="招商" name="2"> |
| | | <TabPane label="宏观" name="2"> |
| | | <!-- 培训分类的产品 --> |
| | | </TabPane> |
| | | <TabPane label="招商" name="3"> |
| | | <!-- 学习分类的产品 --> |
| | | </TabPane> |
| | | <!-- 更多TabPane --> |
| | | </Tabs> |
| | | </div> |
| | | <div class="products" v-if="products.length > 0"> |
| | | <div class="products" v-if="products.length > 0 && loading == false"> |
| | | <div class="product" v-for="item in products" :key="item.Id |
| | | " @click="chat(item)"> |
| | | <img :src="api + item.AvatarLink" style="width: 100px;height: 100px;" alt="" srcset=""> |
| | | <div style="margin-left: 10px;"> |
| | | <h2 class="title">{{ item.Name }}</h2> |
| | | <div> |
| | | <Poptip :content="item.Name" placement="top" trigger="hover" word-wrap width="300"> |
| | | <h2 class="title">{{ item.Name.length > 15 ? |
| | | item.Name.substring(0, 15) + '...' : item.Name }}</h2> |
| | | </Poptip> |
| | | </div> |
| | | <Poptip :content="item.Description" placement="top" trigger="hover" word-wrap width="300"> |
| | | <div>{{ item.Description.length > 25 ? |
| | | item.Description.substring(0, 25) + '...' : item.Description }}</div> |
| | | <div>{{ item.Description.length > 15 ? |
| | | item.Description.substring(0, 15) + '...' : item.Description }}</div> |
| | | </Poptip> |
| | | <div> |
| | | <Tooltip content="删除" class="tableActionMargin" theme="light"> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="no-data" v-else> |
| | | <div class="no-data" v-if="products.length == 0 && loading == false"> |
| | | <img src="../../assets/images/less.png" alt=""> |
| | | <p>暂无数据</p> |
| | | </div> |
| | | <Spin v-show="loading" style="padding-bottom: 50px;"> |
| | | <Icon type="ios-loading" size=18 class="demo-spin-icon-load"></Icon> |
| | | <div>Loading</div> |
| | | </Spin> |
| | | <Page :current="PageNum" :page-size="PageSize" :total="total" @on-change="changePage" show-elevator |
| | | style="float: right;position: relative; top: -50px;" /> |
| | | </div> |
| | |
| | | |
| | | <div style="margin-top: 10px;font-weight: 600;">名称(必填)</div> |
| | | <Input v-model="formItem.Name" placeholder="请输入名称" /> |
| | | <div style="margin-top: 10px;">智能体类型(必填)</div> |
| | | <div style="margin-top: 10px;font-weight: 600;">智能体类型(必填)</div> |
| | | <Select v-model="formItem.AgentType" filterable default-label="请选择智能体类型"> |
| | | <Option v-for="(option, index) in typeList" :value="option.value" :key="index">{{ option.label }} |
| | | </Option> |
| | | </Select> |
| | | <div style="margin-top: 10px;font-weight: 600;">描述(必填)</div> |
| | | <Input v-model="formItem.Description" type="textarea" ref="textarea" :rows="4" maxlength="100" show-word-limit |
| | | placeholder="请输入智能体描述" /> |
| | | <div style="margin-top: 10px;font-weight: 600;">提示词(必填)</div> |
| | | <Input v-model="formItem.Description" type="textarea" ref="textarea" |
| | | <Input v-model="formItem.Prompt" type="textarea" ref="textarea" :rows="4" |
| | | placeholder="示例:你是一位经验丰富的英语老师,拥有激发学生学习热情的教学方法。你善于运用幽默和实际应用案例,使对话充满趣味。" /> |
| | | <div style="margin-top: 10px;font-weight: 600;">权限设置</div> |
| | | <Select v-model="formItem.Permission" filterable default-label="公开 · 所有人可对话"> |
| | |
| | | |
| | | <div style="margin-top: 10px;font-weight: 600;">名称(必填)</div> |
| | | <Input v-model="formItem.Name" placeholder="请输入名称" /> |
| | | <div style="margin-top: 10px;">智能体类型(必填)</div> |
| | | <div style="margin-top: 10px;font-weight: 600;">智能体类型(必填)</div> |
| | | <Select v-model="formItem.AgentType" filterable default-label="请选择智能体类型"> |
| | | <Option v-for="(option, index) in typeList" :value="option.value" :key="index">{{ option.label }} |
| | | </Option> |
| | | </Select> |
| | | <div style="margin-top: 10px;font-weight: 600;">描述(必填)</div> |
| | | <Input v-model="formItem.Description" type="textarea" ref="textarea" :rows="4" maxlength="100" show-word-limit |
| | | placeholder="请输入智能体描述" /> |
| | | <div style="margin-top: 10px;font-weight: 600;">提示词(必填)</div> |
| | | <Input v-model="formItem.Description" type="textarea" ref="textarea" |
| | | <Input v-model="formItem.Prompt" type="textarea" ref="textarea" :rows="4" |
| | | placeholder="示例:你是一位经验丰富的英语老师,拥有激发学生学习热情的教学方法。你善于运用幽默和实际应用案例,使对话充满趣味。" /> |
| | | <div style="margin-top: 10px;font-weight: 600;">权限设置</div> |
| | | <Select v-model="formItem.Permission" filterable default-label="公开 · 所有人可对话"> |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | loading: false, |
| | | defaultImg: require("../../assets/images/rrlogo.png"), |
| | | api: 'http://47.92.245.94:8070', |
| | | api: 'http://47.98.113.167', |
| | | total: 0, |
| | | userId: Number(localStorage.getItem('userId')), |
| | | searchQuery: '', |
| | |
| | | Permission: 1, |
| | | AvatarLink: 0, |
| | | AgentType: Number(this.type), |
| | | CreatorId: this.userId |
| | | CreatorId: this.userId, |
| | | Prompt: '' |
| | | }, |
| | | |
| | | isDisabled: false, // 展示详情时为TRUE |
| | |
| | | typeList: [ |
| | | { value: 0, label: '企业' }, |
| | | { value: 1, label: '行业' }, |
| | | { value: 2, label: '招商' } |
| | | { value: 2, label: '宏观' }, |
| | | { value: 3, label: '招商' } |
| | | ], |
| | | picData: '', |
| | | }; |
| | |
| | | } |
| | | }, |
| | | methods: { |
| | | clearSearch() { |
| | | this.searchQuery = '' |
| | | this.changePage(1) |
| | | |
| | | }, |
| | | getPicture(e) { |
| | | let fileData = document.querySelector('#file').files[0]; |
| | | this.picData = new FormData(); |
| | |
| | | }, |
| | | chat(item) { |
| | | this.$router.push({ |
| | | path: '/chat', |
| | | path: '/AgentChat', |
| | | query: { |
| | | chatInfo: JSON.stringify(item) |
| | | } |
| | |
| | | this.editAI = true |
| | | }, |
| | | handleEdit() { |
| | | //如果 defaultImg 包含 http://47.92.245.94:8070 且 defaultImg 包含 AgentImg 说明没有重新上传图片 |
| | | if (this.defaultImg.indexOf('http://47.92.245.94:8070') > -1 && this.defaultImg.indexOf(this.formItem.AgentType) > -1) { |
| | | //如果 defaultImg 包含 http://47.98.113.167 且 defaultImg 包含 AgentImg 说明没有重新上传图片 |
| | | if (this.defaultImg.indexOf('http://47.98.113.167') > -1 && this.defaultImg.indexOf(this.formItem.AgentType) > -1) { |
| | | this.edit() |
| | | } else { |
| | | axios.request({ |
| | |
| | | }); |
| | | }, |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | // 处理Tab切换事件 |
| | | handleTabChange(name) { |
| | | this.type = name; |
| | | }, |
| | | // 获取数据列表 |
| | | getAgentDataList() { |
| | | this.loading = true; |
| | | let data = { |
| | | Keyword: this.searchQuery, |
| | | PageNum: this.PageNum, |
| | |
| | | }).then(res => { |
| | | if (res.data.Check) { |
| | | this.products = res.data.Data.Data; |
| | | for (let i = 0; i < this.products.length; i++) { |
| | | if (!this.products[i].Description) { |
| | | this.products[i].Description = '暂无描述' |
| | | } |
| | | if (!this.products[i].Prompt) { |
| | | this.products[i].Prompt = '暂无提示' |
| | | } |
| | | } |
| | | this.total = res.data.Data.TotalCount |
| | | this.loading = false; |
| | | } else { |
| | | this.products = [] |
| | | this.$Message.error('获取数据失败'); |
| | | this.loading = false; |
| | | } |
| | | |
| | | // console.log(res); |
| | | |
| | | }).catch(error => { |
| | | console.error('请求失败:', error); |
| | | }); |
| | |
| | | return; |
| | | } |
| | | if (data.Description == '') { |
| | | this.$Message.error('请输入提示词'); |
| | | return; |
| | | } |
| | | if (data.Prompt == '') { |
| | | this.$Message.error('请输入描述'); |
| | | return; |
| | | } |
| | | |
| | | console.log(data); |
| | | axios.request({ |
| | | url: 'AgentData/AddAgentData', |
| | | method: 'post', |
| | |
| | | AvatarLink: '', |
| | | AgentType: 0, |
| | | CreatorId: this.userId, |
| | | Prompt: '' |
| | | } |
| | | this.defaultImg = require("../../assets/images/rrlogo.png") |
| | | this.picData = '' |
| | |
| | | // // this.uploadList.push(this.apiTarget + res.data.fileUrl) |
| | | // // file.response.fileUrl = this.apiTarget + res.data.fileUrl |
| | | // // // // 回显时会用到 |
| | | // this.dialogImageUrl = 'http://47.92.245.94:8070' + this.formItem.AvatarLink |
| | | // this.dialogImageUrl = 'http://47.98.113.167' + this.formItem.AvatarLink |
| | | // console.log(this.dialogImageUrl); |
| | | |
| | | // // // // 赋值给imgid,新增和编辑的时候会用到 |
| | |
| | | } |
| | | |
| | | .imgShow { |
| | | width: 150px; |
| | | height: 150px; |
| | | width: 80px; |
| | | height: 80px; |
| | | margin: 10px 0; |
| | | position: relative; |
| | | left: calc(50% - 75px); |
| | | left: calc(50% - 40px); |
| | | |
| | | img { |
| | | width: 150px; |
| | | height: 150px; |
| | | width: 80px; |
| | | height: 80px; |
| | | border-radius: 5px; |
| | | } |
| | | } |
| | | |
| | | /* textarea.ivu-input{ |
| | | min-height: 200px !important; |
| | | } */ |
| | | .ivu-input-type-textarea .ivu-input { |
| | | min-height: 200px !important; |
| | | } |
| | | </style> |
| | |
| | | this.$refs['accountInformationValidate'].validate((valid) => { |
| | | if (valid) { |
| | | let data = JSON.parse(JSON.stringify(this.accountMsg)) |
| | | |
| | | |
| | | axios.request({ |
| | | url: '/user/UpdateAccountBasic', |
| | | data, |
| | | method: 'post' |
| | | }).then(res => { |
| | | if (res.data.Check) { |
| | | |
| | | this.$emit('getsontemplate', false) |
| | | this.getUserInfo() |
| | | // this.handleLogOut().then(() => { |
| | |
| | | <div id="register" style="position: relative;"> |
| | | <div class="header"> |
| | | <LoginHeader></LoginHeader> |
| | | <header style="width: 80%;margin-top: 20px;margin-left: 10%;color: #FFF;font-size: 17px;"> |
| | | 查政策 |
| | | <Icon type="ios-arrow-forward" /> 政策原文 |
| | | <span style="color: #409eff;font-size: 14px;cursor: pointer;color: #fff;" @click="chooseCity"> {{ City }} [切换城市] |
| | | <header |
| | | style="width: 80%;margin-top: 20px;margin-left: 10%;color: #FFF;font-size: 17px;display: flex;justify-content: space-between;"> |
| | | <div>查政策 |
| | | <Icon type="ios-arrow-forward" /> 政策原文 |
| | | </div> |
| | | <span style="color: #409eff;font-size: 14px;cursor: pointer;color: #fff;" @click="chooseCity"> {{ City |
| | | }} [切换] |
| | | </span> |
| | | </header> |
| | | <main> |
| | |
| | | <div style="width: 100px;white-space: nowrap;line-height: 32px;"> |
| | | 关键词 |
| | | </div> |
| | | <Input v-model="Keyword" placeholder="请输入关键词" style="width: 300px" /> |
| | | <Input v-model="Keyword" size="large" placeholder="请输入关键词" style="width: 300px" /> |
| | | <div> |
| | | <Button type="primary" style="margin-left: 20px;" @click="changePageIndex(1)">搜索</Button> |
| | | <Button type="primary" style="margin-left: 20px;" @click="clearSearch">清空</Button> |
| | | <Button type="primary" size="large" icon="ios-search" style="margin-left: 20px;" |
| | | @click="changePageIndex(1)">搜索</Button> |
| | | <Button type="primary" size="large" style="margin-left: 20px;" icon="ios-trash-outline" |
| | | @click="clearSearch">清空</Button> |
| | | </div> |
| | | </div> |
| | | </Card> |
| | |
| | | <div> |
| | | {{ row.index }} |
| | | </div> |
| | | </template> |
| | | <template slot="FavoriteFlag" slot-scope="{ row }"> |
| | | <Tooltip :content="row.FavoriteFlag == 1 ? '取消收藏' : '收藏'" class="tableActionMargin" |
| | | theme="light" transfer placement="top"> |
| | | <Icon custom="custom custom-xingbiao" size="18" |
| | | :class="row.FavoriteFlag == 0 ? 'actionIcon' : 'disabledIcon'" |
| | | :style="{ cursor: 'pointer', color: row.FavoriteFlag == 1 ? 'gold' : 'darkgray', }" |
| | | @click.stop="star(row)" /> |
| | | </Tooltip> |
| | | </template> |
| | | </Table> |
| | | <Page :total="total" :current="pageIndex" :page-size="pageSize" show-elevator |
| | |
| | | }, |
| | | |
| | | created() { |
| | | |
| | | |
| | | }, |
| | | watch: { |
| | | changeTab(e) { |
| | |
| | | }, |
| | | mounted() { |
| | | console.log(localStorage.getItem('City')); |
| | | |
| | | if(localStorage.getItem('City')){ |
| | | |
| | | if (localStorage.getItem('City')) { |
| | | this.City = localStorage.getItem('City') |
| | | }else { |
| | | } else { |
| | | this.City = '上海市' |
| | | localStorage.setItem('City', '上海市') |
| | | } |
| | |
| | | this.getAreaDataListFirst() |
| | | }, |
| | | methods: { |
| | | star(item) { |
| | | if (item.FavoriteFlag == 0) { |
| | | let data = { |
| | | ArticleId: item.Id, |
| | | UserId: Number(localStorage.getItem('userId')) |
| | | } |
| | | axios.request({ |
| | | url: '/CollectArticle/AddCollectArticleData', |
| | | method: 'post', |
| | | data: data |
| | | }).then(res => { |
| | | console.log(res); |
| | | if (res.data.Check) { |
| | | item.FavoriteFlag = 1 |
| | | this.$Message.success('操作成功') |
| | | // this.PageNum = 1 |
| | | // this.getAgentDataList() |
| | | } |
| | | }) |
| | | } else if (item.FavoriteFlag == 1) { |
| | | let data = { |
| | | ArticleId: item.Id, |
| | | UserId: Number(localStorage.getItem('userId')) |
| | | } |
| | | axios.request({ |
| | | url: '/CollectArticle/DelCollectArticleDataById', |
| | | method: 'post', |
| | | data |
| | | }).then(res => { |
| | | console.log(res); |
| | | if (res.data.Check) { |
| | | item.FavoriteFlag = 0 |
| | | this.$Message.success('操作成功') |
| | | // this.PageNum = 1 |
| | | // this.getAgentDataList() |
| | | } |
| | | }) |
| | | |
| | | } |
| | | |
| | | }, |
| | | getAreaDataListFirst() { |
| | | this.loadingScope = true |
| | | this.areaList = [ |
| | | { |
| | | City: null, |
| | |
| | | } |
| | | }, |
| | | getAreaDataList() { |
| | | this.loadingScope = true |
| | | this.areaList = [ |
| | | { |
| | | City: null, |
| | |
| | | this.City = item |
| | | localStorage.setItem('City', item) |
| | | console.log(localStorage.getItem('City')); |
| | | |
| | | |
| | | |
| | | |
| | | this.getAreaDataList() |
| | | this.cityModal = false |
| | | |
| | |
| | | align: 'center' |
| | | |
| | | }) |
| | | columns.push({ |
| | | title: '操作', |
| | | key: 'FavoriteFlag', |
| | | slot: 'FavoriteFlag', |
| | | width: 80, |
| | | align: 'center' |
| | | |
| | | }) |
| | | return columns |
| | | }, |
| | | }, |
| | |
| | | <div style="width: 100px;white-space: nowrap;line-height: 32px;"> |
| | | 关键词 |
| | | </div> |
| | | <Input v-model="Keyword" placeholder="请输入关键词" style="width: 300px" /> |
| | | <Input v-model="Keyword" size="large" placeholder="请输入关键词" style="width: 300px" /> |
| | | <div> |
| | | <Button type="primary" style="margin-left: 20px;" @click="changePageIndex(1)">搜索</Button> |
| | | <Button type="primary" style="margin-left: 20px;" @click="clearSearch">清空</Button> |
| | | <Button type="primary" size="large" icon="ios-search" style="margin-left: 20px;" @click="changePageIndex(1)">搜索</Button> |
| | | <Button type="primary" size="large" style="margin-left: 20px;" @click="clearSearch" icon="ios-trash-outline">清空</Button> |
| | | </div> |
| | | </div> |
| | | </Card> |
| New file |
| | |
| | | <template> |
| | | <div id="register" style="position: relative;"> |
| | | <div class="header"> |
| | | <LoginHeader></LoginHeader> |
| | | <header style="width: 80%;margin-top: 20px;margin-left: 10%;color: #FFF;font-size: 17px;"> |
| | | 政策匹配 |
| | | <Icon type="ios-arrow-forward" /> 政策洞察 |
| | | </header> |
| | | <main> |
| | | |
| | | <Card :bordered="false" :dis-hover="true" style="width: 80%;margin-top: 20px;margin-left: 10%;"> |
| | | <Tabs v-model='tab'> |
| | | <TabPane label="填写资料" name="tab1"></TabPane> |
| | | <TabPane label="匹配结果" v-if="tab == 'tab2'" name="tab2"></TabPane> |
| | | </Tabs> |
| | | <div v-if="tab == 'tab1'" |
| | | style="display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%;"> |
| | | <div style="margin-top: 50px;"> |
| | | <Poptip trigger="focus" placement="bottom-start" |
| | | style="width: 500px;float: left;margin-right: 10px;"> |
| | | <Input v-model="search" size="large" style="width: 500px;" placeholder="请输入企业名称" |
| | | @on-change="remoteMethod"> |
| | | <template #prepend> |
| | | 公司名称 |
| | | <Tooltip content="如需匹配的企业未添加到企业管理,请先添加企业,再进行匹配!" theme="light" transfer |
| | | max-width="200" placement="top"> |
| | | <Icon type="ios-help" /> |
| | | </Tooltip> |
| | | </template> |
| | | <template #append> |
| | | <!-- <Button>添加企业</Button> --> |
| | | <Button size="large" type="primary" @click="getList">匹配</Button> |
| | | </template> |
| | | </Input> |
| | | <ul slot="content" style="width: 500px;"> |
| | | <li v-if="optionsList && optionsList.length == 0">无匹配结果</li> |
| | | <li v-for="(item, index) in optionsList" :key="index" |
| | | @click="changeBelongLtdId(item.Name)" class="clearfix" |
| | | style="cursor:pointer;padding: 4px 2px;"> |
| | | <span style="float: left;">{{ item.Name }}</span> |
| | | <span |
| | | style="float: right;display: inline-block;border-radius: 4px;background-color: #e5f7fa;padding: 1px 4px;color: #05b6d0;">{{ |
| | | item.IsOriginalNameMatch ? '历史名称匹配' : '企业名称匹配' |
| | | }}</span> |
| | | </li> |
| | | </ul> |
| | | </Poptip> |
| | | </div> |
| | | </div> |
| | | <div v-if="tab == 'tab2'" style="padding-bottom: 50px;"> |
| | | <Spin v-show="loading" size="large" fix> |
| | | <!-- <Icon type="ios-loading" size=18 ></Icon> --> |
| | | <Icon type="ios-loading" size=18 class="demo-spin-icon-load"></Icon> |
| | | <!-- <div>Loading</div> --> |
| | | </Spin> |
| | | <Card v-if="content.length"> |
| | | |
| | | <p v-html="content"> |
| | | |
| | | </p> |
| | | </Card> |
| | | <!--<Card> |
| | | <div>共查到 <span style="color: #ff0000;">{{ list.length }}</span> 条数据 |
| | | 预计本企业可申请资助:5星:100万元以上,4星:100万元以上,3星:100万元以上,总计 |
| | | 200万元以上</div> |
| | | <div> |
| | | 关键词: |
| | | </div> |
| | | <Input v-model="keyword" size="large" style="width: 300px;" placeholder="请输入搜索关键词" /> |
| | | <Button size="large" type="primary" style="margin-left: 10px;">搜索</Button> |
| | | <Button size="large" type="primary" style="margin-left: 10px;">导出</Button> |
| | | |
| | | |
| | | </Card>--> |
| | | <!-- <Card v-for="(item, index) in listarr" style="margin-top: 20px;" class="card"> |
| | | <div class="type">工业互联网产业发展-工业互联网领域研发投入资助类</div> |
| | | <ul> |
| | | <li style="width: 40%;"> |
| | | <span class="title">受理部门:</span>龙华区工业和信息化局 |
| | | </li> |
| | | <li style="width: 20%;"> |
| | | <span class="title">申报年度:</span>2024 |
| | | </li> |
| | | <li style="width: 20%;"> |
| | | <span class="title">地区:</span>龙华区 |
| | | </li> |
| | | <li style="width: 20%;"> |
| | | <span class="title">匹配度:</span> |
| | | <Rate disabled v-model="rate" /> |
| | | </li> |
| | | </ul> |
| | | <div style="height: 30px;line-height: 30px;display: flex;color:#8590a6;"> |
| | | <div style="width: 25%;"><span |
| | | style="font-weight: 600;">申报时间:</span>2024.09.03-2024.09.18</div> |
| | | <div> |
| | | <span style="font-weight: 600;">支持力度:</span> |
| | | <Tooltip content="查看详情" theme="light" transfer max-width="200"> |
| | | 111111111 |
| | | </Tooltip> |
| | | </div> |
| | | |
| | | </div> |
| | | </Card> |
| | | <Page :total="total" :model-value="pageIndex" :page-size="pageSize" show-elevator |
| | | style="float: right;margin-top: 10px;" /> --> |
| | | |
| | | </div> |
| | | </Card> |
| | | |
| | | |
| | | </main> |
| | | </div> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import $ from 'jquery' |
| | | import axios from '@/libs/api.request' |
| | | import LoginHeader from '../login/loginHeader.vue' |
| | | |
| | | export default { |
| | | components: { |
| | | LoginHeader |
| | | }, |
| | | data() { |
| | | return { |
| | | rate: 5, |
| | | tab: 'tab1', |
| | | year: '',//当前年份 |
| | | loginModal: true, |
| | | activeIndex: 0, |
| | | loading: false, |
| | | isTrigger: false, |
| | | |
| | | list: [ |
| | | ], |
| | | listarr: [ |
| | | ], |
| | | search: '', |
| | | |
| | | data: [ |
| | | { |
| | | name: 'John Brown', |
| | | age: 18, |
| | | address: 'New York No. 1 Lake Park', |
| | | date: '2016-10-03' |
| | | }, |
| | | ], |
| | | total: 0, |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | keyword: '', |
| | | optionsList: [], |
| | | content: '' |
| | | |
| | | } |
| | | }, |
| | | created() { |
| | | this.year = new Date().getFullYear() |
| | | |
| | | }, |
| | | watch: { |
| | | |
| | | }, |
| | | mounted() { |
| | | if (localStorage.getItem('Address') && localStorage.getItem('Address') != 'null') { |
| | | this.search = localStorage.getItem('Address') |
| | | // this.getList() |
| | | } |
| | | }, |
| | | methods: { |
| | | getList() { |
| | | if (!this.search) { |
| | | this.$Message.warning('请输入企业名称') |
| | | return |
| | | } |
| | | this.GetPolicyAnswer() |
| | | this.tab = 'tab2' |
| | | |
| | | }, |
| | | chooseRoute(e) { |
| | | console.log(e); |
| | | if (e.disabled == true) { |
| | | this.$store.commit('openloginModal', true) |
| | | } else { |
| | | this.$router.push(e.url) |
| | | } |
| | | }, |
| | | changeMenu(item, index) { |
| | | this.activeIndex = index |
| | | if (item.url) { |
| | | this.$router.push(item.url) |
| | | } |
| | | }, |
| | | goLoginPage() { |
| | | this.$router.push('/') |
| | | }, |
| | | openLoginModal() { |
| | | this.$store.commit('openloginModal', true) |
| | | }, |
| | | remoteMethod() { |
| | | // this.TypeAdd = 1 |
| | | if (this.search !== '') { |
| | | this.searchLoading = true |
| | | let data = { name: this.search } |
| | | axios.request({ |
| | | url: '/QiChaCha/GetTycSearch2', |
| | | data, |
| | | method: 'post' |
| | | }).then(res => { |
| | | if (res.data.Check) { |
| | | this.optionsList = JSON.parse(JSON.stringify(res.data.Data.Items)) |
| | | } else { |
| | | this.optionsList = [] |
| | | } |
| | | this.searchLoading = false |
| | | }, res => { |
| | | this.optionsList = [] |
| | | this.searchLoading = false |
| | | }) |
| | | } else { |
| | | this.optionsList = [] |
| | | } |
| | | }, |
| | | changeBelongLtdId(item) { |
| | | this.search = item |
| | | }, |
| | | |
| | | GetPolicyAnswer() { |
| | | this.loading = true |
| | | let data = { |
| | | CompanyName: this.search |
| | | } |
| | | axios.request({ |
| | | url: '/SubsidyData/GetPolicyAnswer', |
| | | data, |
| | | method: 'post' |
| | | }).then(res => { |
| | | if (res.data.Check && res.data.Data.Data) { |
| | | this.content = res.data.Data.Data.replace(/\n/g, '<br>') |
| | | this.content = this.content.replace(/\*\*(.*?)\*\*/g, '<strong>$1</strong>'); |
| | | this.loading = false |
| | | |
| | | } else { |
| | | this.loading = false |
| | | this.$Message.error('获取详情失败') |
| | | this.tab = 'tab1' |
| | | } |
| | | |
| | | }, res => { |
| | | this.loading = false |
| | | |
| | | }); |
| | | |
| | | }, |
| | | |
| | | |
| | | }, |
| | | computed: { |
| | | columns() { |
| | | let columns = [] |
| | | columns.push({ |
| | | title: '分类', |
| | | key: 'name', |
| | | render: (h, params) => { |
| | | return h('div', params.row.name ? params.row.name : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '受理部门', |
| | | key: 'age', |
| | | render: (h, params) => { |
| | | return h('div', params.row.age ? params.row.age : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '申报时间', |
| | | key: 'address', |
| | | render: (h, params) => { |
| | | return h('div', params.row.address ? params.row.address : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '地区', |
| | | key: 'action', |
| | | render: (h, params) => { |
| | | return h('div', params.row.action ? params.row.action : '--') |
| | | } |
| | | }) |
| | | |
| | | columns.push({ |
| | | title: '匹配度', |
| | | key: 'action', |
| | | render: (h, params) => { |
| | | return h('div', params.row.action ? params.row.action : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '支持力度', |
| | | key: 'action', |
| | | render: (h, params) => { |
| | | return h('div', params.row.action ? params.row.action : '--') |
| | | } |
| | | }) |
| | | return columns |
| | | }, |
| | | |
| | | }, |
| | | |
| | | } |
| | | </script> |
| | | <style lang="less" scoped> |
| | | #register { |
| | | min-width: 1450px; |
| | | background-color: #F6FBFE; |
| | | } |
| | | |
| | | .active { |
| | | border-bottom: 4px solid #FFB13D; |
| | | } |
| | | |
| | | .header { |
| | | width: 100%; |
| | | height: 950px; |
| | | background: url(../../assets/images/topBack.png) 100% 950px no-repeat; |
| | | background-position: center; |
| | | position: relative; |
| | | |
| | | |
| | | |
| | | .ivu-input-group>.ivu-input:last-child, |
| | | /deep/ .ivu-input-group-append { |
| | | background-color: #2D8CF0; |
| | | color: #fff; |
| | | |
| | | } |
| | | |
| | | /deep/ .ivu-input-group-large .ivu-input, |
| | | .ivu-input-group-large>.ivu-input-group-prepend, |
| | | .ivu-input-group-large>.ivu-input-group-append { |
| | | height: 41px; |
| | | border-top-left-radius: 4px; |
| | | border-bottom-left-radius: 4px; |
| | | } |
| | | |
| | | .ivu-input-group>span>.ivu-input:first-child, |
| | | .ivu-input-group>.ivu-input:first-child, |
| | | /deep/ .ivu-input-group-prepend { |
| | | display: none; |
| | | } |
| | | } |
| | | |
| | | .card { |
| | | .type { |
| | | font-size: 18px; |
| | | height: 30px; |
| | | line-height: 30px; |
| | | } |
| | | |
| | | ul { |
| | | width: 100%; |
| | | white-space: nowrap; |
| | | display: flex; |
| | | height: 32px; |
| | | line-height: 32px; |
| | | |
| | | li { |
| | | display: flex; |
| | | margin-right: 10px; |
| | | |
| | | .title { |
| | | color: #409eff; |
| | | font-weight: 600; |
| | | |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | .top, |
| | | .bottom { |
| | | text-align: center; |
| | | } |
| | | |
| | | |
| | | .demo-spin-col .circular { |
| | | width: 25px; |
| | | height: 25px; |
| | | } |
| | | |
| | | .demo-spin-icon-load { |
| | | animation: ani-demo-spin 1s linear infinite; |
| | | } |
| | | |
| | | @keyframes ani-demo-spin { |
| | | from { |
| | | transform: rotate(0deg); |
| | | } |
| | | |
| | | 50% { |
| | | transform: rotate(180deg); |
| | | } |
| | | |
| | | to { |
| | | transform: rotate(360deg); |
| | | } |
| | | } |
| | | |
| | | .demo-spin-col { |
| | | height: 100px; |
| | | position: relative; |
| | | border: 1px solid #eee; |
| | | } |
| | | </style> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="copyRight" |
| | | style="position: absolute;width: 100%;bottom: 0; text-align: center;height: 100px;line-height: 100px;"> |
| | | style="width: 100%; text-align: center;"> |
| | | {{ `Copyright © 上海仁软科技有限公司 © 2024 版权所有 | ` }} |
| | | <a href="https://beian.miit.gov.cn/#/Integrated/index" style="color: white;" target="_blank"> |
| | | 沪ICP备17038813号-2</a> |
| | |
| | | .request({ |
| | | url: "/User/ResetPassword", |
| | | params: { |
| | | phoneNumber: this.userTel, |
| | | code: this.verifyCode, |
| | | password: this.password, |
| | | Phone: this.userTel, |
| | | Code: this.verifyCode, |
| | | Password: this.password, |
| | | UserId:-1 |
| | | }, |
| | | method: "post", |
| | | }) |
| | |
| | | style="width: 544px;margin: 123px auto 79px;position: relative;left:calc(50% - 272px);" alt=""> |
| | | <div style="width: 910px;position: static;margin-left:calc(50% - 455px);height: 40px;"> |
| | | <!-- @on-change="remoteMethod" --> |
| | | <Input v-model="search" placeholder="输入关键词搜索" size="large" |
| | | style="width: 910px;"> |
| | | <Input v-model="search" placeholder="输入关键词搜索" size="large" style="width: 910px;"> |
| | | <template #prepend> |
| | | <div> |
| | | <img src="../../assets/images/home/home_18.png" style="width: 24px;height: 24px;" alt=""> |
| | |
| | | 搜一搜</div> |
| | | </template> |
| | | </Input> |
| | | |
| | | |
| | | </div> |
| | | <div class="hot"> |
| | | <div class="left"><img src="../../assets//images/home/hot.png" style="width: 67px;height: 30px;" alt=""> |
| | | <div style="width: 1px;height: 30px;background-color: #fff;margin: 0 20px;"></div> |
| | | <ul v-if="loadingHot"> |
| | | <li v-for="item in hotSearch" @click="chooseItem(item)" style="line-height: 30px;"> |
| | | {{ item }} |
| | | <li v-for="item in hotSearch" @click="chooseItem(item)" style="line-height: 30px;"> |
| | | <!-- {{ item }} --> |
| | | <Poptip :content="item" placement="top" trigger="hover" word-wrap width="300"> |
| | | {{ item.length>15?item.slice(0,15)+'...':item }} |
| | | </Poptip> |
| | | |
| | | </li> |
| | | </ul> |
| | | <div v-else class="loadHot"> |
| | |
| | | <div>政策项目</div> |
| | | <!-- <div>政策原文</div> --> |
| | | </div> |
| | | <div class="type2">根据财报提前半年预测暴雷风险</div> |
| | | <div class="type2">智慧申报,政策红利触手可及</div> |
| | | </div> |
| | | </li> |
| | | <li @click="clickJumpPage2('fastMatch')" style="cursor: pointer;"> |
| | | <img src="../../assets/images/home/home_zu16.png" alt=""> |
| | | <div> |
| | | <div class="type1"> |
| | | <div>智能匹配</div> |
| | | <div>政策洞察</div> |
| | | <!-- <div>政策项目</div> --> |
| | | </div> |
| | | <div class="type2"> 基于公开信息智能输出信用画像</div> |
| | | <div class="type2"> 实时分析,助力企业洞察先机</div> |
| | | </div> |
| | | </li> |
| | | <li @click="clickJumpPage2('precise')" style="cursor: pointer;"> |
| | |
| | | <!-- <div>政策匹配</div> --> |
| | | <div>政策补贴</div> |
| | | </div> |
| | | <div class="type2">基于客户订阅定向推送最新资讯</div> |
| | | <div class="type2">补贴申报,一键轻松直达优惠</div> |
| | | </div> |
| | | </li> |
| | | </ul> |
| | |
| | | import wexinchat from '@/view/diligenceTools/wexinchatPoptip.vue' |
| | | import Cookies from "js-cookie"; |
| | | import LoginHeader from './loginHeader.vue' |
| | | import {getToken,} from '@/libs/util' |
| | | import { getToken, } from '@/libs/util' |
| | | export default { |
| | | components: { |
| | | LoginForm, |
| | |
| | | GetSearchInfoListAll() { |
| | | this.loadingHot = false |
| | | this.hotSearch = [] |
| | | let data= { |
| | | let data = { |
| | | // UserId:getToken()?localStorage.getItem('userId'):-1 |
| | | UserId:-1 |
| | | UserId: -1 |
| | | } |
| | | axios.request({ |
| | | url: '/SearchInfo/GetSearchPolicyList', |
| | |
| | | clickJumpPage2(value) { |
| | | // sessionStorage.setItem('loginClick', value) |
| | | // if (this.$store.state.user.token) { |
| | | this.$router.push(value) |
| | | this.$router.push(value) |
| | | // } else { |
| | | // // if (value == 'controlList') { |
| | | // this.$store.commit('openloginModal', true) |
| | |
| | | icon: require('../../assets/images/home/home_16.png'), |
| | | children: [ |
| | | { |
| | | title: '智能匹配', |
| | | title: '政策洞察', |
| | | url: 'fastMatch', |
| | | disabled: false |
| | | |
| | |
| | | }, |
| | | { |
| | | title: '政策智能体', |
| | | url: '/IntelligentAgent', |
| | | url: '/FindAgent', |
| | | icon: require('../../assets/images/home/home14.png'), |
| | | children: [ |
| | | // { |
| | |
| | | icon: require('../../assets/images/home/home_16.png'), |
| | | children: [ |
| | | { |
| | | title: '智能匹配', |
| | | title: '政策洞察', |
| | | url: 'fastMatch', |
| | | disabled: false |
| | | |
| | |
| | | }, |
| | | { |
| | | title: '政策智能体', |
| | | url: '/IntelligentAgent', |
| | | url: '/FindAgent', |
| | | icon: require('../../assets/images/home/home14.png'), |
| | | children: [ |
| | | // { |
| | |
| | | { url: 'fastMatch', url2: 'fastMatch' }, |
| | | { url: 'precise', url2: 'precise' }, |
| | | |
| | | { url: 'IntelligentAgent', url2: 'Intelligent' } |
| | | { url: 'FindAgent', url2: 'Intelligent' } |
| | | // { url: '_homeEx', url2: '_homeEx' }, |
| | | // { url: 'rentExchangeZF', url2: 'rentExchangeZF' }, |
| | | // { url: 'rentExchange', url2: 'rentExchange' }, |
| | |
| | | { url: 'fastMatch', url2: 'fastMatch' }, |
| | | { url: 'precise', url2: 'precise' }, |
| | | |
| | | { url: 'IntelligentAgent', url2: 'Intelligent' } |
| | | { url: 'FindAgent', url2: 'Intelligent' } |
| | | |
| | | |
| | | // { url: '_homeEx', url2: '_homeEx' }, |
| | |
| | | } |
| | | if (index == 3 ) { |
| | | |
| | | localStorage.setItem('powerAccess', 'IntelligentAgent') |
| | | sessionStorage.setItem('loginClick', 'IntelligentAgent') |
| | | localStorage.setItem('powerAccess', 'FindAgent') |
| | | sessionStorage.setItem('loginClick', 'FindAgent') |
| | | this.$store.commit('routeIndexChange', index) |
| | | this.$router.push(item.url).catch(err => { }) |
| | | this.activeIndex = index |
| | |
| | | style="width: 38px;height: 38px;position: absolute;top: 0;right: 0;cursor: pointer;" |
| | | @click="closeLoginModal" alt=""> |
| | | <img src="../../assets/images/home/home62.png" style="width: 202px;margin: 30px 112px 20px;"> |
| | | <!-- <img src="../../assets/images/rczdlogo.png" style="width: 202px;margin: 30px 112px 20px;"> --> |
| | | <div class="form-con" style="padding: 0 15px;"> |
| | | <div> |
| | | <!-- <ul class="loginway_change"> |
| | |
| | | <div @click="accountRegister" style="cursor: pointer;">注册账号</div> |
| | | </div> |
| | | <div v-if="accountLogin"> |
| | | <login-form v-if="accountLogin" @on-success-valid="handleSubmit" :loading="loading" :type="loginType"></login-form> |
| | | <login-form v-if="accountLogin" @on-success-valid="handleSubmit" :loading="loading" |
| | | :type="loginType"></login-form> |
| | | </div> |
| | | <div v-show="wechatQR" style="height: 338px"> |
| | | <div style="text-align: center;padding-top: 24px;"> |
| | |
| | | <img src="../../assets/images/companyWechat.png" alt=""> |
| | | </div> |
| | | </Poptip> --> |
| | | <p style="cursor: pointer;color: #1183a7;" >忘记密码</p> |
| | | <p style="cursor: pointer;color: #1183a7;">忘记密码</p> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | |
| | | }, |
| | | methods: { |
| | | goForgot(){ |
| | | goForgot() { |
| | | console.log(111); |
| | | if (this.$route.name == 'forgot') { |
| | | this.$store.commit('openloginModal', false) |
| | |
| | | // if (this.$store.state.user.userUrl != '') { |
| | | // localStorage.setItem('powerAccess', "newdiligenceTools") |
| | | this.getUserInfo().then(res => { |
| | | |
| | | this.getAccountInfo(res.Data.token,res.Data.user_id) |
| | | console.log(res); |
| | | this.$store.commit('openloginModal', false) |
| | | this.$store.state.user.current = '' |
| | |
| | | }) |
| | | } else { |
| | | console.log(sessionStorage.getItem('loginClick')); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | if (sessionStorage.getItem('loginClick')) { |
| | | this.$store.commit('setMainTag', 'login') |
| | | this.$router.push({ |
| | |
| | | }, res => { |
| | | this.loading = false |
| | | }) |
| | | } |
| | | }, |
| | | getAccountInfo(token,id) { |
| | | let data = { |
| | | token: token, |
| | | id: id |
| | | } |
| | | axios.request({ |
| | | url: '/User/GetUserInfo', |
| | | data, |
| | | method: 'post' |
| | | }).then(res => { |
| | | if (res.data.Check) { |
| | | // this.accountMsg = { |
| | | // id: res.data.Data.Id, |
| | | // LoginName: res.data.Data.LoginName, |
| | | // RealName: res.data.Data.RealName, |
| | | // Mobile: res.data.Data.Mobile, |
| | | // Mail: res.data.Data.Mail, |
| | | // QQ: res.data.Data.QQ, |
| | | // Wechat: res.data.Data.Wechat, |
| | | // Address: res.data.Data.Address |
| | | // } |
| | | localStorage.setItem('Address', res.data.Data.Address) |
| | | } else { |
| | | |
| | | } |
| | | }, res => { |
| | | |
| | | }) |
| | | }, |
| | | }, |
| | | // computed: { |
| | | // loginModal() { |
| | |
| | | </div> |
| | | |
| | | <div class="register"> |
| | | <img src="../../assets/images/home/home62.png" style="width: 267px;margin: 89px 218px 68px 236px"> |
| | | <img src="../../assets/images/home/home62.png" style="width: 267px;margin: 45px 218px 34px 236px"> |
| | | <div style="display: flex;justify-content: space-between;padding: 0 50px;"> |
| | | <Radio v-model="single" style="padding: 0 0px;">个人注册</Radio> |
| | | <!-- <Poptip placement="bottom" trigger="hover"> |
| | |
| | | <LoginHeader></LoginHeader> |
| | | <header style="width: 80%;margin-top: 20px;margin-left: 10%;color: #FFF;font-size: 17px;"> |
| | | 政策匹配 |
| | | <Icon type="ios-arrow-forward" /> 智能匹配 |
| | | <Icon type="ios-arrow-forward" /> 政策洞察 |
| | | </header> |
| | | <main> |
| | | |
| | |
| | | |
| | | }, |
| | | mounted() { |
| | | |
| | | |
| | | |
| | | if (localStorage.getItem('Address') && localStorage.getItem('Address') != 'null') { |
| | | this.search = localStorage.getItem('Address') |
| | | // this.getList() |
| | | } |
| | | }, |
| | | methods: { |
| | | getList() { |
| | |
| | | data, |
| | | method: 'post' |
| | | }).then(res => { |
| | | if (res.data.Check) { |
| | | if (res.data.Check && res.data.Data.Data) { |
| | | this.content = res.data.Data.Data.replace(/\n/g, '<br>') |
| | | this.content = this.content.replace(/\*\*(.*?)\*\*/g, '<strong>$1</strong>'); |
| | | this.loading = false |
| | | |
| | | } else { |
| | | this.loading = false |
| | | |
| | | this.$Message.error('获取详情失败') |
| | | this.tab = 'tab1' |
| | | } |
| | | |
| | | }, res => { |
| | |
| | | |
| | | }); |
| | | |
| | | } |
| | | }, |
| | | |
| | | |
| | | }, |
| | |
| | | <div v-if="tab == 'tab2'" style="padding-bottom: 50px;"> |
| | | <Card v-if="tab1 == 'tab1'"> |
| | | <Input v-model="keyword" size="large" style="width: 300px;" placeholder="请输入搜索关键词" /> |
| | | <Button size="large" type="primary" style="margin-left: 10px;" |
| | | <Button size="large" type="primary" style="margin-left: 10px;" icon="ios-search" |
| | | @click="changePageIndex(1)">搜索</Button> |
| | | <Button size="large" type="primary" style="margin-left: 10px;" |
| | | <Button size="large" type="primary" style="margin-left: 10px;" icon="ios-trash-outline" |
| | | @click="exportExcel">清空</Button> |
| | | </Card> |
| | | <Card style="margin-top: 20px; padding-bottom: 50px;" class="card"> |
| | |
| | | }) |
| | | ]) |
| | | }, |
| | | first: false, |
| | | first: true, |
| | | }; |
| | | }, |
| | | created() { |
| | |
| | | watch: { |
| | | tab1(val) { |
| | | this.pageIndex = 1 |
| | | this.total1 = 0 |
| | | this.total2 = 0 |
| | | |
| | | // this.total1 = 0 |
| | | // this.total2 = 0 |
| | | |
| | | if (val == 'tab1') { |
| | | this.tab1 = 'tab1'; |
| | | this.tab = 'tab2'; |
| | | this.changePageIndex(1); |
| | | // this.changePageIndex(1); |
| | | console.log(this.first); |
| | | |
| | | if (this.first == true) { |
| | | this.getPolicyApplied() |
| | | } |
| | | } else if (val == 'tab2' && this.first == false) { |
| | | this.tab1 = 'tab2'; |
| | | this.tab = 'tab2'; |
| | | this.getPolicyApplied() |
| | | } else if (val == 'tab2' && this.first == true) { |
| | | this.tab1 = 'tab2'; |
| | | this.tab = 'tab2'; |
| | | this.changePageIndex1(1) |
| | | } |
| | | }, |
| | | tab(val) { |
| | | if (val == 'tab1') { |
| | | this.tab1 = ''; |
| | | this.first = true |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | | console.log(this.$route.query.name); |
| | | // if (this.$route.query.name) { |
| | | // this.search = this.$route.query.name; |
| | | // this.tab1 = 'tab1'; |
| | | // this.tab = 'tab2'; |
| | | // // this.changePageIndex(1); |
| | | // } |
| | | if (localStorage.getItem('Address') && localStorage.getItem('Address') != 'null') { |
| | | this.search = localStorage.getItem('Address') |
| | | // this.tab1 = 'tab1'; |
| | | } |
| | | }, |
| | | methods: { |
| | | getArticleDataList() { |
| | |
| | | } |
| | | this.dataList = res.data.Data.Data; |
| | | this.total1 = res.data.Data.TotalCount; |
| | | this.loading = false; |
| | | if (this.first == false) { |
| | | this.loading = false; |
| | | } |
| | | } else { |
| | | this.$Message.error(res.data.Msg); |
| | | this.loading = false; |
| | | if (this.first == false) { |
| | | this.loading = false; |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | |
| | | data, |
| | | method: 'post' |
| | | }).then(res => { |
| | | if (res.data.Check) { |
| | | if (res.data.Check && res.data.Data&&res.data.Data?.Data != '-1'&& res.data.Data?.Data != '-2') { |
| | | this.PolicyAppliedList = res.data.Data.Data; |
| | | this.total2 = this.PolicyAppliedList.length; |
| | | // 前端分页 |
| | | this.PolicyAppliedPageList = this.PolicyAppliedList.slice((this.pageIndex - 1) * this.pageSize, this.pageIndex * this.pageSize); |
| | | this.loading2 = false; |
| | | this.loading = false; |
| | | this.first = false |
| | | } else { |
| | | this.PolicyAppliedList = [] |
| | | this.total2 = 0 |
| | | this.loading2 = false; |
| | | this.loading = false; |
| | | this.first = false |
| | | } |
| | | |
| | | }, res => { |
| | | |
| | | }); |
| | |
| | | title: '获批时间', |
| | | key: 'Date', |
| | | render: (h, params) => { |
| | | return h('div', params.row.Date ? params.row.Date : '--') |
| | | return h('div', params.row.Date ? params.row.Date.slice(0, 4) : '--') |
| | | }, |
| | | width: 200 |
| | | }) |
| | |
| | | <FormItem label="微信号" prop="Wechat" style="width: 45%;float:right;"> |
| | | <Input size="large" v-model="accountMsg.Wechat" placeholder="请输入微信号" style="width: 220px;"></Input> |
| | | </FormItem> |
| | | <FormItem label="地址" style="width: 100%;float:right;"> |
| | | <FormItem label="默认企业" style="width: 100%;float:right;"> |
| | | <Input size="large" v-model="accountMsg.Address" type="textarea" placeholder="请输入地址"></Input> |
| | | </FormItem> |
| | | </Form> |
| | |
| | | this.$refs['accountInformationValidate'].validate((valid) => { |
| | | if (valid) { |
| | | let data = JSON.parse(JSON.stringify(this.accountMsg)) |
| | | localStorage.setItem('Address', data.Address) |
| | | axios.request({ |
| | | url: '/user/UpdateAccountBasic', |
| | | data, |
| | |
| | | devServer: { |
| | | proxy: { |
| | | '/baseURL': { |
| | | target: 'http://47.92.245.94:8070/', |
| | | target: 'http://47.98.113.167/', |
| | | changeOrigin: true, |
| | | pathRewrite: { |
| | | '^/baseURL': '' |