Merge branch 'minJeecg' into 'master'

Min jeecg

See merge request cxcxt/jeecguniapp!1
This commit is contained in:
闵 年泽 2025-05-16 15:05:58 +08:00
commit 23615be39d
17 changed files with 614 additions and 20 deletions

View File

@ -5,5 +5,6 @@ VITE_DELETE_CONSOLE = false
# 是否开启sourcemap
VITE_SHOW_SOURCEMAP = true
VITE_SERVER_BASEURL = 'http://10.75.15.249:8080/jeecg-boot'
#VITE_SERVER_BASEURL = 'https://36.112.48.190/jeecg-boot'
#VITE_SERVER_BASEURL = 'http://10.75.15.249:8080/jeecg-boot'
VITE_SERVER_BASEURL = 'https://36.112.48.190/jeecg-boot'

View File

@ -76,21 +76,33 @@
"@dcloudio/uni-mp-weixin": "3.0.0-4030620241128001",
"@dcloudio/uni-mp-xhs": "3.0.0-4030620241128001",
"@dcloudio/uni-quickapp-webview": "3.0.0-4030620241128001",
"@tanstack/query-core": "^5.76.0",
"@tanstack/vue-query": "^5.62.16",
"@vant/area-data": "^2.0.0",
"abortcontroller-polyfill": "^1.7.8",
"base-64": "^1.0.0",
"charenc": "^0.0.2",
"crypt": "^0.0.2",
"dayjs": "1.11.10",
"echarts": "^5.6.0",
"fs-extra": "^11.3.0",
"is-buffer": "^2.0.5",
"js-base64": "^3.6.1",
"lodash": "^4.17.21",
"lodash-es": "^4.17.21",
"md5": "^2.3.0",
"pinia": "2.0.36",
"pinia-plugin-persistedstate": "3.2.1",
"qs": "6.5.3",
"tanstack": "^1.0.0",
"tslib": "^2.8.1",
"uni-parse-pages": "^0.0.1",
"vue": "3.4.21",
"vue-demi": "^0.14.10",
"vue-i18n": "9.1.9",
"wot-design-uni": "^1.9.1",
"z-paging": "^2.8.4"
"z-paging": "^2.8.4",
"zrender": "^5.6.1"
},
"devDependencies": {
"@commitlint/cli": "^18.6.1",

View File

@ -56,6 +56,9 @@ importers:
'@dcloudio/uni-quickapp-webview':
specifier: 3.0.0-4030620241128001
version: 3.0.0-4030620241128001(@vueuse/core@11.3.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(vue@3.4.21(typescript@5.7.2))
'@tanstack/query-core':
specifier: ^5.76.0
version: 5.76.0
'@tanstack/vue-query':
specifier: ^5.62.16
version: 5.62.16(vue@3.4.21(typescript@5.7.2))
@ -68,12 +71,33 @@ importers:
base-64:
specifier: ^1.0.0
version: 1.0.0
charenc:
specifier: ^0.0.2
version: 0.0.2
crypt:
specifier: ^0.0.2
version: 0.0.2
dayjs:
specifier: 1.11.10
version: 1.11.10
echarts:
specifier: ^5.6.0
version: 5.6.0
fs-extra:
specifier: ^11.3.0
version: 11.3.0
is-buffer:
specifier: ^2.0.5
version: 2.0.5
js-base64:
specifier: ^3.6.1
version: 3.7.7
lodash:
specifier: ^4.17.21
version: 4.17.21
lodash-es:
specifier: ^4.17.21
version: 4.17.21
md5:
specifier: ^2.3.0
version: 2.3.0
@ -86,12 +110,21 @@ importers:
qs:
specifier: 6.5.3
version: 6.5.3
tanstack:
specifier: ^1.0.0
version: 1.0.0
tslib:
specifier: ^2.8.1
version: 2.8.1
uni-parse-pages:
specifier: ^0.0.1
version: 0.0.1
vue:
specifier: 3.4.21
version: 3.4.21(typescript@5.7.2)
vue-demi:
specifier: ^0.14.10
version: 0.14.10(vue@3.4.21(typescript@5.7.2))
vue-i18n:
specifier: 9.1.9
version: 9.1.9(vue@3.4.21(typescript@5.7.2))
@ -101,6 +134,9 @@ importers:
z-paging:
specifier: ^2.8.4
version: 2.8.4
zrender:
specifier: ^5.6.1
version: 5.6.1
devDependencies:
'@commitlint/cli':
specifier: ^18.6.1
@ -2039,6 +2075,9 @@ packages:
'@tanstack/query-core@5.62.16':
resolution: {integrity: sha512-9Sgft7Qavcd+sN0V25xVyo0nfmcZXBuODy3FVG7BMWTg1HMLm8wwG5tNlLlmSic1u7l1v786oavn+STiFaPH2g==}
'@tanstack/query-core@5.76.0':
resolution: {integrity: sha512-FN375hb8ctzfNAlex5gHI6+WDXTNpe0nbxp/d2YJtnP+IBM6OUm7zcaoCW6T63BawGOYZBbKC0iPvr41TteNVg==}
'@tanstack/vue-query@5.62.16':
resolution: {integrity: sha512-QVx/tAexhAN+q0IbwyhVXu3f3hujfvhqLlZMNAWKTrDSUcp2BxJNjPyiti5gcaDhQwBUK9BdSXIFFYLcjYWvvA==}
peerDependencies:
@ -3962,6 +4001,10 @@ packages:
resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
engines: {node: '>=12'}
fs-extra@11.3.0:
resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==}
engines: {node: '>=14.14'}
fs-minipass@2.1.0:
resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
engines: {node: '>= 8'}
@ -4321,6 +4364,10 @@ packages:
is-buffer@1.1.6:
resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==}
is-buffer@2.0.5:
resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==}
engines: {node: '>=4'}
is-builtin-module@3.2.1:
resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
engines: {node: '>=6'}
@ -4668,6 +4715,9 @@ packages:
jpeg-js@0.3.7:
resolution: {integrity: sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==}
js-base64@3.7.7:
resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==}
js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
@ -6249,6 +6299,9 @@ packages:
resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==}
engines: {node: '>=10.0.0'}
tanstack@1.0.0:
resolution: {integrity: sha512-BUpDmwGlWHk2F183Uu1+k85biSLrpSh/zA9ephJwmZ9ze+XDEw3JOyN9vhcbFqrQFrf5yuWImt+0Kn4fUNgzTg==}
tapable@2.2.1:
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
engines: {node: '>=6'}
@ -9477,6 +9530,8 @@ snapshots:
'@tanstack/query-core@5.62.16': {}
'@tanstack/query-core@5.76.0': {}
'@tanstack/vue-query@5.62.16(vue@3.4.21(typescript@5.7.2))':
dependencies:
'@tanstack/match-sorter-utils': 8.19.4
@ -11874,6 +11929,12 @@ snapshots:
jsonfile: 6.1.0
universalify: 2.0.1
fs-extra@11.3.0:
dependencies:
graceful-fs: 4.2.11
jsonfile: 6.1.0
universalify: 2.0.1
fs-minipass@2.1.0:
dependencies:
minipass: 3.3.6
@ -12262,6 +12323,8 @@ snapshots:
is-buffer@1.1.6: {}
is-buffer@2.0.5: {}
is-builtin-module@3.2.1:
dependencies:
builtin-modules: 3.3.0
@ -12807,6 +12870,8 @@ snapshots:
jpeg-js@0.3.7: {}
js-base64@3.7.7: {}
js-tokens@4.0.0: {}
js-tokens@9.0.1: {}
@ -14481,6 +14546,8 @@ snapshots:
string-width: 4.2.3
strip-ansi: 6.0.1
tanstack@1.0.0: {}
tapable@2.2.1: {}
tar@6.2.1:

