flx:优化样式问题

This commit is contained in:
Rain_ 2024-12-21 16:57:51 +08:00
parent 9e76aabea3
commit 25a5180175
73 changed files with 1267 additions and 2410 deletions

View File

@ -14,9 +14,10 @@ export default {
uni.setStorageSync("loginUser", JSON.stringify(arg.loginUser));
uni.setStorageSync("projectSn", arg.loginUser.sn);
localStorage.setItem("projectSn", arg.loginUser.sn);
console.log(JSON.stringify(arg), "登录用户");
if (arg.page) {
uni.reLaunch({
url: arg.page,
url: arg.page + "?current=" + arg.current,
});
} else {
uni.reLaunch({
@ -38,7 +39,10 @@ export default {
<style lang="scss">
/* 注意要写在第一行同时给style标签加入lang="scss"属性 */
uni-page-head {
padding-top: 44rpx ;//
background-color: rgb(68, 120, 247);
}
.headerBox {
height: 44px;
align-items: center;

View File

@ -8,16 +8,16 @@
// export const BASE_URL = "http://jxj.zhgdyun.com:61212" // 洁远程
// export const BASE_URL = "http://182.90.224.237:35557"
// export const BASE_URL = "http://192.168.34.155:19111"
export const BASE_URL = "http://192.168.34.221:9111"
// axios.defaults.baseURL ='http://192.168.34.221:9111/' //郭圣雄本地
//export const BASE_URL = "http://192.168.8.100:10000"
//export const BASE_URL = "http://106.13.16.28:10000"
// export const BASE_URL = "http://192.168.34.221:9111"
// axios.defaults.baseURL ='http://192.168.34.221:9111/' //郭圣雄本地
//export const BASE_URL = "http://192.168.8.100:10000"
//export const BASE_URL = "http://106.13.16.28:10000"
// 生产环境
// export const BASE_URL = "http://101.43.164.214:11111" // 百色 通用
// export const BASE_URL = "http://42.180.188.17:9809" // 鞍钢正式环境
// export const BASE_URL = "http://42.180.188.17:19098" // 鞍钢线上测试环境
// export const BASE_URL = "http://jxj.zhgdyun.com:18004" // 包头线上地址
export const BASE_URL = "http://jxj.zhgdyun.com:18004" // 包头线上地址
//是否已显示未登录弹窗
let showNoLoginTip = false
@ -26,69 +26,69 @@ let showNoLoginTip = false
* @param {Object} config uni request的配置
*/
export function request(config = {}, sl = true) {
return new Promise((resolve, reject) => {
if (sl) {
uni.showLoading({
title: '加载中...'
})
}
uni.request({
url: BASE_URL + (config.url.startsWith("/") ? config.url : ("/" + config.url)),
method: (config.method || 'GET').toLocaleUpperCase(),
timeout: config.timeout || 20000,
withCredentials: true,
header: {
//大家在这里传自定义的token这里默认wflow的
Authorization: "Bearer " + uni.getStorageSync('wflow-token'),
TenantId: JSON.parse(uni.getStorageSync("loginUser")).sn,
...config.header,
},
dataType: 'json',
data: config.data,
success: (res) => {
if (res.statusCode === 200) {
showNoLoginTip = false
resolve(res)
} else if (res.statusCode === 401) {
if (!showNoLoginTip) {
showNoLoginTip = true
// uni.showModal({
// title: '提示',
// content: '登录已失效,是否重新跳转到登录',
// success: function(res) {
// showNoLoginTip = false
// uni.removeStorageSync('loginUser')
// if (res.confirm) {
// uni.navigateTo({ url: '/pages/login/login' })
// }
// }
// });
}
} else if (res.statusCode === 500) {
console.log(res)
uni.showToast({
icon: 'none',
title: '系统异常:' + res.data
})
} else {
showNoLoginTip = false
reject({
statusCode: res.statusCode,
msg: res.data
})
}
},
fail: (err) => {
console.log(err)
uni.showToast({
title: '网络异常,请检查网络',
duration: 2000,
icon: 'none'
})
},
complete: () => uni.hideLoading()
})
})
return new Promise((resolve, reject) => {
if (sl) {
uni.showLoading({
title: '加载中...'
})
}
uni.request({
url: BASE_URL + (config.url.startsWith("/") ? config.url : ("/" + config.url)),
method: (config.method || 'GET').toLocaleUpperCase(),
timeout: config.timeout || 20000,
withCredentials: true,
header: {
//大家在这里传自定义的token这里默认wflow的
Authorization: "Bearer " + uni.getStorageSync('wflow-token'),
TenantId: JSON.parse(uni.getStorageSync("loginUser")).sn,
...config.header,
},
dataType: 'json',
data: config.data,
success: (res) => {
if (res.statusCode === 200) {
showNoLoginTip = false
resolve(res)
} else if (res.statusCode === 401) {
if (!showNoLoginTip) {
showNoLoginTip = true
// uni.showModal({
// title: '提示',
// content: '登录已失效,是否重新跳转到登录',
// success: function(res) {
// showNoLoginTip = false
// uni.removeStorageSync('loginUser')
// if (res.confirm) {
// uni.navigateTo({ url: '/pages/login/login' })
// }
// }
// });
}
} else if (res.statusCode === 500) {
console.log(res)
uni.showToast({
icon: 'none',
title: '系统异常:' + res.data
})
} else {
showNoLoginTip = false
reject({
statusCode: res.statusCode,
msg: res.data
})
}
},
fail: (err) => {
console.log(err)
uni.showToast({
title: '网络异常,请检查网络',
duration: 2000,
icon: 'none'
})
},
complete: () => uni.hideLoading()
})
})
}
export default request

View File

@ -9,7 +9,10 @@
<uni-icons v-if="closeable" class="w-avatar-close" type="clear" :size="size - 15" @click="emits('close')"></uni-icons>
<uni-icons class="w-avatar-status" :key="status" :type="statusIcon.icon" :color="statusIcon.color" :size="size - 22"></uni-icons>
</view>
<view class="w-avatar-name over-tip" :style="{width: (_sizePx + 0.6) * 32 + 'rpx', fontSize: size / 42 * 32 + 'rpx'}" v-show="showName">{{name}}</view>
<view class="w-avatar-name over-tip" :style="{width: (_sizePx + 0.6) * 32 + 'rpx', fontSize: size / 42 * 32 + 'rpx'}" v-show="showName">
{{name}}
<span v-if="orgPostName">({{ orgPostName }})</span>
</view>
</view>
</template>
@ -25,6 +28,10 @@ import { computed } from 'vue';
type: String,
default: '未知'
},
orgPostName: {
type: String,
default:""
},
size: {
type: Number,
default: 40

View File

@ -34,9 +34,9 @@
:checked="org.selected" @click.stop="selectChange(org)"
style="transform:scale(0.9)" />
<view class="w-org-avatar">
<avatar v-if="org.type === 'user'" :name="org.name" :src="getRes(org.avatar)"
<Avatar v-if="org.type === 'user'" :name="org.name" :orgPostName="org.orgPostName" :src="getRes(org.avatar)"
:showName="false">
</avatar>
</Avatar>
<image class="w-dept-img" lazy-load mode="aspectFit" v-else
src="/static/image/dept.png"></image>
</view>
@ -44,7 +44,10 @@
</template>
<template v-slot:body>
<view style="flex: 1; display: flex; align-items: center;">
<text style="display: flex; align-items: center; font-size: 32rpx">{{org.name}}</text>
<text style="display: flex; align-items: center; font-size: 32rpx">
{{org.name}}
<text v-if="org.orgPostName">({{ org.orgPostName }})</text>
</text>
<view v-if="org.isLeader"
style="display: flex; align-items: center; margin-left: 16rpx;">
<uni-tag style="font-weight: 400;" type="warning" size="mini" text="部门负责人"
@ -85,10 +88,13 @@
<view class="w-orgPicker-selected">
<view class="w-selected" v-for="org in selected" :key="`${org.type}_${org.id}`">
<view>
<avatar :type="org.type" v-if="org.type==='user'" :closeable="org.enableEdit" :src="getRes(org.avatar)"
:size="25" :name="org.name" :showName="false"></avatar>
<Avatar :type="org.type" v-if="org.type==='user'" :orgPostName="org.orgPostName" :closeable="org.enableEdit" :src="getRes(org.avatar)"
:size="25" :name="org.name" :showName="false"></Avatar>
</view>
<view>
{{org.name}}
<text v-if="org.orgPostName">({{ org.orgPostName }})</text>
</view>
<view>{{org.name}}</view>
<button size="mini" @click="removeSelected(org)">移除</button>
</view>
</view>
@ -182,7 +188,8 @@
id: v.id,
name: v.name,
avatar: v.avatar,
type: v.type
type: v.type,
orgPostName: v.orgPostName,
}))
return temp
})

View File

@ -73,6 +73,7 @@
"path": "pages/submit/InitiateProcess",
"style": {
"navigationBarTitleText": "提交审批",
// "navigationStyle": "custom",
"enablePullDownRefresh": false
}
@ -86,7 +87,7 @@
}
],
"globalStyle": {
//"navigationStyle": "custom",
// "navigationStyle": "custom",
"navigationBarTextStyle": "white",
// "navigationBarTitleText": "uni-app",
"navigationBarBackgroundColor": "#4478F7",
@ -97,7 +98,11 @@
"immersed": false
}
},
"animationType": "slide-in-right"
"animationType": "slide-in-right",
"rpxCalcMaxDeviceWidth": 768, // rpx px 960
// "rpxCalcBaseDeviceWidth": 1100, // rpx 使 rpx px 375
"rpxCalcBaseDeviceWidth": 375,
"rpxCalcIncludeWidth": 750 // rpx rpx 750
},
"uniIdRouter": {}
// "tabBar": {

