hailu
2024-11-07 e9aa61b3236e35e6d146effdddeb48b0452571a1
备份
19个文件已修改
2个文件已添加
1061 ■■■■ 已修改文件
.env 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/images/loginlogo.png 补丁 | 查看 | 原始文档 | blame | 历史
src/libs/axios.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/routers.js 70 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/IntelligentAgent/allAgent.vue 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/IntelligentAgent/chat.vue 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/IntelligentAgent/myAgent.vue 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/accountInformation/accountInformation.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/checkPolicies/originalText.vue 91 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/checkPolicies/project.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/login/fastMatch.vue 417 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/login/forgot.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/login/login.vue 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/login/loginHeader.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/login/loginModal.vue 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/login/register.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/policyMatching/fastMatch.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/policyMatching/precise.vue 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/reportCenters/userManagement.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vue.config.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env
@@ -1 +1 @@
VUE_APP_API_TARGET=http://47.92.245.94:8070/
VUE_APP_API_TARGET=http://47.98.113.167/
src/assets/images/loginlogo.png
src/libs/axios.js
@@ -53,8 +53,6 @@
    })
    // 响应拦截
    instance.interceptors.response.use(res => {
      console.log(res);
      if (res.data.TimeOutFlag) {
        if (store.state.user.current != 'login') {
          store.state.user.current = 'login'
src/router/index.js
@@ -109,7 +109,7 @@
  {
    index: 3,
    route: [
      'IntelligentAgent',
      'FindAgent',
      // 'enterpriseRelationshipMining',
      // '_homeEx',
      // 'rentExchangeCompany',
src/router/routers.js
@@ -112,19 +112,23 @@
  // },
  {
    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: '发现智能体'
@@ -133,10 +137,11 @@
          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: '我的智能体'
        },
@@ -144,10 +149,11 @@
          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: '对话'
@@ -180,30 +186,30 @@
        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',
src/view/IntelligentAgent/allAgent.vue
@@ -6,8 +6,12 @@
                <!-- <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">
@@ -16,7 +20,10 @@
                    <TabPane label="行业" name="1">
                        <!-- 工作分类的产品 -->
                    </TabPane>
                    <TabPane label="招商" name="2">
                    <TabPane label="宏观" name="2">
                        <!-- 行业分类的产品 -->
                    </TabPane>
                    <TabPane label="招商" name="3">
                        <!-- 学习分类的产品 -->
                    </TabPane>
                    <TabPane label="我的收藏" name="-1">
@@ -25,16 +32,17 @@
                    <!-- 更多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>
@@ -51,15 +59,19 @@
                    </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>
@@ -71,7 +83,8 @@
    },
    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: '',
@@ -122,9 +135,14 @@
        }
    },
    methods: {
        clearSearch() {
            this.searchQuery = ''
            this.changePage(1)
        },
        chat(item) {
            this.$router.push({
                path: '/chat',
                path: '/AgentChat',
                query: {
                    chatInfo: JSON.stringify(item)
                }
@@ -144,6 +162,7 @@
                }
                axios.request({
                    url: 'StarAgent/AddStarAgentData',
                    method: 'post',
                    data: data
                }).then(res => {
@@ -208,7 +227,7 @@
        },
        // 获取数据列表
        getAgentDataList() {
            // this.products = []
            this.loading = true;
            let data = {
                Keyword: this.searchQuery,
                PageNum: this.PageNum,
@@ -227,10 +246,20 @@
            }).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);
@@ -309,7 +338,7 @@
            // 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
src/view/IntelligentAgent/chat.vue
@@ -2,30 +2,32 @@
  <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"
@@ -94,7 +96,7 @@
    return {
      loadingSub: false,
      loading: false, // 添加 loading 状态
      api: 'http://47.92.245.94:8070',
      api: 'http://47.98.113.167',
      query: {
        Name: '',
        AvatarLink: '',
@@ -125,6 +127,10 @@
    this.$refs.chatContainer.removeEventListener('scroll', this.handleScroll);
  },
  methods: {
    // 返回上一页
    back(){
      this.$router.back(-1)
    },
    // 获取历史记录
    getHistory(scrollToBottom = true) {
      let data = {
@@ -201,6 +207,7 @@
          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);
@@ -227,7 +234,7 @@
        } else {
          clearInterval(interval);
          this.scrollToBottom();
          this.loadingSub = false;
        }
      }, 100);
    },
@@ -278,26 +285,31 @@
    },
    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);
@@ -307,15 +319,23 @@
  },
  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">
@@ -341,6 +361,8 @@
    display: flex;
    align-items: center;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    .chat-header-left {
      width: 70px;
@@ -357,6 +379,8 @@
      margin-left: 20px;
      font-size: 30px;
      font-weight: 600;
      line-height: 70px;
    }
  }
@@ -369,6 +393,8 @@
    margin-top: 20px;
    font-size: 18px;
    line-height: 25px;
    white-space: pre-line;
    /* 确保换行符生效 */
  }
  .chat-list {
src/view/IntelligentAgent/myAgent.vue
@@ -7,9 +7,11 @@
                    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">
@@ -18,21 +20,29 @@
                    <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">
@@ -47,10 +57,14 @@
                    </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>
@@ -74,13 +88,16 @@
            <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="公开 · 所有人可对话">
@@ -113,13 +130,16 @@
            <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="公开 · 所有人可对话">
@@ -145,8 +165,9 @@
    },
    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: '',