32
src/api/process/api.ts Normal file
View File

@ -0,0 +1,32 @@
import { http } from '@/utils/http';
export function getListApi(orgCode : string) {
return http({
url: '/sjgl.scnr/cxcSjSc/queryTreeData',
method: 'GET',
data: { orgCode }
})
}
export function taskListApi(config : Object) { //
return http({
url: '/act/task/list',
method: 'GET',
data: config
})
}
export function taskHistoryListApi(config : Object) { //
return http({
url: '/act/task/taskHistoryList',
method: 'GET',
data: config
})
}
export function claim(config : Object) {
return http({
url: '/act/task/claim',
method: 'PUT',
data: config
})
}

View File

@ -155,6 +155,15 @@
"navigationStyle": "custom"
}
},
{
"path": "pages/onlinePreview/detail",
"type": "page",
"layout": "default",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "在线预览"
}
},
{
"path": "pages/onlinePreview/onlinePreview",
"type": "page",
@ -173,6 +182,24 @@
"navigationBarTitleText": "H5在线预览"
}
},
{
"path": "pages/process/approvalTabbar",
"type": "page",
"layout": "default",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "流程审批导航"
}
},
{
"path": "pages/process/taskHandle",
"type": "page",
"layout": "default",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "任务处理"
}
},
{
"path": "pages/user/people",
"type": "page",

View File

@ -39,7 +39,7 @@
</swiper>
<wd-row>
<wd-col :span="12" v-for="(item, index) in middleApps" :key="index">
<wd-col :span="12" v-for="(item, index) in middleApps" :key="index" @click="goToProcess">
<wd-img :width="50" :height="50" :src="getFileAccessHttpUrl(item.icon)"></wd-img>
<view class="textBox">
<wd-text :text="item.title"></wd-text>
@ -104,6 +104,13 @@
url: `${item.path}?title=${item.text}`
})
}
const goToProcess = ()=>{
uni.navigateTo({
url: '/pages/process/approvalTabbar'
})
}
const goPageMore = (page) => {
router.replace({ name: 'more', params: { backRouteName: 'index', type: page } })

View File

@ -0,0 +1,159 @@
<route lang="json5" type="page">
{
layout: 'default',
style: {
navigationStyle: 'custom',
navigationBarTitleText: '在线预览',
},
}
</route>
<template>
<view :class="{ 'gray': appStore.isGray == 1 }">
<wd-navbar left-text="返回" left-arrow
custom-style="padding-top: var(--status-bar-height, 0); background-image: linear-gradient(to right, #1890ff, #096dd9); color: #fff;"
@click-left="handleClickLeft">
</wd-navbar>
<view class="serveBox">
<view class="title">
<view class="dot"></view>
<wd-text text="文件预览"></wd-text>
</view>
<view class="f-col">
<view v-if="ifH5">
<!-- 在线预览 by -->
<wd-text color="#1890ff" lines=1 style="font-size: 40rpx;padding-left: 25rpx;padding-top: 25rpx;" decoration="underline" @click="onlinePreview(`/pages/onlinePreview/onlinePreviewH5?data=${JSON.stringify(item)}`)"
v-for="item,i in detailArr" :text="captureText(item)">
</wd-text>
</view>
<view v-else>
<!-- 在线预览 by -->
<wd-text color="#1890ff" lines=1 style="font-size: 40rpx;padding-left: 25rpx;padding-top: 25rpx;" decoration="underline" @click="onlinePreview(`/pages/onlinePreview/onlinePreview?data=${JSON.stringify(item)}`)"
v-for="item,i in detailArr" :text="captureText(item)">
</wd-text>
</view>
</view>
</view>
</view>
</template>
<script setup>
import {
useAppStore
} from '@/store'
import {
ref
} from 'vue'
import {
onLoad,
onShow
} from '@dcloudio/uni-app';
const appStore = useAppStore();
const detail = ref({})
const detailArr = ref([])
//h5 by
var ifH5 = false;
const onlinePreview = (url)=>{ //线 by
uni.navigateTo({
url:url
})
}
const handleClickLeft = () => {
uni.navigateBack()
}
const captureText = (text)=>{ //
const match = text.match(/\/([^_]+)(?=_)/);
console.log(match)
return match ? match[1] : '';
}
onLoad((options) => {
detail.value = options.data
detailArr.value = options.data.split(",");
//#ifdef H5 || MP-WEIXIN
ifH5 = true;
//#endif
//
if(detailArr.value&&detailArr.value.length==1){
let url = '/pages/onlinePreview/onlinePreview';
if(ifH5) url = '/pages/onlinePreview/onlinePreviewH5'
onlinePreview(url+`?data=${JSON.stringify(options.data)}`);
}
})
onShow (()=>{
// if(detailArr.value&&detailArr.value.length==1){
// uni.navigateBack()
// }
})
</script>
<style>
/* page{
background-color: #f8f8f8;
} */
</style>
<style lang="scss" scoped>
.content {
padding: 0 30rpx;
}
.title_box {
.title {
font-size: 32rpx;
color: #333333;
padding: 30rpx 0 20rpx 0;
}
.time {
font-size: 24rpx;
color: #888888;
padding-bottom: 30rpx;
}
}
.document {
text {
font-size: 28rpx;
color: #333333;
white-space: nowrap;
}
view {
font-size: 28rpx;
color: #5A79F8;
text-decoration: underline;
}
}
.serveBox {
margin-bottom: 32upx;
background-color: #fff;
.title {
display: flex;
align-items: center;
padding-left: 30upx;
height: 52px;
.dot {
width: 14upx;
height: 14upx;
background-color: #0081ff;
border-radius: 100%;
margin-right: 20upx;
}
.wd-text {
color: #666;
font-size: 15px;
}
}
}
</style>

View File

@ -29,6 +29,7 @@
getEnvBaseUrl
} from '@/utils/index'
const appStore = useAppStore();
const baseUrl = 'https://10.75.166.6/jeecg-boot/sys/common/static/';
var fileUrl = "";
const handleClickLeft = () => {
uni.navigateBack()
@ -36,7 +37,7 @@
onLoad((options) => {
let base64 = new Base64();
var url = getEnvBaseUrl() + '/sys/common/static/' + options.data;
var url = baseUrl + JSON.parse(options.data);
console.log('-----111',url)
fileUrl = 'https://36.112.48.190/preview/onlinePreview?url=' + encodeURIComponent(base64.encode(url))
console.log('-----222',fileUrl)

View File

@ -27,17 +27,23 @@
getEnvBaseUrl
} from '@/utils/index'
const appStore = useAppStore();
import Base64 from '@/utils/code';
import {
Base64
} from 'js-base64'
var fileUrl = "";
const baseUrl = 'https://10.75.166.6/jeecg-boot/sys/common/static/';
const handleClickLeft = () => {
uni.navigateBack()
}
onLoad((options) => {
let base64 = new Base64();
let url = getEnvBaseUrl() + '/sys/common/static/' + options.data;
fileUrl = 'https://36.112.48.190/preview/onlinePreview?url=' + encodeURIComponent(base64.encode(url))
console.log(options)
let url = JSON.parse(options.data)
url = baseUrl + url;
console.log(url)
fileUrl ='https://36.112.48.190/preview/onlinePreview?url=' + encodeURIComponent(Base64.encode(url))
console.log(fileUrl)
})
</script>

View File

@ -15,18 +15,12 @@
</wd-navbar>
<view class="container">
<wd-card title="制度">
<view v-if="ifH5" @click="onlinePreview(`/pages/onlinePreview/onlinePreviewH5?data=${dataSource.sszd}`)">
{{dataSource.zdmc}}
</view>
<view v-else @click="onlinePreview(`/pages/onlinePreview/onlinePreview?data=${dataSource.sszd}`)">
<view @click="onlinePreview(`/pages/onlinePreview/detail?data=${dataSource.sszd}`)">
{{dataSource.zdmc}}
</view>
</wd-card>
<wd-card title="解读材料">
<view v-if="ifH5" @click="onlinePreview(`/pages/onlinePreview/onlinePreviewH5?data=${dataSource.jdwj}`)">
{{dataSource.jdwj}}
</view>
<view v-else @click="onlinePreview(`/pages/onlinePreview/onlinePreview?data=${dataSource.jdwj}`)">
<view @click="onlinePreview(`/pages/onlinePreview/detail?data=${dataSource.jdwj}`)">
{{dataSource.jdwj}}
</view>
</wd-card>

View File

@ -194,9 +194,9 @@
}
const onlinePreView = (e) => {
const path = ifH5 ? 'onlinePreviewH5' : 'onlinePreview';
console.log(e)
uni.navigateTo({
url: `/pages/onlinePreview/${path}?data=${e}`
url: `/pages/onlinePreview/detail?data=${e}`
});
};

View File

@ -138,7 +138,6 @@
}
const onlinePreview = (e) => {
const path = isH5() ? 'onlinePreviewH5' : 'onlinePreview';
uni.navigateTo({
url: `/pages/onlinePreview/${path}?data=${e}`
});

View File

@ -0,0 +1,53 @@
<route lang="json5" type="page">
{
layout: 'default',
style: {
navigationStyle: 'custom',
navigationBarTitleText: '流程审批导航',
},
}
</route>
<template>
<view :class="{ 'gray': appStore.isGray == 1 }">
<wd-navbar left-text="返回" left-arrow
custom-style="padding-top: var(--status-bar-height, 0); background-image: linear-gradient(to right, #1890ff, #096dd9); color: #fff;"
@click-left="handleClickLeft">
</wd-navbar>
<wd-tabs v-model="tab" swipeable color="#39b54a" autoLineWidth>
<wd-tab title="我的任务">
<myTask></myTask>
</wd-tab>
<wd-tab title="历史任务">
<view class="content">内容1</view>
</wd-tab>
</wd-tabs>
</view>
</template>
<script setup lang="ts">
import {
useAppStore
} from '@/store'
import {
ref
} from 'vue'
import {
onLoad,
onShow
} from '@dcloudio/uni-app';
import myTask from './components/myTask.vue'
const appStore = useAppStore();
const tab = ref(0)
const handleClickLeft = () => {
uni.navigateBack()
}
</script>
<style scoped lang="scss">
::v-deep .wd-tabs__line{
background: #39b54a;
}
</style>

View File

@ -0,0 +1,170 @@
<template>
<view class="container">
<wd-loading v-if="loading && pageNo === 1" class="loading-tip">加载中...</wd-loading>
<template v-for="(item, i) in list" :key="i">
<wd-card :title="item.bpmBizTitle" title-bold border-radius="8" use-footer-slot @click="goToPage(item)">
<view class="card-content">
<wd-row style="color: #666666;">
<wd-col :span="4">
<text>当前环节:</text>
</wd-col>
<wd-col :span="20">
{{item.taskName}}
</wd-col>
</wd-row>
<wd-row style="padding-bottom: 2px;color: #666666;">
<wd-col :span="4">
<text>流程名称:</text>
</wd-col>
<wd-col :span="20">
{{item.processDefinitionName}}
</wd-col>
</wd-row>
<view class="meta-info">
<wd-icon name="time" size="14px" color="#999"></wd-icon>
<text class="meta-text">{{item.taskBeginTime?item.taskBeginTime.substring(0,10):''}}</text>
<wd-icon name="user" size="14px" color="#999" style="margin-left: auto;"></wd-icon>
<text class="meta-text">{{item.processApplyUserName}}</text>
</view>
<wd-row style="padding-top: 10px;">
<view v-if="item.taskAssigneeName&&item.taskAssigneeName!=''">
<wd-col :span="16">
<wd-button>办理</wd-button>
</wd-col>
<wd-col :span="8">
<wd-button>委托</wd-button>
</wd-col>
</view>
<view v-else>
<wd-col :span="12">
<wd-button @click="goToPage(item)">签收</wd-button>
</wd-col>
<wd-col :span="12">
</wd-col>
</view>
</wd-row>
</view>
</wd-card>
</template>
<view class="load-more" v-if="loading && pageNo > 1">
<wd-loading size="16px">正在加载...</wd-loading>
</view>
<wd-message-box></wd-message-box>
</view>
</template>
<script setup lang="ts">
import { taskListApi,claim } from '@/api/process/api'
import {
ref
} from 'vue'
import {
onLoad,
onShow,
onReachBottom,
onPullDownRefresh
} from '@dcloudio/uni-app';
import { useToast, useMessage } from 'wot-design-uni'
defineOptions({
name: 'myTask',
options: {
styleIsolation: 'shared',
},
})
const toast = useToast()
const message = useMessage()
let pageNo = 1
let pageSize = 10
let loading = false
const list = ref([])
const getList = () => {
taskListApi({
pageNo,
pageSize
}).then((res) => {
console.log(res)
if (res.success) {
list.value = [...list.value,...res.result.records];
}
loading = false
}).catch((err) => {
loading = false
})
}
const goToPage = (item)=>{
//
if(item.taskAssigneeName&&item.taskAssigneeName!=''){
console.log(11)
//
uni.navigateTo({
url:`/pages/process/taskHandle?data=${JSON.stringify(item)}`
})
}else{
message
.confirm({
msg: '是否签收该任务?',
title: '确认签收吗',
})
.then(() => {
claim({taskId:item.id}).then(()=>{
uni.redirectTo({
url: './approvalTabbar'
});
})
})
}
}
onReachBottom(() => {
if (loading) return
pageNo++
getList()
})
onPullDownRefresh(() => {
pageNo = 1
list.value = []
getList()
uni.stopPullDownRefresh()
})
onShow(() => {
list.value = []
pageNo = 1
pageSize = 10
loading = false
getList()
})
</script>
<style lang="scss" scoped>
.container {
padding: 5px 0 5px;
min-height: 100vh;
background-color: #f7f7f7;
}
.card-content {
padding: 8px 0;
.meta-info {
display: flex;
align-items: center;
font-size: 12px;
color: #666;
.meta-text {
margin-left: 4px;
}
}
}
::v-deep .wd-card__title-content{
border-bottom: 1px solid #efefef;
}
</style>

View File

@ -0,0 +1,62 @@
<route lang="json5" type="page">
{
layout: 'default',
style: {
navigationStyle: 'custom',
navigationBarTitleText: '任务处理',
},
}
</route>
<template>
<view :class="{ 'gray': appStore.isGray == 1 }">
<wd-navbar left-text="返回" left-arrow
custom-style="padding-top: var(--status-bar-height, 0); background-image: linear-gradient(to right, #1890ff, #096dd9); color: #fff;"
@click-left="handleClickLeft">
</wd-navbar>
<wd-tabs v-model="tab" swipeable color="#39b54a" autoLineWidth>
<wd-tab title="单据">
</wd-tab>
<wd-tab title="任务处理">
<view class="content">内容2</view>
</wd-tab>
<wd-tab title="流程图">
<view class="content">内容3</view>
</wd-tab>
</wd-tabs>
</view>
</template>
<script setup lang="ts">
import {
ref
} from 'vue'
import {
onLoad,
onShow,
onReachBottom,
onPullDownRefresh
} from '@dcloudio/uni-app';
import { useToast, useMessage } from 'wot-design-uni'
import {
useAppStore
} from '@/store'
const appStore = useAppStore();
const tab = ref(0)
const handleClickLeft = () => {
uni.navigateBack()
}
onLoad((options) => {
console.log(JSON.parse(options.data))
})
</script>
<style lang="scss" scoped>
::v-deep .wd-tabs__line{
background: #39b54a;
}
</style>

View File

@ -161,6 +161,7 @@
// #endif
}
const exit = () => {
console.log(message)
message
.confirm({
title: '提示',

View File

@ -16,8 +16,11 @@ interface NavigateToOptions {
"/pages/index/index" |
"/pages/message/message" |
"/pages/more/more" |
"/pages/onlinePreview/detail" |
"/pages/onlinePreview/onlinePreview" |
"/pages/onlinePreview/onlinePreviewH5" |
"/pages/process/approvalTabbar" |
"/pages/process/taskHandle" |
"/pages/user/people" |
"/pages/workHome/index" |
"/pages/operate/file/detail" |