View File

@ -1,5 +1,5 @@
<template>
<view>
<view class="nav_main">
<view class="nav-type">
<uni-segmented-control :current="current" :values="['流程表单', '流程步骤']" @clickItem="switchItem"
styleType="text" activeColor="#4C87F3"></uni-segmented-control>

View File

@ -7,7 +7,10 @@
>
<view class="header_bg">
<headers :showBack="false" :themeType="'white'">
<view class="headerName"> 个人中心 </view>
<view class="headerName">
<!-- 个人中心 -->
我的待办
</view>
</headers>
<view class="search">
<uni-search-bar
@ -20,7 +23,7 @@
></uni-search-bar>
</view>
<!-- <uni-notice-bar show-icon show-close scrollable text="欢迎体验 wflow-pro工作流 移动端" /> -->
<view class="process-count">
<!-- <view class="process-count">
<view class="count-item todo-item" @click="to(0)">
<view class="item-text">
<view>待我处理</view>
@ -44,7 +47,7 @@
<image mode="aspectFit" src="/static/image/cc1.png"></image>
</view>
</view>
</view>
</view> -->
</view>
<view class="w-app-items">
<uni-collapse>
@ -281,9 +284,9 @@ function recentlyUsedStore() {
uni.setStorageSync("recentlyUsed", recentlyUsed.value);
}
// watch(searchValue, async () => {
// searchDebounce()
// })
watch(searchValue, async () => {
searchDebounce()
})
</script>
<style>

View File