@@ -163,7 +184,8 @@
                Permission: 1,
                AvatarLink: 0,
                AgentType: Number(this.type),
                CreatorId: this.userId
                CreatorId: this.userId,
                Prompt: ''
            },
            isDisabled: false, // 展示详情时为TRUE
@@ -186,7 +208,8 @@
            typeList: [
                { value: 0, label: '企业' },
                { value: 1, label: '行业' },
                { value: 2, label: '招商' }
                { value: 2, label: '宏观' },
                { value: 3, label: '招商' }
            ],
            picData: '',
        };
@@ -202,6 +225,11 @@
        }
    },
    methods: {
        clearSearch() {
            this.searchQuery = ''
            this.changePage(1)
        },
        getPicture(e) {
            let fileData = document.querySelector('#file').files[0];
            this.picData = new FormData();
@@ -215,7 +243,7 @@
        },
        chat(item) {
            this.$router.push({
                path: '/chat',
                path: '/AgentChat',
                query: {
                    chatInfo: JSON.stringify(item)
                }
@@ -282,8 +310,8 @@
            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({
@@ -321,17 +349,13 @@
            });
        },
        // 处理Tab切换事件
        handleTabChange(name) {
            this.type = name;
        },
        // 获取数据列表
        getAgentDataList() {
            this.loading = true;
            let data = {
                Keyword: this.searchQuery,
                PageNum: this.PageNum,
@@ -347,14 +371,21 @@
            }).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);
            });
@@ -388,11 +419,13 @@
                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',
@@ -419,6 +452,7 @@
                AvatarLink: '',
                AgentType: 0,
                CreatorId: this.userId,
                Prompt: ''
            }
            this.defaultImg = require("../../assets/images/rrlogo.png")
            this.picData = ''
@@ -452,7 +486,7 @@
        //     // 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,新增和编辑的时候会用到
@@ -563,16 +597,23 @@
}
.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>
src/view/accountInformation/accountInformation.vue
@@ -222,12 +222,15 @@
      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(() => {
src/view/checkPolicies/originalText.vue
@@ -2,10 +2,13 @@
    <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>
@@ -66,10 +69,12 @@
                        <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>
@@ -85,6 +90,15 @@
                            <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
@@ -175,7 +189,7 @@
    },
    created() {
    },
    watch: {
        changeTab(e) {
@@ -199,10 +213,10 @@
    },
    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', '上海市')
        }
@@ -214,7 +228,49 @@
        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,
@@ -313,6 +369,7 @@
            }
        },
        getAreaDataList() {
            this.loadingScope = true
            this.areaList = [
                {
                    City: null,
@@ -493,8 +550,8 @@
            this.City = item
            localStorage.setItem('City', item)
            console.log(localStorage.getItem('City'));
            this.getAreaDataList()
            this.cityModal = false
@@ -532,6 +589,14 @@
                align: 'center'
            })
            columns.push({
                title: '操作',
                key: 'FavoriteFlag',
                slot: 'FavoriteFlag',
                width: 80,
                align: 'center'
            })
            return columns
        },
    },
src/view/checkPolicies/project.vue
@@ -12,10 +12,10 @@
                        <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>
