【vue3+ts】——a标签href跳转地址拼接

【vue3+ts】——a标签href跳转地址拼接

结构
 <span v-else>
     <a style='color:#409EFF;font-size:14px'  
        :href=reportForm.detailUrl>【点击链接可进入系统进行审批】
     </a>
 </span>

详细版

 <lise-message class='pt-16 pb-16' :file='fileList' :title='reportForm.title'>
	<div 
         class='mt-16 pl-24 pr-24' 
         style="display:inline-block;font-size:14px" 
         v-html='reportForm.content'>
    </div>
    <span v-if="reportForm.paramSource==null"></span>
    <span v-else>
        <a style='color:#409EFF;font-size:14px'  
           :href=reportForm.detailUrl>【点击链接可进入系统进行审批】
        </a>
     </span>
</lise-message>
查看详情-跳转效果

在这里插入图片描述

操作流程

在这里插入图片描述

接口

网址-格式

http://ehrtest.staff.y0z0l.net.cn/getProcess?mcNo=MCNO&code=CODE&processAuditId=PROCESSAUDITID&processId=PROCESSID&id=ID&tabIdx=TABIDX

网址-接口数据

{"id":2436,"appNo":"LE20210903095959658038159","code":"100001","processAuditId":"20210903095959640792140","processId":383,"tabIdx":"0"}

网址-真实数据

http://ehrtest.staff.y0z0l.net.cn/myProcess?mcNo=undefined&code=100001&processAuditId=20210906142745668931311&processId=383&id=2596&tabIdx=1

请求-跳转时获取数据

在这里插入图片描述

代码
<script lang='ts'>
import { computed, defineComponent, reactive, toRefs, watch } from 'vue';
import LiseMessage from '@/components/ListMessage.vue';
import { useRoute, useRouter } from 'vue-router';
export default defineComponent({
    name: 'index',
    components: { YzlElTable, UnderCrumbs, Crumbs, LiseMessage },
    setup(props, context) {
        watch(() => msgCode.value, (val) => {
            funcList.getMessageView();
        });        
        // 当前页面数据
        const state = reactive({
            reportForm: {
                title: '',
                detailUrl: '',
                content: '',
            }
        });
        const funcList = {
            // 返回
            goBack() {
                router.go(-1);
            },
            getMessageView() {
                    PersonMessage.getPeopleView(msgCode.value).then(
                        res => {
                            state.reportForm.title = res.data.title;                 
                            state.reportForm.content = res.data.content;
                            state.reportForm.paramSource =JSON.parse(res.data.paramSource) ;
                            // console.log( JSON.parse(res.data.paramSource).code,"hhhhhhhhhhh");
                            // console.log( state.reportForm.paramSource,"ggggggggg");
                            //    myProcess?mcNo=appNo&code=code&processAuditId=processAuditId&processId=processId&id=id&tabIdx=tabIdx';
                            if(res.data.paramSource!=null){
                                state.reportForm.paramSource =res.data.paramSource ;
                                state.reportForm.detailUrl =
                                    'myProcess?mcNo='+JSON.parse(res.data.paramSource).appNo+'&'+
                                    'code='+JSON.parse(res.data.paramSource).code+'&'+
                                    'processAuditId='+JSON.parse(res.data.paramSource).processAuditId+'&'+
                                    'processId='+JSON.parse(res.data.paramSource).processId+'&'+
                                    'id='+JSON.parse(res.data.paramSource).id+'&'+
                                    'tabIdx='+JSON.parse(res.data.paramSource).tabIdx;
                            }
                        }
                    );
            };
        funcList.getMessageView();
        
        // 生命周期
        return {
            flag,
            ...toRefs(state),
            ...funcList
        };
    }
});   

<style lang='scss' scoped>
:deep {
    .el-card .el-card__body {
        padding: 16px 86px 24px 86px;
    }
}

table {
    border-collapse: collapse;
}

:deep {
    tr {
        //border: ;
        background-color: #FFFFFF;
    }
}

th {
    background: #f1f1f1;
    font-size: 12px;
    font-weight: bold;
    color: #333333;
    height: 48px;
    text-align: left;
}

.wrap {
    margin: 0 auto;
    
    .content {
        .desc {
            text-indent: 20px;
            margin-top: 22px;
            line-height: 22px;
        }
    }
    
    .color-wrap {
        padding: 10px 18px;
        background: #E8F4FF;
        border-radius: 3px;
        box-sizing: border-box;
        border: 1px solid #B4DBFF;
    }
}
</style>         
跳转后的详情

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Vue 3使用Agent Vue和TypeScript(TS)进行跳转到详情页,你可以按照以下步骤操作: 1. 首先,确保你已经安装了Vue 3和Agent Vue。你可以使用npm或yarn进行安装: ``` npm install vue@next agent-vue ``` 或者 ``` yarn add vue@next agent-vue ``` 2. 在你的Vue组件,首先导入Agent Vue的`useRouter`函数和相关的类型定义: ```typescript import { useRouter } from 'agent-vue'; import { RouteLocationNormalized } from 'vue-router'; ``` 3. 在组件定义一个函数来处理跳转到详情页的逻辑。你可以使用`useRouter`函数获取路由实例,然后使用`push`方法进行跳转: ```typescript export default { // ... methods: { goToDetailPage() { const router = useRouter(); const detailRoute: RouteLocationNormalized = { name: 'detail', // 替换为你的详情页路由名称 params: { // 传递的参数 }, }; router.push(detailRoute); }, }, // ... }; ``` 4. 在模板使用`goToDetailPage`方法来触发跳转事件。你可以在按钮点击事件或者其他需要跳转的地方调用该方法: ```html <template> <button @click="goToDetailPage">跳转详情页</button> </template> ``` 确保将`goToDetailPage`方法绑定到对应的事件上。 这样,当点击按钮时,页面将会跳转到你定义的详情页路由。 请注意,上述代码的路由名称和参数是示例,请根据你的实际情况进行修改。另外,确保在Vue Router配置了对应的详情页路由。 希望能帮到你!如果你还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值