@ -130,7 +130,7 @@ const tabs = computed(() => {
});
const contentHeight = computed(() => {
return uni.getSystemInfoSync().windowHeight - 40;
return uni.getSystemInfoSync().windowHeight - uni.upx2px(200);
});
const scrollTo = ref({
@ -312,6 +312,8 @@ function showInstance(item) {
}
onLoad((v) => {
console.log(JSON.stringify(v), 987);
current.value = parseInt(v.current) || 0;
uni.hideTabBar();
getDataList();
getAuto();

View File

@ -19,6 +19,6 @@
.uni-status-bar {
// width: 750rpx;
height: 20px;
// height: var(--status-bar-height);
height: var(--status-bar-height);
}
</style>

View File

@ -1 +0,0 @@
uni-page-body[data-v-61860e76]{background-color:#f4f5f7}body[data-v-61860e76]{background-color:#f4f5f7}.nav-type[data-v-61860e76]{background-color:#fff}.datas .nodata[data-v-61860e76]{width:100%}.datas .process-item[data-v-61860e76]{margin:1rem;border-radius:.40625rem;background-color:#fff;padding:.8125rem 1rem;position:relative}.datas .process-item .uni-tag[data-v-61860e76]{font-weight:400}.datas .process-item .process-item-status[data-v-61860e76]{position:absolute;right:1rem}.datas .process-item .form-content[data-v-61860e76]{font-size:.8125rem;color:#8b8b8b;margin:.5rem}.datas .process-item .form-content .form-content-it[data-v-61860e76]{overflow-x:hidden;display:flex;flex-wrap:wrap}.datas .process-item .form-content .form-content-it .over-tip[data-v-61860e76]{margin-left:5px}.datas .process-item .process-item-footer[data-v-61860e76]{display:flex;align-items:center;justify-content:space-between}.datas .process-item .process-item-footer>uni-text[data-v-61860e76]{font-size:.6875rem;color:#8b8b8b}.datas .process-item .process-item-footer>uni-view[data-v-61860e76]:last-child{color:#5976ef;font-size:1rem;display:flex;align-items:center;background-color:rgba(89,118,239,.15);padding:3px 5px;border-radius:5px}.logo[data-v-61860e76]{height:6.25rem;width:6.25rem;margin-top:6.25rem;margin-left:auto;margin-right:auto;margin-bottom:1.5625rem}.text-area[data-v-61860e76]{display:flex;justify-content:center}.title[data-v-61860e76]{font-size:1.125rem;color:#8f8f94}

View File

@ -1 +0,0 @@
function t(t){return t.isFuture?{text:"等待中...",type:"info"}:"agree"===t.taskResult?{text:"已同意",type:"success"}:"refuse"===t.taskResult?{text:"已拒绝",type:"error"}:"transfer"===t.taskResult?{text:"已转交",type:"primary"}:"recall"===t.taskResult?{text:"已退回",type:"warning"}:!t.taskResult&&t.finishTime?{text:"已取消",type:"default"}:{text:"处理中",type:"primary"}}function e(t){switch(t){case"RUNNING":return{text:"进行中",type:"primary"};case"COMPLETE":return{text:"已结束",type:"primary"};case"PASS":return{text:"审批通过",type:"success"};case"CANCEL":return{text:"已撤销",type:"default"};case"REFUSE":return{text:"审批驳回",type:"error"};default:return{text:"未知状态",type:"default"}}}function r(t){return t&&("CONDITIONS"===t.type||"CONCURRENTS"===t.type||"INCLUSIVES"===t.type)}function n(t){return t&&"EMPTY"===t.type}function u(t,e){if(r(t)){if(e(t))return;t.branchs.map((t=>{e(t)||u(t.children,e)})),u(t.children,e)}else if(function(t){return t&&t.type&&!(r(t)||n(t))}(t)||n(t)||function(t){return t&&("CONDITION"===t.type||"CONCURRENT"===t.type||"INCLUSIVE"===t.type)}(t)){if(e(t))return;u(t.children,e)}}export{t as a,u as f,e as g};

View File

@ -1 +0,0 @@
uni-page-body[data-v-3f6e2a7e]{background-color:#fff!important}body[data-v-3f6e2a7e]{background-color:#fff!important}.w-user-angent[data-v-3f6e2a7e]{padding:1rem .5rem}.w-user-angent .w-button[data-v-3f6e2a7e]{width:100%}.w-user-angent uni-button[data-v-3f6e2a7e]{margin-bottom:1rem}

View File

@ -1 +0,0 @@
.w-user-card[data-v-08f92d9a]{background-color:#fff;border-radius:8px;padding:1rem;position:relative}.w-user-card .w-avatar[data-v-08f92d9a]{border-radius:50%;position:absolute;padding:7px;background-color:#fff;top:-21px;left:0}.w-user-card>uni-view[data-v-08f92d9a]:nth-child(2){margin-left:70px}.w-user-card>uni-view[data-v-08f92d9a]:nth-child(2):first-child{margin-right:10px}.w-user-card .w-xicon[data-v-08f92d9a]{background-color:#fff;border-radius:50%;position:absolute;right:-5px;top:-8px;padding:2px}.w-user-card .w-user-info[data-v-08f92d9a]{margin-top:30px;width:70vw}.w-user-card .w-user-info .uni-list-item__container[data-v-08f92d9a]{padding:12px 0}uni-page-body[data-v-d4d46b35]{background-color:#f4f5f7}body[data-v-d4d46b35]{background-color:#f4f5f7}.w-org-paths[data-v-d4d46b35]{background-color:#fff}[data-v-d4d46b35] .w-org-list{font-size:1rem;margin-top:.8125rem}[data-v-d4d46b35] .w-org-list .w-org-item .uni-list-item__container{align-items:center}.w-org-avatar[data-v-d4d46b35]{display:flex;justify-content:center;align-items:center;margin-right:.8125rem}.w-org-avatar uni-image[data-v-d4d46b35]{width:1.59375rem;height:1.59375rem;padding:.40625rem;border-radius:10px;background-color:#c4d7ff}.search .search-input[data-v-d4d46b35]{font-size:1rem;background-color:#f4f5f7;border-radius:.40625rem}

View File

@ -1 +0,0 @@
uni-page-body[data-v-7b2786a5]{background-color:#fff!important}body[data-v-7b2786a5]{background-color:#fff!important}.login-page[data-v-7b2786a5]{padding:0 1rem}.login-page .title[data-v-7b2786a5]{padding:8rem 0 3rem}.login-page .title .title-tip[data-v-7b2786a5]{display:block;color:#373e60;font-size:1.5625rem;font-weight:600;margin-bottom:.40625rem}.login-page .title .title-desc[data-v-7b2786a5]{font-weight:500;color:#959595;font-size:.9375rem}.login-page .login-input[data-v-7b2786a5]{font-size:1rem;padding:.8rem 1.5rem;background-color:#f7f8f9;border-radius:.40625rem;margin:1rem 0;width:calc(100% - 3rem)}.login-page .opration[data-v-7b2786a5]{display:flex;margin-bottom:1rem;justify-content:space-between;align-items:center;color:#4478f7}.login-page .other-login[data-v-7b2786a5]{margin:4rem 0;width:100%;height:0;display:flex;align-items:center;justify-content:center;border-bottom:1px solid #878787;color:#878787}.login-page .other-login uni-text[data-v-7b2786a5]{background-color:#fff;padding:0 5px}.login-page .login-type[data-v-7b2786a5]{display:flex;justify-content:center;align-items:center}.login-page .login-type .img[data-v-7b2786a5]:first-child{width:2.8125rem;height:2.8125rem}.login-page .login-type .img[data-v-7b2786a5]{margin:0 1rem;width:2.5rem;height:2.5rem}

View File

@ -1 +0,0 @@
.w-user-info[data-v-909ba759]{font-size:1rem;padding:2rem 0 .1875rem;display:flex;flex-direction:column;justify-content:center;align-items:center;background-color:#fff}.w-user-info .uni-tag[data-v-909ba759]{font-weight:400}.w-user-info .w-user-name[data-v-909ba759]{font-size:1.09375rem;margin:.3125rem 0}.w-user-info .w-user-role[data-v-909ba759]{margin:.5rem 0}.w-user-logout[data-v-909ba759]{width:90%;margin-top:1.5rem;font-size:.9375rem}.w-user-items[data-v-909ba759]{margin-top:.5rem}.w-items-t[data-v-909ba759]{padding:.5rem 0;font-size:1rem;display:flex;flex:1;color:#3b4144;flex-direction:column;justify-content:space-between;overflow:hidden}.w-items-f[data-v-909ba759]{font-size:.90625rem;color:#797171;display:flex;align-items:center}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

View File

@ -1 +0,0 @@
const s="/assets/noData-hNB5fQrw.png";export{s as _};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

View File

@ -1 +0,0 @@
.segmented-control[data-v-cd8f471b]{display:flex;box-sizing:border-box;flex-direction:row;height:36px;overflow:hidden;cursor:pointer}.segmented-control__item[data-v-cd8f471b]{display:inline-flex;box-sizing:border-box;position:relative;flex:1;justify-content:center;align-items:center}.segmented-control__item--button[data-v-cd8f471b]{border-style:solid;border-top-width:1px;border-bottom-width:1px;border-right-width:1px;border-left-width:0}.segmented-control__item--button--first[data-v-cd8f471b]{border-left-width:1px;border-top-left-radius:5px;border-bottom-left-radius:5px}.segmented-control__item--button--last[data-v-cd8f471b]{border-top-right-radius:5px;border-bottom-right-radius:5px}.segmented-control__item--text[data-v-cd8f471b]{border-bottom-style:solid;border-bottom-width:2px;padding:6px 0}.segmented-control__text[data-v-cd8f471b]{font-size:14px;line-height:20px;text-align:center}

File diff suppressed because one or more lines are too long

View File

@ -1,28 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="/assets/uni.772ec88f.css">
<meta charset="UTF-8" />
<script>
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
CSS.supports('top: constant(a)'))
document.write(
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<title>wflow-pro工作流</title>
<!--preload-links-->
<!--app-context-->
<script type="module" crossorigin src="/assets/index-Cq4rYf7P.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-ChEAUo_Z.css">
</head>
<body>
<div id="app">
<!--app-html-->
</div>
</body>
</html>

View File

@ -1,331 +0,0 @@
@font-face {
font-family: "iconfont"; /* Project id 3538338 */
src: url('iconfont.woff2?t=1663221768308') format('woff2'),
url('iconfont.woff?t=1663221768308') format('woff'),
url('iconfont.ttf?t=1663221768308') format('truetype');
}
[class^="iconfont"],[class*="iconfont"]{
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-mn_xiuxi:before {
content: "\e60a";
}
.icon-cooperation-full:before {
content: "\e85d";
}
.icon-yanfa:before {
content: "\e8e9";
}
.icon-yanfaguanli-yangpinjianyan:before {
content: "\e63f";
}
.icon-tsm_0108:before {
content: "\e621";
}
.icon-dengdaishenhe:before {
content: "\e61f";
}
.icon-dengdaizhongbeifen:before {
content: "\e60f";
}
.icon-zhuanyi:before {
content: "\e686";
}
.icon-quxiao:before {
content: "\e67a";
}
.icon-yitongguo:before {
content: "\e601";
}
.icon-yijujue:before {
content: "\e602";
}
.icon-yiquxiao:before {
content: "\e608";
}
.icon-yichexiao:before {
content: "\e609";
}
.icon-fanhui-chehui-06:before {
content: "\e81d";
}
.icon-zhuanyi-16:before {
content: "\e870";
}
.icon-iconfontdianzishu:before {
content: "\e605";
}
.icon-iconfontchuzu:before {
content: "\e624";
}
.icon-iconfontzhitongche:before {
content: "\e625";
}
.icon-iconfontgongjiao:before {
content: "\e626";
}
.icon-iconfonttehuijingxuan:before {
content: "\e631";
}
.icon-iconfontwifi1:before {
content: "\e632";
}
.icon-iconfonterweima:before {
content: "\e60e";
}
.icon-iconfontunie64e:before {
content: "\e617";
}
.icon-iconfonticon3:before {
content: "\e61d";
}
.icon-iconfonticonfontsetting:before {
content: "\e735";
}
.icon-iconfontbucket:before {
content: "\e618";
}
.icon-iconfontyoujian:before {
content: "\e645";
}
.icon-iconfontkafei:before {
content: "\e61e";
}
.icon-iconfontihou:before {
content: "\e630";
}
.icon-iconfontgift:before {
content: "\e604";
}
.icon-iconfontdianying:before {
content: "\e606";
}
.icon-iconfontrenmentuijian:before {
content: "\e633";
}
.icon-iconfont3:before {
content: "\e607";
}
.icon-xiaoxi:before {
content: "\e62b";
}
.icon-fangzi:before {
content: "\e646";
}
.icon-BBDanquan:before {
content: "\e656";
}
.icon-iconfont-jiaoyi:before {
content: "\e68d";
}
.icon-iconfonticon-dianyu:before {
content: "\e635";
}
.icon-iconfonticon-gaojin:before {
content: "\e638";
}
.icon-iconfonticon-nengha:before {
content: "\e63c";
}
.icon-iconfonticon-xitong:before {
content: "\e641";
}
.icon-iconfontkefu:before {
content: "\e61c";
}
.icon-mima:before {
content: "\e648";
}
.icon-renlishebao:before {
content: "\e636";
}
.icon-bumen:before {
content: "\e758";
}
.icon-charutupian:before {
content: "\ec7f";
}
.icon-kaoqinguanli:before {
content: "\e610";
}
.icon-shenfenzheng:before {
content: "\e614";
}
.icon-weizhi:before {
content: "\e64b";
}
.icon-24gf-phoneBubble:before {
content: "\e966";
}
.icon-kaoqin:before {
content: "\e643";
}
.icon-huiyi:before {
content: "\e61b";
}
.icon-jiaban:before {
content: "\e637";
}
.icon-biaoge:before {
content: "\e665";
}
.icon-shiyongwendang:before {
content: "\eb66";
}
.icon-duoxuankuang:before {
content: "\e62e";
}
.icon-danxuan:before {
content: "\e751";
}
.icon-chuzu:before {
content: "\e600";
}
.icon-zhaopin:before {
content: "\e647";
}
.icon-caiwu:before {
content: "\e67d";
}
.icon-caigou:before {
content: "\e887";
}
.icon-zhufangbutie:before {
content: "\e68e";
}
.icon-wodechanpin:before {
content: "\e679";
}
.icon-fapiaoguanli:before {
content: "\e63b";
}
.icon-gongzi:before {
content: "\e7e9";
}
.icon-zhufangbutiezhanghu:before {
content: "\e60c";
}
.icon-weixiu:before {
content: "\e613";
}
.icon-yuangonglizhi:before {
content: "\e615";
}
.icon-zhaopinguanli:before {
content: "\e616";
}
.icon-caiwu1:before {
content: "\e603";
}
.icon-qingjiashenqing:before {
content: "\e60d";
}
.icon-ziyuan207:before {
content: "\e722";
}
.icon-yongcanjiucan:before {
content: "\e67e";
}
.icon-map-site:before {
content: "\ea00";
}
.icon-hetong:before {
content: "\e68a";
}
.icon-buka:before {
content: "\e6ca";
}
.icon-chucha:before {
content: "\e6c7";
}
.icon-baoxiaoshenqing-feiyongbaoxiaoshenqing-02:before {
content: "\e726";
}
.icon-a-11Cfenzuzuzhishu:before {
content: "\e676";
}

View File

@ -1,562 +0,0 @@
{
"id": "3538338",
"name": "wflow",
"font_family": "iconfont",
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "4188525",
"name": "AK-MN_休息",
"font_class": "mn_xiuxi",
"unicode": "e60a",
"unicode_decimal": 58890
},
{
"icon_id": "18164281",
"name": "握手,合作,协作",
"font_class": "cooperation-full",
"unicode": "e85d",
"unicode_decimal": 59485
},
{
"icon_id": "20508529",
"name": "研发",
"font_class": "yanfa",
"unicode": "e8e9",
"unicode_decimal": 59625
},
{
"icon_id": "24161461",
"name": "研发管理-样品检验",
"font_class": "yanfaguanli-yangpinjianyan",
"unicode": "e63f",
"unicode_decimal": 58943
},
{
"icon_id": "29119075",
"name": "退货",
"font_class": "tsm_0108",
"unicode": "e621",
"unicode_decimal": 58913
},
{
"icon_id": "1125648",
"name": "等待审核",
"font_class": "dengdaishenhe",
"unicode": "e61f",
"unicode_decimal": 58911
},
{
"icon_id": "11903016",
"name": "等待中备份",
"font_class": "dengdaizhongbeifen",
"unicode": "e60f",
"unicode_decimal": 58895
},
{
"icon_id": "167224",
"name": "转移",
"font_class": "zhuanyi",
"unicode": "e686",
"unicode_decimal": 59014
},
{
"icon_id": "867063",
"name": "取消",
"font_class": "quxiao",
"unicode": "e67a",
"unicode_decimal": 59002
},
{
"icon_id": "10299093",
"name": "已通过",
"font_class": "yitongguo",
"unicode": "e601",
"unicode_decimal": 58881
},
{
"icon_id": "10299097",
"name": "已拒绝",
"font_class": "yijujue",
"unicode": "e602",
"unicode_decimal": 58882
},
{
"icon_id": "10299547",
"name": "已取消",
"font_class": "yiquxiao",
"unicode": "e608",
"unicode_decimal": 58888
},
{
"icon_id": "12815781",
"name": "已撤销",
"font_class": "yichexiao",
"unicode": "e609",
"unicode_decimal": 58889
},
{
"icon_id": "24858654",
"name": "返回-撤回-06",
"font_class": "fanhui-chehui-06",
"unicode": "e81d",
"unicode_decimal": 59421
},
{
"icon_id": "24861786",
"name": "转移-16",
"font_class": "zhuanyi-16",
"unicode": "e870",
"unicode_decimal": 59504
},
{
"icon_id": "321312",
"name": "iconfont-dianzishu",
"font_class": "iconfontdianzishu",
"unicode": "e605",
"unicode_decimal": 58885
},
{
"icon_id": "321522",
"name": "iconfont-chuzu",
"font_class": "iconfontchuzu",
"unicode": "e624",
"unicode_decimal": 58916
},
{
"icon_id": "321523",
"name": "iconfont-zhitongche",
"font_class": "iconfontzhitongche",
"unicode": "e625",
"unicode_decimal": 58917
},
{
"icon_id": "321524",
"name": "iconfont-gongjiao",
"font_class": "iconfontgongjiao",
"unicode": "e626",
"unicode_decimal": 58918
},
{
"icon_id": "324450",
"name": "iconfont-tehuijingxuan",
"font_class": "iconfonttehuijingxuan",
"unicode": "e631",
"unicode_decimal": 58929
},
{
"icon_id": "354643",
"name": "wifi",
"font_class": "iconfontwifi1",
"unicode": "e632",
"unicode_decimal": 58930
},
{
"icon_id": "372393",
"name": "iconfont-erweima",
"font_class": "iconfonterweima",
"unicode": "e60e",
"unicode_decimal": 58894
},
{
"icon_id": "417566",
"name": "iconfont-unie64e",
"font_class": "iconfontunie64e",
"unicode": "e617",
"unicode_decimal": 58903
},
{
"icon_id": "461928",
"name": "iconfont-me",
"font_class": "iconfonticon3",
"unicode": "e61d",
"unicode_decimal": 58909
},
{
"icon_id": "579060",
"name": "iconfont-iconfontsetting",
"font_class": "iconfonticonfontsetting",
"unicode": "e735",
"unicode_decimal": 59189
},
{
"icon_id": "655421",
"name": "iconfont-bucket",
"font_class": "iconfontbucket",
"unicode": "e618",
"unicode_decimal": 58904
},
{
"icon_id": "655501",
"name": "iconfont-youjian",
"font_class": "iconfontyoujian",
"unicode": "e645",
"unicode_decimal": 58949
},
{
"icon_id": "699106",
"name": "Iconfont-kafei",
"font_class": "iconfontkafei",
"unicode": "e61e",
"unicode_decimal": 58910
},
{
"icon_id": "716455",
"name": "iconfont-ihou",
"font_class": "iconfontihou",
"unicode": "e630",
"unicode_decimal": 58928
},
{
"icon_id": "859249",
"name": "iconfont-gift",
"font_class": "iconfontgift",
"unicode": "e604",
"unicode_decimal": 58884
},
{
"icon_id": "986389",
"name": "iconfont-dianying",
"font_class": "iconfontdianying",
"unicode": "e606",
"unicode_decimal": 58886
},
{
"icon_id": "997429",
"name": "iconfont-renmentuijian",
"font_class": "iconfontrenmentuijian",
"unicode": "e633",
"unicode_decimal": 58931
},
{
"icon_id": "1163056",
"name": "iconfont-3",
"font_class": "iconfont3",
"unicode": "e607",
"unicode_decimal": 58887
},
{
"icon_id": "1215978",
"name": "BBD消息",
"font_class": "xiaoxi",
"unicode": "e62b",
"unicode_decimal": 58923
},
{
"icon_id": "1267041",
"name": "BBD房子",
"font_class": "fangzi",
"unicode": "e646",
"unicode_decimal": 58950
},
{
"icon_id": "1325666",
"name": "BBD安全",
"font_class": "BBDanquan",
"unicode": "e656",
"unicode_decimal": 58966
},
{
"icon_id": "1539713",
"name": "iconfont-jiaoyi",
"font_class": "iconfont-jiaoyi",
"unicode": "e68d",
"unicode_decimal": 59021
},
{
"icon_id": "6253872",
"name": "iconfont icon-dianyu",
"font_class": "iconfonticon-dianyu",
"unicode": "e635",
"unicode_decimal": 58933
},
{
"icon_id": "6253876",
"name": "iconfont icon-gaojin",
"font_class": "iconfonticon-gaojin",
"unicode": "e638",
"unicode_decimal": 58936
},
{
"icon_id": "6253885",
"name": "iconfont icon-nengha",
"font_class": "iconfonticon-nengha",
"unicode": "e63c",
"unicode_decimal": 58940
},
{
"icon_id": "6253901",
"name": "iconfont icon-xitong",
"font_class": "iconfonticon-xitong",
"unicode": "e641",
"unicode_decimal": 58945
},
{
"icon_id": "807897",
"name": "iconfont-kefu",
"font_class": "iconfontkefu",
"unicode": "e61c",
"unicode_decimal": 58908
},
{
"icon_id": "1313126",
"name": "BBD密码",
"font_class": "mima",
"unicode": "e648",
"unicode_decimal": 58952
},
{
"icon_id": "2131309",
"name": "人力社保",
"font_class": "renlishebao",
"unicode": "e636",
"unicode_decimal": 58934
},
{
"icon_id": "4774868",
"name": "部门",
"font_class": "bumen",
"unicode": "e758",
"unicode_decimal": 59224
},
{
"icon_id": "6337457",
"name": "插入图片",
"font_class": "charutupian",
"unicode": "ec7f",
"unicode_decimal": 60543
},
{
"icon_id": "2958951",
"name": "考勤管理",
"font_class": "kaoqinguanli",
"unicode": "e610",
"unicode_decimal": 58896
},
{
"icon_id": "3007689",
"name": "身份证",
"font_class": "shenfenzheng",
"unicode": "e614",
"unicode_decimal": 58900
},
{
"icon_id": "5121522",
"name": "位置",
"font_class": "weizhi",
"unicode": "e64b",
"unicode_decimal": 58955
},
{
"icon_id": "7568869",
"name": "24gf-phoneBubble",
"font_class": "24gf-phoneBubble",
"unicode": "e966",
"unicode_decimal": 59750
},
{
"icon_id": "11134714",
"name": "考勤",
"font_class": "kaoqin",
"unicode": "e643",
"unicode_decimal": 58947
},
{
"icon_id": "15972093",
"name": "会议",
"font_class": "huiyi",
"unicode": "e61b",
"unicode_decimal": 58907
},
{
"icon_id": "19883444",
"name": "加班",
"font_class": "jiaban",
"unicode": "e637",
"unicode_decimal": 58935
},
{
"icon_id": "1392555",
"name": "表格",
"font_class": "biaoge",
"unicode": "e665",
"unicode_decimal": 58981
},
{
"icon_id": "3868276",
"name": "使用文档",
"font_class": "shiyongwendang",
"unicode": "eb66",
"unicode_decimal": 60262
},
{
"icon_id": "5881147",
"name": "多选框",
"font_class": "duoxuankuang",
"unicode": "e62e",
"unicode_decimal": 58926
},
{
"icon_id": "26323690",
"name": "单选",
"font_class": "danxuan",
"unicode": "e751",
"unicode_decimal": 59217
},
{
"icon_id": "5032",
"name": "出租",
"font_class": "chuzu",
"unicode": "e600",
"unicode_decimal": 58880
},
{
"icon_id": "1079372",
"name": "招聘",
"font_class": "zhaopin",
"unicode": "e647",
"unicode_decimal": 58951
},
{
"icon_id": "1183143",
"name": "财务",
"font_class": "caiwu",
"unicode": "e67d",
"unicode_decimal": 59005
},
{
"icon_id": "1727267",
"name": "05采购",
"font_class": "caigou",
"unicode": "e887",
"unicode_decimal": 59527
},
{
"icon_id": "1841799",
"name": "住房补贴",
"font_class": "zhufangbutie",
"unicode": "e68e",
"unicode_decimal": 59022
},
{
"icon_id": "1876349",
"name": "我的产品",
"font_class": "wodechanpin",
"unicode": "e679",
"unicode_decimal": 59001
},
{
"icon_id": "1977843",
"name": "发票管理",
"font_class": "fapiaoguanli",
"unicode": "e63b",
"unicode_decimal": 58939
},
{
"icon_id": "7790995",
"name": "工资",
"font_class": "gongzi",
"unicode": "e7e9",
"unicode_decimal": 59369
},
{
"icon_id": "10120009",
"name": "住房补贴账户",
"font_class": "zhufangbutiezhanghu",
"unicode": "e60c",
"unicode_decimal": 58892
},
{
"icon_id": "11435446",
"name": "维修",
"font_class": "weixiu",
"unicode": "e613",
"unicode_decimal": 58899
},
{
"icon_id": "11435453",
"name": "员工离职",
"font_class": "yuangonglizhi",
"unicode": "e615",
"unicode_decimal": 58901
},
{
"icon_id": "11435456",
"name": "招聘管理",
"font_class": "zhaopinguanli",
"unicode": "e616",
"unicode_decimal": 58902
},
{
"icon_id": "12911861",
"name": "财务",
"font_class": "caiwu1",
"unicode": "e603",
"unicode_decimal": 58883
},
{
"icon_id": "14443545",
"name": "请假申请",
"font_class": "qingjiashenqing",
"unicode": "e60d",
"unicode_decimal": 58893
},
{
"icon_id": "14947326",
"name": "出差",
"font_class": "ziyuan207",
"unicode": "e722",
"unicode_decimal": 59170
},
{
"icon_id": "17187052",
"name": "用餐就餐",
"font_class": "yongcanjiucan",
"unicode": "e67e",
"unicode_decimal": 59006
},
{
"icon_id": "18170995",
"name": "地图组织站点,层级,下级,组织架构布局",
"font_class": "map-site",
"unicode": "ea00",
"unicode_decimal": 59904
},
{
"icon_id": "21053836",
"name": "合同",
"font_class": "hetong",
"unicode": "e68a",
"unicode_decimal": 59018
},
{
"icon_id": "21159370",
"name": "补卡",
"font_class": "buka",
"unicode": "e6ca",
"unicode_decimal": 59082
},
{
"icon_id": "24080655",
"name": "出差",
"font_class": "chucha",
"unicode": "e6c7",
"unicode_decimal": 59079
},
{
"icon_id": "24283254",
"name": "报销申请-费用报销申请-02",
"font_class": "baoxiaoshenqing-feiyongbaoxiaoshenqing-02",
"unicode": "e726",
"unicode_decimal": 59174
},
{
"icon_id": "29522596",
"name": "11C分组,组织树",
"font_class": "a-11Cfenzuzuzhishu",
"unicode": "e676",
"unicode_decimal": 58998
}
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 712 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 858 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 475 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 788 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 719 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 480 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 547 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 539 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 677 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -1,226 +0,0 @@
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title></title>
<style type="text/css">
html,
body,
canvas {
padding: 0;
margin: 0;
width: 100%;
height: 100%;
overflow-y: hidden;
background-color: transparent;
}
</style>
</head>
<body>
<canvas id="lime-signature"></canvas>
<script type="text/javascript" src="./uni.webview.1.5.3.js"></script>
<script type="text/javascript" src="./signature.js"></script>
<script>
var signature = null;
var timer = null;
var isStart = false;
var options = null
console.log = function(...args) {
postMessage(args);
};
// function stringify(key, value) {
// if (typeof value === 'object' && value !== null) {
// if (cache.indexOf(value) !== -1) {
// return;
// }
// cache.push(value);
// }
// return value;
// };
function emit(event, data) {
postMessage({
event,
data: typeof data !== "object" && data !== null ? data : JSON.stringify(data),
});
// cache = [];
}
function postMessage(data) {
uni.postMessage({
data
});
}
function update(v = {}) {
if (signature) {
options = v
signature.pen.setOption(v);
} else {
signature = new Signature.Signature({el: "lime-signature"});
canvasEl = signature.canvas.get("el");
options = v
signature.pen.setOption(v)
const width = signature.canvas.get("width");
const height = signature.canvas.get("height");
emit({changeSize: {width,height}})
}
}
function clear() {
signature.clear()
}
function undo() {
signature.undo()
}
function redo() {
signature.redo()
}
function isEmpty() {
const isEmpty = signature.isEmpty()
emit({isEmpty});
}
function isTransparent(color) {
// 判断颜色是否为 transparent
if (color === 'transparent') {
return true;
}
// 判断颜色是否为 rgba 的 a 为 0
if (color.startsWith('rgba')) {
const regex = /\d+(\.\d+)?/g;
const matches = color.match(regex);
if (matches !== null) {
const alpha = parseFloat(matches[3]);
if (alpha === 0) {
return true;
}
}
}
return false;
}
function mask(param){
clearTimeout(timer);
let {destWidth=0, destHeight=0} = param
let width = this.signature.canvas.get('width')
let height = this.signature.canvas.get('height')
let canvas = document.createElement('canvas')
const ctx = canvas.getContext('2d');
const pixelRatio = signature.canvas.get('pixelRatio')
let width = signature.canvas.get('width')
let height = signature.canvas.get('height')
canvas.width = width * pixelRatio
canvas.height = height * pixelRatio
this.signature.pen.getMaskedImageData((imageData)=>{
ctx.putImageData(imageData, 0, 0);
if(destWidth&&destHeight){
const _canvas = document.createElement('canvas')
_canvas.width = destWidth
_canvas.height = destHeight
const _context = _canvas.getContext('2d')
_context.drawImage(canvas, 0, 0, destWidth, destHeight)
canvas.remove()
canvas = _canvas
}
const path = canvas.toDataURL();
canvas.remove()
if (typeof path == "string") {
const index = Math.ceil(path.length / 8);
for (var i = 0; i < 8; i++) {
if (i == 7) {
emit({"success": path.substr(i * index, index)});
} else {
emit({"file": path.substr(i * index, index)});
}
}
} else {
console.error("canvas no data");
emit({"fail": "canvas no data"});
}
})
}
function save(param) {
// delete param.success;
// delete param.fail;
clearTimeout(timer);
timer = setTimeout(() => {
let {fileType = 'png', quality = 1, n, destWidth=0, destHeight=0} = param
const type = `image/${fileType}`.replace(/jpg/, 'jpeg');
const {backgroundColor, landscape, boundingBox} = options
const flag = backgroundColor || landscape || boundingBox||destWidth&&destHeight
let path = canvasEl.toDataURL(!flag && type, !flag && quality)
if(flag) {
let canvas = document.createElement('canvas')
const pixelRatio = signature.canvas.get('pixelRatio')
let width = signature.canvas.get('width')
let height = signature.canvas.get('height')
let x = 0
let y = 0
const next = () => {
const size = [width, height]
if(landscape) {size.reverse()}
canvas.width = size[0] * pixelRatio
canvas.height = size[1] * pixelRatio
const param = [x, y, width, height, 0 , 0, width, height].map(item => item * pixelRatio)
const context = canvas.getContext('2d')
// context.scale(pixelRatio, pixelRatio)
if (landscape) {
context.translate(0, width * pixelRatio)
context.rotate(-Math.PI / 2)
}
if (backgroundColor && !isTransparent(backgroundColor)) {
context.fillStyle = backgroundColor
context.fillRect(0, 0, width * pixelRatio, height * pixelRatio)
}
const drawImage = ()=>{
}
// param
context.drawImage(signature.canvas.get('el'), ...param)
if(destWidth&&destHeight){
const _canvas = document.createElement('canvas')
_canvas.width = destWidth
_canvas.height = destHeight
const _context = _canvas.getContext('2d')
_context.drawImage(canvas, 0, 0, destWidth, destHeight)
canvas.remove()
canvas = _canvas
}
path = canvas.toDataURL(type, quality)
canvas.remove()
}
if(boundingBox) {
const res = signature.getContentBoundingBox()
width = res.width
height = res.height
x = res.startX
y = res.startY
next()
} else {
next()
}
}
if (typeof path == "string") {
const index = Math.ceil(path.length / 8);
for (var i = 0; i < 8; i++) {
if (i == 7) {
emit({"success": path.substr(i * index, index)});
} else {
emit({"file": path.substr(i * index, index)});
}
}
} else {
console.error("canvas no data");
emit({"fail": "canvas no data"});
}
}, 30);
}
</script>
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,198 +0,0 @@
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title class="title">[文件管理器]</title>
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<style type="text/css">
.content {background: transparent;}
.btn {position: relative;top: 0;left: 0;bottom: 0;right: 0;}
.btn .file {position: fixed;z-index: 93;left: 0;right: 0;top: 0;bottom: 0;width: 100%;opacity: 0;}
</style>
</head>
<body>
<div id="content" class="content">
<div class="btn">
<input :multiple="multiple" @change="onChange" :accept="accept" ref="file" class="file" type="file" />
</div>
</div>
<script type="text/javascript" src="js/vue.min.js"></script>
<script type="text/javascript">
let _this;
var vm = new Vue({
el: '#content',
data: {
accept: '',
multiple: true,
},
mounted() {
console.log('加载webview');
_this = this;
this.files = new Map();
document.addEventListener('plusready', (e)=>{
let {debug,instantly,prohibited} = plus.webview.currentWebview();
this.debug = debug;
this.instantly = instantly;
this.prohibited = prohibited;
this.accept = prohibited.accept;
if (prohibited.multiple === 'false') {
prohibited.multiple = false;
}
this.multiple = prohibited.multiple;
location.href = 'callback?retype=updateOption';
}, false);
},
methods: {
toast(msg) {
plus.nativeUI.toast(msg);
},
clear(name) {
if (!name) {
this.files.clear();
return;
}
this.files.delete(name);
},
setData(option='{}') {
this.debug&&console.log('更新参数:'+option);
try{
_this.option = JSON.parse(option);
}catch(e){
console.error('参数设置错误')
}
},
async upload(name=''){
if (name && this.files.has(name)) {
await this.createUpload(this.files.get(name));
}
else {
for (let item of this.files.values()) {
if (item.type === 'waiting' || item.type === 'fail') {
await this.createUpload(item);
}
}
}
},
onChange(e) {
let fileDom = this.$refs.file;
for (let file of fileDom.files) {
if (this.files.size >= this.prohibited.count) {
this.toast(`只允许上传${this.prohibited.count}个文件`);
fileDom.value = '';
break;
}
this.addFile(file);
}
this.uploadAfter();
fileDom.value = '';
},
addFile(file) {
if (file) {
let name = file.name;
this.debug&&console.log('文件名称',name,'大小',file.size);
// 限制文件格式
let suffix = name.substring(name.lastIndexOf(".")+1).toLowerCase();
let formats = this.prohibited.formats.toLowerCase();
if (formats&&!formats.includes(suffix)) {
this.toast(`不支持上传${suffix.toUpperCase()}格式文件`);
return;
}
// 限制文件大小
if (file.size > 1024 * 1024 * Math.abs(this.prohibited.size)) {
this.toast(`附件大小请勿超过${this.prohibited.size}M`)
return;
}
// let itemBlob = new Blob([file]);
let path = URL.createObjectURL(file);
this.files.set(file.name,{file,path,name: file.name,size: file.size,progress: 0,type: 'waiting'});
}
},
/**
* @returns {Map} 已选择的文件Map集
*/
callChange() {
location.href = 'callback?retype=change&files=' + escape(JSON.stringify([...this.files]));
},
/**
* @returns {object} 正在处理的当前对象
*/
changeFilesItem(item,end='') {
this.files.set(item.name,item);
location.href = 'callback?retype=progress&end='+ end +'&item=' + escape(JSON.stringify(item));
},
uploadAfter() {
this.callChange();
setTimeout(()=>{
this.instantly&&this.upload();
},1000)
},
createUpload(item) {
this.debug&&console.log('准备上传,option='+JSON.stringify(this.option));
item.type = 'loading';
delete item.responseText;
return new Promise((resolve,reject)=>{
let {url,name,method='POST',header={},formData={}} = this.option;
let form = new FormData();
for (let keys in formData) {
form.append(keys, formData[keys])
}
form.append(name, item.file);
let xmlRequest = new XMLHttpRequest();
xmlRequest.open(method, url, true);
for (let keys in header) {
xmlRequest.setRequestHeader(keys, header[keys])
}
xmlRequest.upload.addEventListener(
'progress',
event => {
if (event.lengthComputable) {
let progress = Math.ceil((event.loaded * 100) / event.total)
if (progress <= 100) {
item.progress = progress;
this.changeFilesItem(item);
}
}
},
false
);
xmlRequest.ontimeout = () => {
console.error('请求超时')
item.type = 'fail';
this.changeFilesItem(item,true);
return resolve(false);
}
xmlRequest.onreadystatechange = ev => {
if (xmlRequest.readyState == 4) {
this.debug && console.log('接口是否支持跨域',xmlRequest.withCredentials);
if (xmlRequest.status == 200) {
this.debug && console.log('上传完成:' + xmlRequest.responseText)
item['responseText'] = xmlRequest.responseText;
item.type = 'success';
this.changeFilesItem(item,true);
return resolve(true);
} else if (xmlRequest.status == 0) {
console.error('status = 0 :请检查请求头Content-Type与服务端是否匹配服务端已正确开启跨域并且nginx未拦截阻止请求')
}
console.error('--ERROR--status = ' + xmlRequest.status)
item.type = 'fail';
this.changeFilesItem(item,true);
return resolve(false);
}
}
xmlRequest.send(form)
});
}
}
});
</script>
</body>
</html>

View File

@ -4,7 +4,7 @@
<meta charset="UTF-8" />
<title>View</title>
<link rel="stylesheet" href="app.css" />
<script>var __uniConfig = {"globalStyle":{},"darkmode":false}</script>
<script>var __uniConfig = {"globalStyle":{"rpxCalcMaxDeviceWidth":768,"rpxCalcBaseDeviceWidth":375},"darkmode":false}</script>
<script>
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
CSS.supports('top: constant(a)'))

View File

@ -1,7 +1,7 @@
;(function(){
let u=void 0,isReady=false,onReadyCallbacks=[],isServiceReady=false,onServiceReadyCallbacks=[];
const __uniConfig = {"pages":[],"globalStyle":{"animationType":"slide-in-right","titleView":false,"statusbar":{"immersed":false},"navigationBar":{"backgroundColor":"#4478F7","type":"default","titleColor":"#ffffff"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"wflow-pro工作流","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"4.24","entryPagePath":"pages/login/login","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"fallbackLocale":"zh-Hans","locales":{},"darkmode":false,"themeConfig":{}};
const __uniConfig = {"pages":[],"globalStyle":{"animationType":"slide-in-right","rpxCalcMaxDeviceWidth":768,"rpxCalcBaseDeviceWidth":375,"rpxCalcIncludeWidth":750,"titleView":false,"statusbar":{"immersed":false},"navigationBar":{"backgroundColor":"#4478F7","type":"default","titleColor":"#ffffff"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"wflow-pro工作流","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"4.24","entryPagePath":"pages/login/login","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"fallbackLocale":"zh-Hans","locales":{},"darkmode":false,"themeConfig":{}};
const __uniRoutes = [{"path":"pages/login/login","meta":{"isQuit":true,"isEntry":true,"backgroundColor":"#623FDC","titleView":false,"navigationBar":{"titleText":"","style":"custom","type":"default"},"isNVue":false}},{"path":"components/form/sub/ProcessSelect","meta":{"enablePullDownRefresh":true,"backgroundColor":"#623FDC","navigationBar":{"titleText":"选择流程","type":"default"},"isNVue":false}},{"path":"pages/workspace/workspace","meta":{"enablePullDownRefresh":true,"backgroundColor":"#623FDC","navigationBarHidden":false,"navigationBar":{"titleText":"工作区","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/submit/submit","meta":{"enablePullDownRefresh":true,"navigationBar":{"titleText":"发起流程","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/contacts/contacts","meta":{"enablePullDownRefresh":true,"backgroundColor":"#623FDC","navigationBar":{"titleText":"通讯录","type":"default"},"isNVue":false}},{"path":"pages/my/my","meta":{"backgroundColor":"#623FDC","titleView":false,"navigationBar":{"titleText":"我的","type":"default"},"isNVue":false}},{"path":"pages/instance/instancePreview","meta":{"enablePullDownRefresh":false,"navigationBar":{"titleText":"流程详情","type":"default"},"isNVue":false}},{"path":"pages/submit/InitiateProcess","meta":{"enablePullDownRefresh":false,"navigationBar":{"titleText":"提交审批","type":"default"},"isNVue":false}},{"path":"pages/my/UserAgent","meta":{"enablePullDownRefresh":false,"navigationBar":{"titleText":"用户代理人设置","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute));
__uniConfig.styles=[];//styles
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});

File diff suppressed because it is too large Load Diff

View File

@ -26,8 +26,39 @@
/* 透明度 */
/* 文章场景相关 */
/* 注意要写在第一行同时给style标签加入lang="scss"属性 */
uni-page-head {
padding-top: 1.375rem;
background-color: #4478f7;
}
.headerBox {
height: 44px;
align-items: center;
color: white;
justify-content: center;
position: relative;
z-index: 2;
font-size: 16px;
}
.headerBox .backImg {
width: 24px;
height: 24px;
position: absolute;
top: 9px;
left: 10px;
z-index: 999;
}
.headerBox .headerName {
text-align: center;
line-height: 44px;
z-index: 3;
position: relative;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
text-align: center;
}
body {
background-color: #F4F5F7;
background-color: #f4f5f7;
}
.w-button {
border-radius: 1.5rem;
@ -38,7 +69,7 @@ body {
border: none;
}
.w-click-hover {
background-color: #F7F7F7;
background-color: #f7f7f7;
}
.w-form-input-rv {
font-size: 1rem;
@ -2392,6 +2423,7 @@ body {
/* 文章场景相关 */
.uni-status-bar[data-v-7920e3e0] {
height: 20px;
height: var(--status-bar-height);
}
/**
* 这里是uni-app内置的常用样式变量

View File

@ -2505,6 +2505,7 @@
/* 文章场景相关 */
.uni-status-bar[data-v-7920e3e0] {
height: 20px;
height: var(--status-bar-height);
}
/**
* 这里是uni-app内置的常用样式变量

View File

@ -557,6 +557,7 @@
/* 文章场景相关 */
.uni-status-bar[data-v-7920e3e0] {
height: 20px;
height: var(--status-bar-height);
}
/**
* 这里是uni-app内置的常用样式变量

View File

@ -1390,6 +1390,7 @@
/* 文章场景相关 */
.uni-status-bar[data-v-7920e3e0] {
height: 20px;
height: var(--status-bar-height);
}
/**
* 这里是uni-app内置的常用样式变量

View File

@ -2529,6 +2529,7 @@
/* 文章场景相关 */
.uni-status-bar[data-v-7920e3e0] {
height: 20px;
height: var(--status-bar-height);
}
/**
* 这里是uni-app内置的常用样式变量

View File

@ -962,7 +962,7 @@ body {
}
.header_box .header_bg[data-v-61228d3b] {
width: 100vw;
height: 10.3125rem;
min-height: 10.3125rem;
background-image: url(../../static/image/main_bg1.png);
background-repeat: no-repeat;
background-size: 100% 100%;
@ -987,8 +987,11 @@ body {
font-size: 1.09375rem;
margin-left: 1rem;
}
.search[data-v-61228d3b] {
background-color: white;
.search .uni-searchbar[data-v-61228d3b] {
padding: 0.625rem 0.875rem;
}
.search[data-v-61228d3b] .uni-searchbar__box {
background-color: white !important;
}
.w-app-items[data-v-61228d3b] {
padding: 0 0.5rem;
@ -998,7 +1001,7 @@ body {
}
.process-count[data-v-61228d3b] {
display: flex;
padding: 0.1875rem;
padding: 0.875rem;
}
.process-count > uni-view[data-v-61228d3b]:first-child {
width: 40%;
@ -1029,7 +1032,7 @@ body {
margin: 0.1875rem;
background-color: #ffffff;
border-radius: 0.3125rem;
padding: 0.5rem;
padding: 0.75rem;
}
.process-count .count-item .item-text > uni-view[data-v-61228d3b]:last-child {
color: #b9b8b8;

View File

@ -392,6 +392,95 @@
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
uni-view[data-v-ac70166d], uni-scroll-view[data-v-ac70166d], uni-swiper-item[data-v-ac70166d] {
display: flex;
flex-direction: column;
flex-shrink: 0;
flex-grow: 0;
flex-basis: auto;
align-items: stretch;
align-content: flex-start;
}
@font-face {
font-family: "uicon-iconfont";
src: url("https://at.alicdn.com/t/font_2225171_8kdcwk4po24.ttf") format("truetype");
}
.u-icon[data-v-ac70166d] {
display: flex;
align-items: center;
}
.u-icon--left[data-v-ac70166d] {
flex-direction: row-reverse;
align-items: center;
}
.u-icon--right[data-v-ac70166d] {
flex-direction: row;
align-items: center;
}
.u-icon--top[data-v-ac70166d] {
flex-direction: column-reverse;
justify-content: center;
}
.u-icon--bottom[data-v-ac70166d] {
flex-direction: column;
justify-content: center;
}
.u-icon__icon[data-v-ac70166d] {
font-family: uicon-iconfont;
position: relative;
display: flex;
flex-direction: row;
align-items: center;
}
.u-icon__icon--primary[data-v-ac70166d] {
color: #3c9cff;
}
.u-icon__icon--success[data-v-ac70166d] {
color: #5ac725;
}
.u-icon__icon--error[data-v-ac70166d] {
color: #f56c6c;
}
.u-icon__icon--warning[data-v-ac70166d] {
color: #f9ae3d;
}
.u-icon__icon--info[data-v-ac70166d] {
color: #909399;
}
.u-icon__img[data-v-ac70166d] {
height: auto;
will-change: transform;
}
.u-icon__label[data-v-ac70166d] {
line-height: 1;
}
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.uniui-cart-filled[data-v-d31e1c47]:before {
content: "\e6d0";
}
@ -899,6 +988,44 @@
text-decoration: none;
text-align: center;
}
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.statusBar[data-v-d608242b] {
background-color: #2a2b5b;
}
.whiteHeaderBox .statusBar[data-v-d608242b] {
background-color: #2b8df3;
}
.whiteHeaderBox .rightIcon[data-v-d608242b] {
position: absolute;
right: 0.625rem;
top: 50%;
transform: translateY(-50%);
z-index: 10;
}
.w-avatar[data-v-c8a835f9] {
display: inline-flex;
align-items: center;
@ -941,8 +1068,16 @@
flex-direction: column;
}
.header_bg[data-v-245b3c15] {
width: 100vw;
min-height: 10.3125rem;
background-image: url(../../static/image/main_bg1.png);
background-repeat: no-repeat;
background-size: 100%;
position: relative;
}
body[data-v-245b3c15] {
background-color: #F4F5F7;
background-color: #f4f5f7;
}
.nullText[data-v-245b3c15] {
position: fixed;
@ -954,10 +1089,10 @@ body[data-v-245b3c15] {
.nav-type[data-v-245b3c15] {
width: 100%;
height: 2.25rem;
background-color: white;
}
.nav-type[data-v-245b3c15] .segmented-control {
width: 100%;
padding: 0 0.875rem;
display: flex;
align-items: center;
justify-content: space-between;
@ -970,6 +1105,13 @@ body[data-v-245b3c15] {
.nav-type[data-v-245b3c15] .segmented-control .segmented-control__item:not(:last-child) {
margin-right: 1.5625rem;
}
.nav-type[data-v-245b3c15] .segmented-control .segmented-control__text {
color: rgba(255, 255, 255, 0.7) !important;
}
.nav-type[data-v-245b3c15] .segmented-control .segmented-control__item--text {
border-bottom: none;
color: white !important;
}
.datas[data-v-245b3c15] {
position: relative;
}
@ -997,7 +1139,7 @@ body[data-v-245b3c15] {
}
.datas .process-item .form-content[data-v-245b3c15] {
font-size: 0.8125rem;
color: #8B8B8B;
color: #8b8b8b;
margin: 0.5rem 0.5rem;
}
.datas .process-item .form-content .form-content-it[data-v-245b3c15] {
@ -1015,7 +1157,7 @@ body[data-v-245b3c15] {
}
.datas .process-item .process-item-footer > uni-text[data-v-245b3c15]:last-child {
font-size: 0.6875rem;
color: #8B8B8B;
color: #8b8b8b;
}
.logo[data-v-245b3c15] {
height: 6.25rem;