优化导航栏

This commit is contained in:
yangzhq68909 2025-05-16 16:03:56 +08:00
parent 096fa96eb7
commit 3c54607ab7
22 changed files with 401 additions and 538 deletions

View File

@ -12,7 +12,7 @@ export function queryZwmcAndExaApi(username : string) {
} }
/*新增请假申请*/ /*新增请假申请*/
export function addApi(config) { export function addApi(config : Object) {
return http({ return http({
url: '/CxcQxj/cxcQxj/add', url: '/CxcQxj/cxcQxj/add',
method: 'POST', method: 'POST',

View File

@ -1,6 +1,6 @@
import { http } from '@/utils/http'; import { http } from '@/utils/http';
export function getListApi(config) { // export function getListApi(config : Object) { //
return http({ return http({
url: '/zhgl_zbgl/zhglZbglZbb/list', url: '/zhgl_zbgl/zhglZbglZbb/list',
method: 'GET', method: 'GET',

View File

@ -1,6 +1,6 @@
import { http } from '@/utils/http'; import { http } from '@/utils/http';
export function queryDocumentApi(config) { // export function queryDocumentApi(config : Object) { //
return http({ return http({
url: '/cxcoagwfb/cxcOaGwfb/bpmlist', url: '/cxcoagwfb/cxcOaGwfb/bpmlist',
method: 'GET', method: 'GET',
@ -8,7 +8,7 @@ export function queryDocumentApi(config) { // 公文列表
}) })
} }
export function queryNoticeApi(config) { // export function queryNoticeApi(config : Object) { //
return http({ return http({
url: '/cxctz/cxcTz/list', url: '/cxctz/cxcTz/list',
method: 'GET', method: 'GET',
@ -16,7 +16,7 @@ export function queryNoticeApi(config) { // 公告
}) })
} }
export function querySuperiorSystemApi(config) { // export function querySuperiorSystemApi(config : Object) { //
return http({ return http({
url: '/cxcjyglsjzdgl/cxcJyglSjzdgl/zslist', url: '/cxcjyglsjzdgl/cxcJyglSjzdgl/zslist',
method: 'GET', method: 'GET',
@ -24,7 +24,7 @@ export function querySuperiorSystemApi(config) { // 上级制度
}) })
} }
export function queryFactorySystemApi(config) { // export function queryFactorySystemApi(config : Object) { //
return http({ return http({
url: '/cxczd/cxcZdgl/list', url: '/cxczd/cxcZdgl/list',
method: 'GET', method: 'GET',
@ -32,7 +32,7 @@ export function queryFactorySystemApi(config) { // 厂级制度
}) })
} }
export function queryRegulationsApi(config) { // export function queryRegulationsApi(config : Object) { //
return http({ return http({
url: '/cxcoaflgf/cxcOaFlgf/zslist', url: '/cxcoaflgf/cxcOaFlgf/zslist',
method: 'GET', method: 'GET',

View File

@ -8,7 +8,7 @@ export function getListApi(orgCode : string) {
}) })
} }
export function getJobDesIdByDepAndName(config) { export function getJobDesIdByDepAndName(config : Object) {
return http({ return http({
url: '/sjgl.tynr/cxcSjJobdescription/queryByNameDep', url: '/sjgl.tynr/cxcSjJobdescription/queryByNameDep',
method: 'GET', method: 'GET',
@ -16,7 +16,7 @@ export function getJobDesIdByDepAndName(config) {
}) })
} }
export function getPathByInsflagQuote(config) { export function getPathByInsflagQuote(config : Object) {
return http({ return http({
url: '/sjgl.scnr/cxcSjSc/getPathByInsflagQuote', url: '/sjgl.scnr/cxcSjSc/getPathByInsflagQuote',
method: 'GET', method: 'GET',

View File

@ -1,32 +0,0 @@
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
})
}

37
src/api/process/index.ts Normal file
View File

@ -0,0 +1,37 @@
import { http } from '@/utils/http';
/*我的任务列表*/
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
})
}
/*发起流程*/
export function startMutilProcessApi(config : Object) { //
return http({
url: '/process/extActProcess/startMutilProcess',
method: 'POST',
data: config
})
}

View File

@ -1,21 +1,11 @@
<template> <template>
<view class="pageLayout"> <view :class="['pageLayout', { 'gray': appStore.isGray == 1 }]">
<view <view v-if="navbarShow" :class="{ pageNav: true, transparent: navBgTransparent, fixed: navFixed }"
v-if="navbarShow" :style="{ height: `${statusBarHeight + navHeight}px` }">
:class="{ pageNav: true, transparent: navBgTransparent, fixed: navFixed }"
:style="{ height: `${statusBarHeight + navHeight}px` }"
>
<view class="statusBar" :style="{ height: `${statusBarHeight}px` }"></view> <view class="statusBar" :style="{ height: `${statusBarHeight}px` }"></view>
<wd-navbar <wd-navbar :bordered="!navBgTransparent" :title="navTitle" :leftText="navLeftText" :leftArrow="navLeftArrow"
:bordered="!navBgTransparent" :rightText="navRightText" @clickLeft="handleClickLeft" @clickRight="handleClickRight"
:title="navTitle" custom-class="nav">
:leftText="navLeftText"
:leftArrow="navLeftArrow"
:rightText="navRightText"
@clickLeft="handleClickLeft"
@clickRight="handleClickRight"
custom-class="nav"
>
<template v-if="$slots.navRight" #right> <template v-if="$slots.navRight" #right>
<slot name="navRight"></slot> <slot name="navRight"></slot>
</template> </template>
@ -32,21 +22,23 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { useSlots } from 'vue' import { useSlots } from 'vue'
import { useRouter } from '@/plugin/uni-mini-router' import { useRouter } from '@/plugin/uni-mini-router'
import { useParamsStore } from '@/store/page-params' import { useParamsStore } from '@/store/page-params'
import { useAppStore } from '@/store'
defineOptions({ defineOptions({
name: 'pageLayout', name: 'pageLayout',
options: { options: {
// apply-shared.() // apply-shared.()
// shared.() // shared.()
styleIsolation: 'shared', styleIsolation: 'shared',
}, },
}) })
const paramsStore = useParamsStore() const appStore = useAppStore()
const router = useRouter() const paramsStore = useParamsStore()
const props = defineProps({ const router = useRouter()
const props = defineProps({
backRouteName: { backRouteName: {
type: String, type: String,
default: '', default: '',
@ -57,11 +49,11 @@ const props = defineProps({
}, },
routeParams: { routeParams: {
type: Object, type: Object,
default: () => {}, default: () => { },
}, },
routeQuery: { routeQuery: {
type: Object, type: Object,
default: () => {}, default: () => { },
}, },
routeMethod: { routeMethod: {
type: String, type: String,
@ -99,13 +91,13 @@ const props = defineProps({
typeof: String, typeof: String,
default: '', default: '',
}, },
}) })
const slot = useSlots() const slot = useSlots()
const globalData = getApp().globalData const globalData = getApp().globalData
const { systemInfo, navHeight } = globalData const { systemInfo, navHeight } = globalData
const { statusBarHeight } = systemInfo const { statusBarHeight } = systemInfo
const emit = defineEmits(['navBack', 'navRight']) const emit = defineEmits(['navBack', 'navRight'])
const handleClickLeft = () => { const handleClickLeft = () => {
emit('navBack') emit('navBack')
// //
if (props.type === 'page') { if (props.type === 'page') {
@ -133,41 +125,46 @@ const handleClickLeft = () => {
clearPageParamsCache() clearPageParamsCache()
} }
} }
} }
const clearPageParamsCache = () => { const clearPageParamsCache = () => {
// //
const pages = getCurrentPages() const pages = getCurrentPages()
const curPage = pages[pages.length - 1] const curPage = pages[pages.length - 1]
const curRoute = curPage.route const curRoute = curPage.route
const name = curRoute.split('/').pop() const name = curRoute.split('/').pop()
paramsStore.clearPageParams(name) paramsStore.clearPageParams(name)
} }
const handleClickRight = () => { const handleClickRight = () => {
emit('navRight') emit('navRight')
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.pageLayout { .pageLayout {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
height: 100vh; height: 100vh;
width: 100vw; width: 100vw;
.pageNav { .pageNav {
background-image: linear-gradient(45deg, #0081ff, #1cbbb4); background-image: linear-gradient(45deg, #0081ff, #1cbbb4);
&.transparent { &.transparent {
background-image: none; background-image: none;
} }
&.fixed { &.fixed {
position: fixed; position: fixed;
top: 0; top: 0;
left: 0; left: 0;
width: 100%; width: 100%;
} }
.statusBar { .statusBar {
width: 100%; width: 100%;
height: 0; height: 0;
} }
:deep(.wd-navbar) { :deep(.wd-navbar) {
background-color: transparent; background-color: transparent;
--wot-navbar-title-font-weight: 400; --wot-navbar-title-font-weight: 400;
@ -176,6 +173,7 @@ const handleClickRight = () => {
--wot-navbar-title-font-size: 16px; --wot-navbar-title-font-size: 16px;
} }
} }
.pageContent { .pageContent {
flex: 1; flex: 1;
overflow: hidden; overflow: hidden;
@ -183,10 +181,11 @@ const handleClickRight = () => {
flex-direction: column; flex-direction: column;
background-color: #f1f1f1; background-color: #f1f1f1;
} }
.tabbar { .tabbar {
/* #ifdef H5 */ /* #ifdef H5 */
height: var(--window-bottom); height: var(--window-bottom);
/* #endif */ /* #endif */
} }
} }
</style> </style>

View File

@ -9,7 +9,6 @@
</route> </route>
<template> <template>
<view :class="{ 'gray': appStore.isGray == 1 }">
<PageLayout navTitle="编辑资料" backRouteName="people" routeMethod="pushTab"> <PageLayout navTitle="编辑资料" backRouteName="people" routeMethod="pushTab">
<wd-form ref="form" :model="model"> <wd-form ref="form" :model="model">
<wd-cell-group border> <wd-cell-group border>
@ -18,8 +17,7 @@
</wd-cell> </wd-cell>
<wd-input label="统一身份认证" prop="username" label-width="100px" v-model="model.username" <wd-input label="统一身份认证" prop="username" label-width="100px" v-model="model.username"
:readonly="true" /> :readonly="true" />
<wd-input label="姓名" prop="realname" label-width="100px" v-model="model.realname" <wd-input label="姓名" prop="realname" label-width="100px" v-model="model.realname" :readonly="true" />
:readonly="true" />
<wd-input label="劳动合同号" prop="workno" label-width="100px" v-model="model.workno" :readonly="true" /> <wd-input label="劳动合同号" prop="workno" label-width="100px" v-model="model.workno" :readonly="true" />
<wd-select-picker label="单位" type="radio" v-model="model.orgCode" :columns="columns" title="切换登录单位" <wd-select-picker label="单位" type="radio" v-model="model.orgCode" :columns="columns" title="切换登录单位"
:safe-area-inset-bottom="false" label-width="100px"></wd-select-picker> :safe-area-inset-bottom="false" label-width="100px"></wd-select-picker>
@ -35,7 +33,6 @@
</view> </view>
</wd-form> </wd-form>
</PageLayout> </PageLayout>
</view>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
@ -48,7 +45,6 @@
import { getFileAccessHttpUrl } from '@/common/uitls' import { getFileAccessHttpUrl } from '@/common/uitls'
import { onLoad } from '@dcloudio/uni-app' import { onLoad } from '@dcloudio/uni-app'
import { queryDepsByUserIdApi } from '@/api/system/department' import { queryDepsByUserIdApi } from '@/api/system/department'
import { useAppStore } from '@/store'
defineOptions({ defineOptions({
name: 'chatList', name: 'chatList',
@ -59,7 +55,6 @@
const toast = useToast() const toast = useToast()
const router = useRouter() const router = useRouter()
const userStore = useUserStore() const userStore = useUserStore()
const appStore = useAppStore()
const columns = ref([]) const columns = ref([])
const model = reactive({ const model = reactive({
avatar: getFileAccessHttpUrl(userStore.userInfo.avatar), avatar: getFileAccessHttpUrl(userStore.userInfo.avatar),

View File

@ -8,14 +8,10 @@
} }
</route> </route>
<template> <template>
<view :class="{'gray': appStore.isGray == 1 }"> <PageLayout navTitle="请假申请">
<wd-navbar left-text="返回" left-arrow title="请假申请"
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-form ref="form" :model="model"> <wd-form ref="form" :model="model">
<wd-cell-group border> <wd-cell-group border>
<!-- <wd-input label="职工姓名" prop="username" v-model="userStore.userInfo.realname" readonly <wd-input label="职工姓名" prop="username" v-model="userStore.userInfo.realname" readonly
:rules="[{ required: true, message: '请输入职工姓名' }]" /> :rules="[{ required: true, message: '请输入职工姓名' }]" />
<wd-input label="工作单位" prop="sysOrgCode" v-model="userStore.userInfo.department" readonly <wd-input label="工作单位" prop="sysOrgCode" v-model="userStore.userInfo.department" readonly
:rules="[{ required: true, message: '请输入工作单位' }]" /> :rules="[{ required: true, message: '请输入工作单位' }]" />
@ -36,7 +32,7 @@
<wd-input label="目的地" prop="destination" v-model="model.destination" <wd-input label="目的地" prop="destination" v-model="model.destination"
:rules="[{ required: true, message: '请输入目的地' }]" /> :rules="[{ required: true, message: '请输入目的地' }]" />
<wd-input label="请假事由" prop="reason" v-model="model.reason" <wd-input label="请假事由" prop="reason" v-model="model.reason"
:rules="[{ required: true, message: '请输入请假事由' }]" /> --> :rules="[{ required: true, message: '请输入请假事由' }]" />
<wd-cell title="附件" title-width="100px" prop="path"> <wd-cell title="附件" title-width="100px" prop="path">
<wd-upload v-model:file-list="model.path" :action="uploadUrl" multiple></wd-upload> <wd-upload v-model:file-list="model.path" :action="uploadUrl" multiple></wd-upload>
</wd-cell> </wd-cell>
@ -45,13 +41,13 @@
<wd-button type="primary" size="large" @click="handleSubmit" block>提交</wd-button> <wd-button type="primary" size="large" @click="handleSubmit" block>提交</wd-button>
</view> </view>
</wd-form> </wd-form>
<wd-message-box /> </PageLayout>
</view>
</template> </template>
<script setup> <script setup>
import { import {
useMessage useMessage,
useToast
} from 'wot-design-uni' } from 'wot-design-uni'
import { import {
useAppStore useAppStore
@ -75,6 +71,7 @@
} from '@/utils/index' } from '@/utils/index'
const message = useMessage() const message = useMessage()
const toast = useToast()
const appStore = useAppStore(); const appStore = useAppStore();
const userStore = useUserStore(); const userStore = useUserStore();
const model = reactive({ const model = reactive({
@ -105,9 +102,6 @@
const resDate = ref('') const resDate = ref('')
const uploadUrl = ref(getEnvBaseUrl() + '/sys/common/upload?appPath=职工请假/' + userStore.userInfo.department + '/' + const uploadUrl = ref(getEnvBaseUrl() + '/sys/common/upload?appPath=职工请假/' + userStore.userInfo.department + '/' +
userStore.userInfo.realname) userStore.userInfo.realname)
const handleClickLeft = () => {
uni.navigateBack();
};
const columnChange = ({ const columnChange = ({
selectedItem, selectedItem,
resolve, resolve,
@ -162,7 +156,6 @@
errors errors
}) => { }) => {
if (valid) { if (valid) {
console.log('---1', model)
const submitData = { const submitData = {
...model, ...model,
type: model.type[model.type.length - 1], // type: model.type[model.type.length - 1], //
@ -174,7 +167,6 @@
return response.message; return response.message;
}).join(',') }).join(',')
} }
console.log('---2', submitData)
message message
.confirm({ .confirm({
msg: '确认提交请假申请?', msg: '确认提交请假申请?',
@ -182,7 +174,12 @@
}) })
.then(() => { .then(() => {
addApi(submitData).then(res => { addApi(submitData).then(res => {
console.log('----', res.message) console.log('----', res)
// if (res.success) {
// startMutilProcess(res.message)
// } else {
toast.warning(res.message)
// }
}) })
}) })
.catch(() => {}) .catch(() => {})

View File

@ -8,7 +8,7 @@
} }
</route> </route>
<template> <template>
<PageLayout :navbarShow="false" :class="{ 'gray': appStore.isGray == 1 }"> <PageLayout :navbarShow="false">
<view class="nav"> <view class="nav">
<view class="nav_box"> <view class="nav_box">
<view class="weather_calender"> <view class="weather_calender">

View File

@ -8,11 +8,7 @@
} }
</route> </route>
<template> <template>
<view :class="{'gray': appStore.isGray == 1 }"> <PageLayout navTitle="干部值班">
<wd-navbar left-text="返回" left-arrow title="干部值班"
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-datetime-picker type="year-month" v-model="dataValue" label="年月" @confirm="getList" /> <wd-datetime-picker type="year-month" v-model="dataValue" label="年月" @confirm="getList" />
<wd-table :data="dataSource"> <wd-table :data="dataSource">
<wd-table-col prop="date" label="日期" width="60" align="center"></wd-table-col> <wd-table-col prop="date" label="日期" width="60" align="center"></wd-table-col>
@ -20,23 +16,15 @@
<wd-table-col prop="zbld_dictText" label="值班领导" width="73" align="center"></wd-table-col> <wd-table-col prop="zbld_dictText" label="值班领导" width="73" align="center"></wd-table-col>
<wd-table-col prop="zbgbrealname" label="值班干部" width="153" align="center"></wd-table-col> <wd-table-col prop="zbgbrealname" label="值班干部" width="153" align="center"></wd-table-col>
</wd-table> </wd-table>
</view> </PageLayout>
</template> </template>
<script setup> <script setup>
import {
useAppStore
} from '@/store';
import { import {
getListApi getListApi
} from '@/api/pages/duty' } from '@/api/pages/duty'
const appStore = useAppStore();
const dataValue = ref(Date.now()) const dataValue = ref(Date.now())
const dataSource = ref([]) const dataSource = ref([])
const handleClickLeft = () => {
uni.navigateBack();
};
const getList = () => { const getList = () => {
const date = new Date(dataValue.value); const date = new Date(dataValue.value);
const year = date.getFullYear(); const year = date.getFullYear();

View File

@ -10,7 +10,7 @@
<template> <template>
<PageLayout :navbarShow="false"> <PageLayout :navbarShow="false">
<view :class="['page-container', { 'gray': appStore.isGray == 1 }]"> <view class="page-container">
<view class="text-center"> <view class="text-center">
<image src="@/static/sinopec.png" mode="aspectFit" class="logo"></image> <image src="@/static/sinopec.png" mode="aspectFit" class="logo"></image>
<view class="enter-area"> <view class="enter-area">
@ -53,7 +53,6 @@
<script lang="ts" setup> <script lang="ts" setup>
import { useToast } from 'wot-design-uni' import { useToast } from 'wot-design-uni'
import { ref } from 'vue' import { ref } from 'vue'
import { useAppStore } from '@/store'
import { useUserStore } from '@/store/user' import { useUserStore } from '@/store/user'
import { http } from '@/utils/http' import { http } from '@/utils/http'
import { HOME_PAGE } from '@/common/constants' import { HOME_PAGE } from '@/common/constants'
@ -76,7 +75,6 @@
/**h5系统信息中没有appWgtVersion值*/ /**h5系统信息中没有appWgtVersion值*/
const version = uni.getSystemInfoSync().appWgtVersion ? uni.getSystemInfoSync().appWgtVersion : uni.getSystemInfoSync().appVersion const version = uni.getSystemInfoSync().appWgtVersion ? uni.getSystemInfoSync().appWgtVersion : uni.getSystemInfoSync().appVersion
const toast = useToast() const toast = useToast()
const appStore = useAppStore()
const userStore = useUserStore() const userStore = useUserStore()
const handleChangePassword = () => { const handleChangePassword = () => {
showPassword.value = !showPassword.value showPassword.value = !showPassword.value

View File

@ -8,65 +8,50 @@
} }
</route> </route>
<template> <template>
<view :class="{ 'gray': appStore.isGray == 1 }"> <PageLayout navTitle="在线预览">
<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="serveBox">
<view class="title"> <view class="title">
<view class="dot"></view> <view class="dot"></view>
<wd-text text="文件预览"></wd-text> <wd-text text="文件预览"></wd-text>
</view> </view>
<view class="f-col">
<view v-if="ifH5"> <view v-if="ifH5">
<!-- 在线预览 by --> <!-- 在线预览 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)}`)" <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)"> v-for="item,i in detailArr" :text="captureText(item)">
</wd-text> </wd-text>
</view> </view>
<view v-else> <view v-else>
<!-- 在线预览 by --> <!-- 在线预览 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)}`)" <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)"> v-for="item,i in detailArr" :text="captureText(item)">
</wd-text> </wd-text>
</view> </view>
</view>
</view>
</view> </view>
</PageLayout>
</template> </template>
<script setup> <script setup>
import {
useAppStore
} from '@/store'
import { import {
ref ref
} from 'vue' } from 'vue'
import { import {
onLoad, onLoad
onShow
} from '@dcloudio/uni-app'; } from '@dcloudio/uni-app';
const appStore = useAppStore();
const detail = ref({}) const detail = ref({})
const detailArr = ref([]) const detailArr = ref([])
//h5 by //h5 by
var ifH5 = false; var ifH5 = false;
const onlinePreview = (url) => { //线 by
const onlinePreview = (url)=>{ //线 by
uni.navigateTo({ uni.navigateTo({
url:url url: url
}) })
} }
const captureText = (text) => { //
const handleClickLeft = () => {
uni.navigateBack()
}
const captureText = (text)=>{ //
const match = text.match(/\/([^_]+)(?=_)/); const match = text.match(/\/([^_]+)(?=_)/);
console.log(match) console.log(match)
return match ? match[1] : ''; return match ? match[1] : '';
@ -79,19 +64,12 @@
ifH5 = true; ifH5 = true;
//#endif //#endif
// //
if(detailArr.value&&detailArr.value.length==1){ if (detailArr.value && detailArr.value.length == 1) {
let url = '/pages/onlinePreview/onlinePreview'; let url = '/pages/onlinePreview/onlinePreview';
if(ifH5) url = '/pages/onlinePreview/onlinePreviewH5' if (ifH5) url = '/pages/onlinePreview/onlinePreviewH5'
onlinePreview(url+`?data=${JSON.stringify(options.data)}`); onlinePreview(url + `?data=${JSON.stringify(options.data)}`);
} }
}) })
onShow (()=>{
// if(detailArr.value&&detailArr.value.length==1){
// uni.navigateBack()
// }
})
</script> </script>
<style> <style>
@ -136,6 +114,7 @@
.serveBox { .serveBox {
margin-bottom: 32upx; margin-bottom: 32upx;
background-color: #fff; background-color: #fff;
.title { .title {
display: flex; display: flex;
align-items: center; align-items: center;

View File

@ -8,19 +8,12 @@
} }
</route> </route>
<template> <template>
<view :class="{ 'gray': appStore.isGray == 1 }"> <PageLayout navTitle="在线预览">
<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>
<iframe id="bdIframe" :src="fileUrl" ref="bdIframe" style="border: none;" class="iframe" /> <iframe id="bdIframe" :src="fileUrl" ref="bdIframe" style="border: none;" class="iframe" />
</view> </PageLayout>
</template> </template>
<script setup> <script setup>
import {
useAppStore
} from '@/store'
import { import {
onLoad onLoad
} from '@dcloudio/uni-app'; } from '@dcloudio/uni-app';
@ -28,19 +21,15 @@
import { import {
getEnvBaseUrl getEnvBaseUrl
} from '@/utils/index' } from '@/utils/index'
const appStore = useAppStore();
const baseUrl = 'https://10.75.166.6/jeecg-boot/sys/common/static/'; const baseUrl = 'https://10.75.166.6/jeecg-boot/sys/common/static/';
var fileUrl = ""; var fileUrl = "";
const handleClickLeft = () => {
uni.navigateBack()
}
onLoad((options) => { onLoad((options) => {
let base64 = new Base64(); let base64 = new Base64();
var url = baseUrl + JSON.parse(options.data); var url = baseUrl + JSON.parse(options.data);
console.log('-----111',url) console.log('-----111', url)
fileUrl = 'https://36.112.48.190/preview/onlinePreview?url=' + encodeURIComponent(base64.encode(url)) fileUrl = 'https://36.112.48.190/preview/onlinePreview?url=' + encodeURIComponent(base64.encode(url))
console.log('-----222',fileUrl) console.log('-----222', fileUrl)
}) })
</script> </script>

View File

@ -8,41 +8,30 @@
} }
</route> </route>
<template> <template>
<view :class="{ 'gray': appStore.isGray == 1 }"> <PageLayout navTitle="在线预览">
<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>
<iframe id="bdIframe" :src="fileUrl" ref="bdIframe" style="border: none;" class="iframe" /> <iframe id="bdIframe" :src="fileUrl" ref="bdIframe" style="border: none;" class="iframe" />
</view> </PageLayout>
</template> </template>
<script setup> <script setup>
import {
useAppStore
} from '@/store'
import { import {
onLoad onLoad
} from '@dcloudio/uni-app'; } from '@dcloudio/uni-app';
import { import {
getEnvBaseUrl getEnvBaseUrl
} from '@/utils/index' } from '@/utils/index'
const appStore = useAppStore();
import { import {
Base64 Base64
} from 'js-base64' } from 'js-base64'
var fileUrl = ""; var fileUrl = "";
const baseUrl = 'https://10.75.166.6/jeecg-boot/sys/common/static/'; const baseUrl = 'https://10.75.166.6/jeecg-boot/sys/common/static/';
const handleClickLeft = () => {
uni.navigateBack()
}
onLoad((options) => { onLoad((options) => {
console.log(options) console.log(options)
let url = JSON.parse(options.data) let url = JSON.parse(options.data)
url = baseUrl + url; url = baseUrl + url;
console.log(url) console.log(url)
fileUrl ='https://36.112.48.190/preview/onlinePreview?url=' + encodeURIComponent(Base64.encode(url)) fileUrl = 'https://36.112.48.190/preview/onlinePreview?url=' + encodeURIComponent(Base64.encode(url))
console.log(fileUrl) console.log(fileUrl)
}) })
</script> </script>

View File

@ -8,11 +8,7 @@
} }
</route> </route>
<template> <template>
<view :class="{ 'gray': appStore.isGray == 1 }"> <PageLayout navTitle="制度详情">
<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="container"> <view class="container">
<wd-card title="制度"> <wd-card title="制度">
<view @click="onlinePreview(`/pages/onlinePreview/detail?data=${dataSource.sszd}`)"> <view @click="onlinePreview(`/pages/onlinePreview/detail?data=${dataSource.sszd}`)">
@ -25,7 +21,7 @@
</view> </view>
</wd-card> </wd-card>
</view> </view>
</view> </PageLayout>
</template> </template>
<script setup> <script setup>
@ -46,10 +42,6 @@
const dataSource = ref({}) const dataSource = ref({})
var ifH5 = false; var ifH5 = false;
const handleClickLeft = () => {
uni.navigateBack()
}
const onlinePreview = (url) => { const onlinePreview = (url) => {
uni.navigateTo({ uni.navigateTo({
url url

View File

@ -9,20 +9,10 @@
</route> </route>
<template> <template>
<view :class="{'gray': appStore.isGray == 1 }"> <PageLayout :navTitle="type">
<view class="fixed-header">
<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">
<template #title>
<view class="search-box">
<wd-search v-model="keyword" hide-cancel placeholder-left placeholder="搜索" shape="round"
@change="onChange"></wd-search>
</view>
</template>
</wd-navbar>
</view>
<view class="container"> <view class="container">
<wd-search v-model="keyword" hide-cancel placeholder-left placeholder="搜索" shape="round" @change="onChange"
class="search-box"></wd-search>
<!-- 加载提示 --> <!-- 加载提示 -->
<wd-loading v-if="loading && pageNo === 1" class="loading-tip">加载中...</wd-loading> <wd-loading v-if="loading && pageNo === 1" class="loading-tip">加载中...</wd-loading>
<!-- 列表内容 --> <!-- 列表内容 -->
@ -43,7 +33,7 @@
<wd-loading size="16px">正在加载...</wd-loading> <wd-loading size="16px">正在加载...</wd-loading>
</view> </view>
</view> </view>
</view> </PageLayout>
</template> </template>
<script setup> <script setup>
@ -59,10 +49,6 @@
queryFactorySystemApi, queryFactorySystemApi,
queryRegulationsApi queryRegulationsApi
} from '@/api/pages/file' } from '@/api/pages/file'
import {
useAppStore
} from '@/store'
const appStore = useAppStore()
let pageNo = 1 let pageNo = 1
let pageSize = 10 let pageSize = 10
let loading = false let loading = false
@ -105,7 +91,8 @@
fwbt: formatSearchkey() fwbt: formatSearchkey()
}).then((res) => { }).then((res) => {
if (res.success) { if (res.success) {
list.value = [...list.value, ...formatObj(res.result.records, 'fwbt', 'fwtime', 'wjlb', 'wjbt')] list.value = [...list.value, ...formatObj(res.result.records, 'fwbt', 'fwtime', 'wjlb',
'wjbt')]
} }
loading = false loading = false
}).catch((err) => { }).catch((err) => {
@ -137,7 +124,8 @@
zdmc: formatSearchkey() zdmc: formatSearchkey()
}).then((res) => { }).then((res) => {
if (res.success) { if (res.success) {
list.value = [...list.value, ...formatObj(res.result.records, 'zdmc', 'updateTime2', 'zbbm', 'sszd')] list.value = [...list.value, ...formatObj(res.result.records, 'zdmc', 'updateTime2', 'zbbm',
'sszd')]
} }
loading = false loading = false
}).catch((err) => { }).catch((err) => {
@ -153,7 +141,8 @@
zdmc: formatSearchkey() zdmc: formatSearchkey()
}).then((res) => { }).then((res) => {
if (res.success) { if (res.success) {
list.value = [...list.value, ...formatObj(res.result.records, 'zdmc', 'fatime', 'zbbm_dictText', 'id')] list.value = [...list.value, ...formatObj(res.result.records, 'zdmc', 'fatime',
'zbbm_dictText', 'id')]
} }
loading = false loading = false
}).catch((err) => { }).catch((err) => {
@ -169,7 +158,8 @@
flfgmc: formatSearchkey() flfgmc: formatSearchkey()
}).then((res) => { }).then((res) => {
if (res.success) { if (res.success) {
list.value = [...list.value, ...formatObj(res.result.records, 'flfgmc', 'updateTime2', 'fabubumen', 'mingcheng')] list.value = [...list.value, ...formatObj(res.result.records, 'flfgmc', 'updateTime2',
'fabubumen', 'mingcheng')]
} }
loading = false loading = false
}).catch((err) => { }).catch((err) => {
@ -229,42 +219,33 @@
</script> </script>
<style lang="scss"> <style lang="scss">
/* 固定顶部区域 */
.fixed-header {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 1000;
}
.container { .container {
padding: calc(60px + var(--status-bar-height, 0)) 5px 0 5px;
min-height: 100vh; min-height: 100vh;
background-color: #f7f7f7; background-color: #f7f7f7;
} }
.search-box { .search-box {
display: flex; margin: 16px;
height: 100%; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
align-items: center; border-radius: 20px;
width: 100%;
padding: 0 10px;
:deep() { // If you want to style the inner input
.wd-search { ::v-deep .wd-search__content {
background: rgba(255, 255, 255, 0.2); background-color: #fff;
border-radius: 18px;
width: 100%;
.wd-search__input { .wd-search__input {
color: #fff; font-size: 14px;
color: #333;
} }
.wd-search__placeholder { .wd-search__placeholder {
color: rgba(255, 255, 255, 0.7); color: #999;
} }
} }
// If you want to style the search icon
::v-deep .wd-search__search-icon {
color: #999;
} }
} }

View File

@ -8,19 +8,14 @@
} }
</route> </route>
<template> <template>
<view :class="{'gray': appStore.isGray == 1 }"> <PageLayout navTitle="三册查看">
<wd-navbar left-text="返回" left-arrow title="三册查看"
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-col-picker label="选择目录" v-model="selectedValue" :columns="dataSource" :column-change="columnChange" <wd-col-picker label="选择目录" v-model="selectedValue" :columns="dataSource" :column-change="columnChange"
@confirm="handleConfirm" :display-format="displayFormat"></wd-col-picker> @confirm="handleConfirm" :display-format="displayFormat"></wd-col-picker>
<iframe id="bdIframe" :src="fileUrl" ref="bdIframe" style="border: none;" class="iframe" v-if="fileUrl" /> <iframe id="bdIframe" :src="fileUrl" ref="bdIframe" style="border: none;" class="iframe" v-if="fileUrl" />
<view v-else @click="onlinePreview(item.path)" v-for="(item, i) in fileUrl2" style="padding: 15px 0 0 0"> <view v-else @click="onlinePreview(item.path)" v-for="(item, i) in fileUrl2" style="padding: 15px 0 0 0">
<wd-card :title="item.name"></wd-card> <wd-card :title="item.name"></wd-card>
</view> </view>
</view> </PageLayout>
</template> </template>
<script setup> <script setup>
@ -30,9 +25,6 @@
import { import {
onLoad onLoad
} from '@dcloudio/uni-app' } from '@dcloudio/uni-app'
import {
useAppStore
} from '@/store';
import { import {
useUserStore useUserStore
} from '@/store/user'; } from '@/store/user';
@ -47,7 +39,6 @@
getEnvBaseUrl getEnvBaseUrl
} from '@/utils/index' } from '@/utils/index'
const appStore = useAppStore();
const data = ref([]) const data = ref([])
const dataSource = ref([]) const dataSource = ref([])
const selectedValue = ref([]); const selectedValue = ref([]);
@ -56,9 +47,6 @@
const url = ref('') const url = ref('')
const fileUrl = ref('') const fileUrl = ref('')
const fileUrl2 = ref([]) const fileUrl2 = ref([])
const handleClickLeft = () => {
uni.navigateBack();
};
const columnChange = ({ const columnChange = ({
selectedItem, selectedItem,
resolve, resolve,

View File

@ -8,11 +8,7 @@
} }
</route> </route>
<template> <template>
<view :class="{ 'gray': appStore.isGray == 1 }"> <PageLayout navTitle="流程审批导航">
<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-tabs v-model="tab" swipeable color="#39b54a" autoLineWidth>
<wd-tab title="我的任务"> <wd-tab title="我的任务">
<myTask></myTask> <myTask></myTask>
@ -21,14 +17,10 @@
<view class="content">内容1</view> <view class="content">内容1</view>
</wd-tab> </wd-tab>
</wd-tabs> </wd-tabs>
</PageLayout>
</view>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import {
useAppStore
} from '@/store'
import { import {
ref ref
} from 'vue' } from 'vue'
@ -37,17 +29,11 @@
onShow onShow
} from '@dcloudio/uni-app'; } from '@dcloudio/uni-app';
import myTask from './components/myTask.vue' import myTask from './components/myTask.vue'
const appStore = useAppStore();
const tab = ref(0) const tab = ref(0)
const handleClickLeft = () => {
uni.navigateBack()
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
::v-deep .wd-tabs__line{ ::v-deep .wd-tabs__line {
background: #39b54a; background: #39b54a;
} }
</style> </style>

View File

@ -55,7 +55,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { taskListApi,claim } from '@/api/process/api' import { taskListApi,claim } from '@/api/process'
import { import {
ref ref
} from 'vue' } from 'vue'

View File

@ -8,11 +8,7 @@
} }
</route> </route>
<template> <template>
<view :class="{ 'gray': appStore.isGray == 1 }"> <PageLayout navTitle="任务处理">
<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-tabs v-model="tab" swipeable color="#39b54a" autoLineWidth>
<wd-tab title="单据"> <wd-tab title="单据">
</wd-tab> </wd-tab>
@ -23,7 +19,7 @@
<view class="content">内容3</view> <view class="content">内容3</view>
</wd-tab> </wd-tab>
</wd-tabs> </wd-tabs>
</view> </PageLayout>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
@ -31,32 +27,17 @@
ref ref
} from 'vue' } from 'vue'
import { import {
onLoad, onLoad
onShow,
onReachBottom,
onPullDownRefresh
} from '@dcloudio/uni-app'; } from '@dcloudio/uni-app';
import { useToast, useMessage } from 'wot-design-uni'
import {
useAppStore
} from '@/store'
const appStore = useAppStore();
const tab = ref(0) const tab = ref(0)
const handleClickLeft = () => {
uni.navigateBack()
}
onLoad((options) => { onLoad((options) => {
console.log(JSON.parse(options.data)) console.log(JSON.parse(options.data))
}) })
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep .wd-tabs__line{ ::v-deep .wd-tabs__line {
background: #39b54a; background: #39b54a;
} }
</style> </style>

View File

@ -10,7 +10,6 @@
<template> <template>
<PageLayout :navbarShow="false"> <PageLayout :navbarShow="false">
<view :class="{'gray': appStore.isGray == 1 }">
<view class="avatar-area"> <view class="avatar-area">
<wd-img width="100" height="100" :round="true" :radius="50" <wd-img width="100" height="100" :round="true" :radius="50"
:src="getFileAccessHttpUrl(userStore.userInfo.avatar)" @click="ChooseImage"></wd-img> :src="getFileAccessHttpUrl(userStore.userInfo.avatar)" @click="ChooseImage"></wd-img>
@ -49,7 +48,6 @@
</template> </template>
</wd-cell-group> </wd-cell-group>
</scroll-view> </scroll-view>
</view>
</PageLayout> </PageLayout>
</template> </template>
@ -64,10 +62,8 @@
import useUpload from '@/hooks/useUpload' import useUpload from '@/hooks/useUpload'
import { getEnvBaseUrl } from '@/utils/index' import { getEnvBaseUrl } from '@/utils/index'
import { queryPostByUserIdApi, editUserApi } from '@/api/system/user' import { queryPostByUserIdApi, editUserApi } from '@/api/system/user'
import { useAppStore } from '@/store'
const userStore = useUserStore() const userStore = useUserStore()
const appStore = useAppStore()
const toast = useToast() const toast = useToast()
const router = useRouter() const router = useRouter()
const message = useMessage() const message = useMessage()