src/view/login/fastMatch.vue
New file
@@ -0,0 +1,417 @@
<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>
src/view/login/forgot.vue
@@ -51,7 +51,7 @@
        </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 &copy; 上海仁软科技有限公司 © 2024 版权所有 | ` }}
        <a href="https://beian.miit.gov.cn/#/Integrated/index" style="color: white;" target="_blank">
          沪ICP备17038813号-2</a>
@@ -127,9 +127,10 @@
            .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",
            })
src/view/login/login.vue
@@ -9,8 +9,7 @@
                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="">
@@ -22,14 +21,18 @@
                        搜一搜</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">
@@ -54,17 +57,17 @@
                                <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;">
@@ -74,7 +77,7 @@
                                <!-- <div>政策匹配</div> -->
                                <div>政策补贴</div>
                            </div>
                            <div class="type2">基于客户订阅定向推送最新资讯</div>
                            <div class="type2">补贴申报,一键轻松直达优惠</div>
                        </div>
                    </li>
                </ul>
@@ -124,7 +127,7 @@
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,
@@ -230,9 +233,9 @@
        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',
@@ -271,7 +274,7 @@
        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)
src/view/login/loginHeader.vue
@@ -95,7 +95,7 @@
                    icon: require('../../assets/images/home/home_16.png'),
                    children: [
                        {
                            title: '智能匹配',
                            title: '政策洞察',
                            url: 'fastMatch',
                            disabled: false
@@ -110,7 +110,7 @@
                },
                {
                    title: '政策智能体',
                    url: '/IntelligentAgent',
                    url: '/FindAgent',
                    icon: require('../../assets/images/home/home14.png'),
                    children: [
                        // {
@@ -168,7 +168,7 @@
                icon: require('../../assets/images/home/home_16.png'),
                children: [
                    {
                        title: '智能匹配',
                        title: '政策洞察',
                        url: 'fastMatch',
                        disabled: false
@@ -183,7 +183,7 @@
            },
            {
                title: '政策智能体',
                url: '/IntelligentAgent',
                url: '/FindAgent',
                icon: require('../../assets/images/home/home14.png'),
                children: [
                    //     {
@@ -216,7 +216,7 @@
                { 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' },
@@ -231,7 +231,7 @@
                { url: 'fastMatch', url2: 'fastMatch' },
                { url: 'precise', url2: 'precise' },
                
                { url: 'IntelligentAgent', url2: 'Intelligent'   }
                { url: 'FindAgent', url2: 'Intelligent'   }
            
                // { url: '_homeEx', url2: '_homeEx' },
@@ -291,8 +291,8 @@
            }
            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
src/view/login/loginModal.vue
@@ -6,6 +6,7 @@
                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">
@@ -21,7 +22,8 @@
                        <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;">
@@ -60,7 +62,7 @@
                                <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>
@@ -182,7 +184,7 @@
    },
    methods: {
        goForgot(){
        goForgot() {
            console.log(111);
            if (this.$route.name == 'forgot') {
                this.$store.commit('openloginModal', false)
@@ -495,7 +497,7 @@
                //   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 = ''
@@ -523,9 +525,9 @@
                        })
                    } else {
                        console.log(sessionStorage.getItem('loginClick'));
                        if (sessionStorage.getItem('loginClick')) {
                            this.$store.commit('setMainTag', 'login')
                            this.$router.push({
@@ -580,7 +582,36 @@
            }, 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() {
src/view/login/register.vue
@@ -16,7 +16,7 @@
                </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">
src/view/policyMatching/fastMatch.vue
@@ -4,7 +4,7 @@
            <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>
@@ -165,9 +165,10 @@
    },
    mounted() {
        if (localStorage.getItem('Address') && localStorage.getItem('Address') != 'null') {
            this.search = localStorage.getItem('Address')
            // this.getList()
        }
    },
    methods: {
        getList() {
@@ -237,13 +238,15 @@
                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 => {
@@ -251,7 +254,7 @@
            });
        }
        },
    },
src/view/policyMatching/precise.vue
@@ -50,9 +50,9 @@
                    <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">
@@ -140,7 +140,7 @@
                    })
                ])
            },
            first: false,
            first: true,
        };
    },
    created() {
@@ -149,32 +149,36 @@
    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() {
@@ -196,10 +200,14 @@
                    }
                    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;
                    }
                }
            });
        },
@@ -213,16 +221,21 @@
                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 => {
            });
@@ -382,7 +395,7 @@
                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
            })
src/view/reportCenters/userManagement.vue
@@ -44,7 +44,7 @@
          <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>
@@ -223,6 +223,7 @@
      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,
vue.config.js
@@ -51,7 +51,7 @@
  devServer: {
    proxy: {
      '/baseURL': {
        target: 'http://47.92.245.94:8070/',
        target: 'http://47.98.113.167/',
        changeOrigin: true,
        pathRewrite: {
          '^/baseURL': ''