Commit 4ba98cb1 authored by zuoliyuan's avatar zuoliyuan

init

parent c592eba9

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

unpackage/dist
unpackage/cache
unpackage/release
.hbuilderx/launch.json
pages/login/index1.vue
.vite/deps
node_modules/.vite
<script>
import chat from '@/libs/chat.js'
import {
getAppVersion
} from '@/api/common.js'
import {
getMessageDetail,
checkInfo,
} from '@/api/message.js'
import {
useUserStore
} from '@/store/modules/user'
import {
useChatStore
} from '@/store/modules/chat'
const userStore = useUserStore()
const chatStore = useChatStore()
const token = uni.getStorageSync("token");
export default {
data() {
return {
version: 0,
resVersion: 0,
modileSystem: 'android',
Apk: ''
}
},
onLaunch() {
// #ifdef H5
if (!token) return
chat.initSocket()
// #endif
// #ifdef APP-PLUS
/* uniPush */
// uni.getPushClientId({
// success: (res) => {
// userStore.setCid(res.cid)
// this.handlePush()
// },
// fail(err) {}
// })
/* H5+ */
/* 获取设备信息 */
uni.getSystemInfo({
success(res) {
uni.setStorageSync('systemInfo', res.ua)
}
})
this.handlePush()
this.getAppVersion()
// #endif
},
methods: {
getAppVersion() {
getAppVersion().then(res => {
let data = res.data.sysVersion || ''
const matches = data.match(/(\d+\.\d+\.\d+)/);
if (matches && matches.length > 0) this.Apk =
`https://cdn.jnpfsoft.com/apk/Android-java-${matches[0]}.apk`
data.trim();
this.version = Number(data.replace(/[^0-9]/ig, ""))
this.$nextTick(() => {
this.onUpdate()
})
}).catch((err) => {})
},
onUpdate() {
plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => {
let resVersion = this.define.sysVersion;
resVersion.trim();
this.resVersion = Number(resVersion.replace(/[^0-9]/ig, ""))
if (this.version != this.resVersion) {
process.env.NODE_ENV === "production" ?
uni.setStorageSync('isUpdate', 1) : uni.removeStorageSync('isUpdate')
uni.showModal({ //提醒用户更新
title: "立即更新版本",
success: (res) => {
if (res.confirm) {
uni.removeStorageSync('isUpdate')
let system = plus.os.name;
if (system === 'Android') {
// let url = devLanguage ? javaApk : dotNetApk;
if (!this.Apk) return this.$u.toast('下载链接为空')
plus.runtime.openURL(this.Apk)
// uni.downloadFile({
// //下载地址
// url: url,
// success: data => {
// if (data.statusCode === 200) {
// plus.runtime.install(data
// .tempFilePath, {
// force: false
// },
// function() {
// plus.runtime
// .restart();
// });
// }
// }
// })
} else {
plus.runtime.launchApplication({
action: `itms-apps://itunes.apple.com/cn/app/id${'appleId自行配置'}`
}, function(e) {});
}
} else if (res.cancel) {
if (this.modileSystem == 'ios') {
plus.ios.import("UIApplication")
.sharedApplication()
.performSelector("exit")
} else if (this.modileSystem == 'android') {
plus.runtime.quit();
}
}
}
})
}
})
},
toIm(item) {
chatStore.reduceBadgeNum(0)
/* H5+ */
uni.navigateTo({
url: '/pages/message/im/index?name=' + item.realName + '/' + item.account + '&formUserId=' +
item.formUserId +
'&headIcon=' +
item
.headIcon
})
/* unipush2.0 */
// uni.navigateTo({
// url: '/pages/message/im/index?name=' + item.name + '&formUserId=' +
// item.formUserId +
// '&headIcon=' +
// item
// .headIcon
// })
},
toFlow(item) {
getMessageDetail(item).then(res => {
chatStore.setMsgInfoNum()
let bodyText = res.data.bodyText ? JSON.parse(res.data.bodyText) : {};
let config = {
id: bodyText.processId,
enCode: bodyText.enCode,
flowId: bodyText.flowId,
formType: bodyText.formType,
opType: bodyText.type == 1 ? 0 : bodyText.type == 2 ? 1 : bodyText.type,
taskNodeId: bodyText.taskNodeId,
taskId: bodyText.taskOperatorId,
fullName: res.data.title,
status: bodyText.status
}
if (bodyText.type == 2) {
checkInfo(bodyText.taskOperatorId).then(res => {
if (res.data && res.data.isCheck) config.opType = 3
setTimeout(() => {
uni.navigateTo({
url: '/pages/workFlow/flowBefore/index?config=' +
this.jnpf.base64.encode(JSON.stringify(config))
});
}, 300)
}).catch((err) => {})
} else {
uni.navigateTo({
url: '/pages/workFlow/flowBefore/index?config=' +
this.jnpf.base64.encode(JSON.stringify(config))
});
}
}).catch(err => {})
},
// 处理推送消息
handlePush() {
// #ifdef APP-PLUS
/* H5+ */
plus.push.addEventListener(
'click',
msg => {
if (msg.payload.messageType == 1) {
uni.navigateTo({
url: '/pages/message/messageDetail/index?id=' + msg.payload.id
});
} else if (msg.payload.messageType == 2) {
this.toFlow(msg.payload.id)
} else {
this.toIm(msg.payload)
}
})
/* uniPush */
// uni.onPushMessage((res) => {
// // const pages = getCurrentPages();
// // const currentRoute = pages[pages.length - 1].$page.fullPath
// let payload = res.data.payload
// let text = JSON.parse(this.jnpf.base64.decode(payload.text))
// let content = text.type == 1 ? '公告' : text.type == 2 ? '流程' : '聊天'
// let title = text.type == 3 ? text.name : text.title
// if (res.type === 'receive') {
// uni.createPushMessage({
// title,
// content: `你有一条${content}消息`,
// payload,
// icon: './static/logo.png',
// success: (res) => {},
// fail: (err) => {}
// })
// } else {
// if (text.type == 1) {
// uni.navigateTo({
// url: '/pages/message/messageDetail/index?id=' + text.id
// });
// } else if (text.type == 2) {
// this.toFlow(text)
// } else {
// this.toIm(text)
// }
// }
// })
// #endif
},
}
}
</script>
<style lang="scss">
/*每个页面公共css */
@import "@/uni_modules/vk-uview-ui/index.scss";
@import "@/assets/iconfont/ym/iconfont.css";
@import "@/assets/iconfont/custom/iconfont.css";
@import "@/assets/scss/common.scss";
@import "@/assets/scss/components.scss";
</style>
\ No newline at end of file
1 #jnpf-app-vue3
\ No newline at end of file
## 一 环境要求
### 1.1 开发环境
- 操作系统:`Windows 10/11``MacOS`
- `Node.js v12/v4/v16`(v16 版本某些情况下可能需要安装 `Python3` 环境);
- 浏览器推荐使用 `Chrome 90` 及以上版本;
- `HBuilder X` (最新版)
### 1.2 运行环境
`Nginx 1.18.0` 及以上版本或 `TongHttpServer 6.0` (信创环境)
## 二 关联项目
> 需要使用下表中的对应分支
| 项目 | 分支 | 分支(Coding) | 说明 |
| ------------------------- | ------| ------------- | ------------------------------------------|
| **后端**(任一后端服务) | | | |
| jnpf-java-boot | v3.7.x| v3.7.x-stable | Java 单体项目源码 |
| jnpf-java-cloud | v3.7.x| v3.7.x-stable | Java 微服务项目源码 |
| jnpf-dotnet | v3.7.x| v3.7.x-stable | .NET 单体项目源码 |
| jnpf-dotnet-cloud | v3.7.x| v3.7.x-stable | .NET 微服务项目源码 |
## 三 使用说明
### 3.1 高德地图配置
打开 `/src/utils/define.ts` 配置文件,修改aMapWebKey值
打开 `manifest.json` 文件,点击app模块配置,修改高德地图相关配置信息。点击web配置,修改高德地图相关配置信息。
import request from '@/utils/request'
// 获取应用菜单
export function getMenuList(data) {
return request({
url: '/api/app/Menu',
method: 'get',
data,
options: {
load: false
}
})
}
// 获取常用 1-流程 2-应用
export function getUsualList(type) {
return request({
url: '/api/app/Data?type=' + type,
options: {
load: false
}
})
}
export function addUsual(data) {
return request({
url: '/api/app/Data',
method: 'post',
data
})
}
export function delUsual(id) {
return request({
url: '/api/app/Data/' + id,
method: 'delete'
})
}
export function getFlowList(data) {
return request({
url: '/api/app/Data/getFlowList',
data
})
}
export function getDataList() {
return request({
url: '/api/app/Data/getDataList'
})
}
import request from '@/utils/request'
// 删除订单
export function Delete(id) {
return request({
url: `/api/extend/CrmOrder/${id}`,
method: 'DELETE'
})
}
// 获取订单列表
export function getOrderList(data, options) {
return request({
url: `/api/extend/CrmOrder`,
method: 'get',
data,
options
})
}
// 获取商品列表
export function getGoodsList(data) {
return request({
url: `/api/extend/CrmOrder/Goods`,
method: 'get',
data,
options: {
load: false
}
})
}
// 获取客户列表
export function getCustomerList(keyword) {
return request({
url: `/api/extend/CrmOrder/Customer`,
method: 'get',
data: {
keyword: keyword || ''
},
options: {
load: false
}
})
}
import request from '@/utils/request'
//获取我发出的日志
export function getSendList(data, options) {
return request({
url: `/api/extend/WorkLog/Send`,
method: 'GET',
data,
options
})
}
//获取收到的日志
export function getReceiveList(data, options) {
return request({
url: `/api/extend/WorkLog/Receive`,
method: 'GET',
data,
options
})
}
//日志info
export function getLogInfo(id) {
return request({
url: `/api/extend/WorkLog/${id}`,
method: 'GET',
})
}
//日志保存
export function createLog(data) {
return request({
url: `/api/extend/WorkLog`,
method: 'POST',
data
})
}
//日志修改
export function updateLog(data) {
return request({
url: `/api/extend/WorkLog/${data.id}`,
method: 'PUT',
data
})
}
//日志删除
export function delLog(id) {
return request({
url: `/api/extend/WorkLog/${id}`,
method: 'DELETE'
})
}
import request from '@/utils/request'
// 获取列表表单配置JSON
export function getConfigData(modelId, type) {
return request({
url: `/api/visualdev/OnlineDev/${modelId}/Config?type=${type}`,
method: 'GET'
})
}
// 获取数据列表
export function getModelList(modelId, data, options) {
return request({
url: `/api/visualdev/OnlineDev/${modelId}/List`,
method: 'POST',
data,
options: {
load: false
}
})
}
// 添加数据
export function createModel(modelId, data) {
return request({
url: `/api/visualdev/OnlineDev/${modelId}`,
method: 'POST',
data
})
}
// 修改数据
export function updateModel(modelId, data) {
return request({
url: `/api/visualdev/OnlineDev/${modelId}/${data.id}`,
method: 'PUT',
data
})
}
// 获取数据信息
export function getModelInfo(modelId, id) {
return request({
url: `/api/visualdev/OnlineDev/${modelId}/${id}`,
method: 'GET'
})
}
// 删除数据
export function deteleModel(modelId, id) {
return request({
url: `/api/visualdev/OnlineDev/${modelId}/${id}`,
method: 'DELETE'
})
}
// 表单外链
export function getConfig(id) {
return request({
url: `/api/visualdev/OnlineDev/${id}/Config`,
method: 'GET'
})
}
import request from '@/utils/request'
// 获取列表表单配置JSON
export function getConfig(modelId, encryption) {
return request({
url: `/api/visualdev/ShortLink/${modelId}/Config?encryption=${encryption}`,
method: 'GET'
})
}
// 获取数据详情
export function getDataChange(modelId, id, encryption) {
return request({
url: `/api/visualdev/ShortLink/${modelId}/${id}/DataChange` + (encryption ? '?encryption=' +
encryption : ''),
method: 'GET'
})
}
export function createModel(modelId, data, encryption) {
return request({
url: `/api/visualdev/ShortLink/${modelId}?encryption=${encryption}`,
method: 'POST',
data
})
}
// 表单外链表单信息
export function getShortLink(id, encryption) {
return request({
url: `/api/visualdev/ShortLink/getConfig/${id}?encryption=${encryption}`,
method: 'GET'
})
}
//表单外链密码验证
export function checkPwd(data) {
return request({
url: `/api/visualdev/ShortLink/checkPwd`,
method: 'POST',
data
})
}
// 表单外链列表
export function listLink(id, data, encryption) {
return request({
url: `/api/visualdev/ShortLink/${id}/ListLink?encryption=${encryption}`,
method: 'POST',
data
})
}
This diff is collapsed.
import request from '@/utils/request'
// 获取审批常用语列表
export function commonWords(data) {
return request({
url: `/api/system/CommonWords`,
method: 'get',
data
})
}
// 获取审批常用语详情
export function getCommonWordsInfo(id) {
return request({
url: `/api/system/CommonWords/${id}`,
method: 'get'
})
}
// 删除审批常用语详情
export function deleteCommonWordsInfo(id) {
return request({
url: `/api/system/CommonWords/${id}`,
method: 'DELETE'
})
}
//获取所属应用
export function getSelector() {
return request({
url: `/api/system/CommonWords/Selector?type=App`,
method: 'get'
})
}
// 审批常用语新建
export function Create(data) {
return request({
url: '/api/system/CommonWords',
method: 'post',
data
})
}
// 审批常用语编辑
export function Update(data) {
return request({
url: `/api/system/CommonWords/${data.id}`,
method: 'put',
data
})
}
import request from '@/utils/request'
// 获取通知公告
export function getNotice(data) {
return request({
url: '/api/visualdev/Dashboard/Notice',
method: 'post',
data,
options: {
load: false
}
})
}
// 获取未读邮件
export function getEmail() {
return request({
url: '/api/visualdev/Dashboard/Email',
method: 'get',
options: {
load: false
}
})
}
// 获取待办事项
export function getFlowTodo() {
return request({
url: '/api/visualdev/Dashboard/FlowTodo',
method: 'get',
options: {
load: false
}
})
}
// 获取我的待办事项
export function getMyFlowTodo() {
return request({
url: '/api/visualdev/Dashboard/MyFlowTodo',
method: 'get',
options: {
load: false
}
})
}
\ No newline at end of file
import request from '@/utils/request'
// 获取IM对话列表
export function getIMReply() {
return request({
url: '/api/message/imreply',
options: {
load: true
}
})
}
//获取消息列表
export function getMessageList(data) {
return request({
url: '/api/message',
data,
options: {
load: false
}
})
}
//获取消息列表
export function getUnReadMsgNum(data) {
return request({
url: '/api/message/getUnReadMsgNum',
data,
options: {
load: false
}
})
}
// 全部已读
export function MessageAllRead(data) {
return request({
url: '/api/message/Actions/ReadAll',
method: 'POST',
data
})
}
//消息详情
export function getMessageDetail(id) {
return request({
url: `/api/message/ReadInfo/${id}`,
method: 'get'
})
}
// 判断是否有查看消息详情权限(消息通知用)
export function checkInfo(taskOperatorId) {
return request({
url: `/api/workflow/Engine/FlowBefore/${taskOperatorId}/Info`,
method: 'get'
})
}
// 删除会话列表
export function relocation(id) {
return request({
url: `/api/message/imreply/relocation/${id}`,
method: 'delete'
})
}
import request from '@/utils/request'
//门户列表
export function PortalList() {
return request({
url: `/api/visualdev/Portal/Selector?platform=App&type=1`,
method: 'get',
options: {
load: false
}
})
}
//更新门户
export function SetPortal(id) {
return request({
url: `/api/visualdev/Portal/${id}/Actions/SetDefault?platform=App`,
method: 'put',
options: {
load: false
}
})
}
//门户列表切换后列表
export function auth(id) {
return request({
url: `/api/visualdev/Portal/${id}/auth?platform=App`,
method: 'get',
options: {
load: false
}
})
}
//获取门户地图数据
export function geojson(code) {
return request({
url: `/api/system/atlas/geojson?code=${code}&hasChildren=true`,
method: 'get',
options: {
load: false
}
})
}
//获取省市区树
export function getAtlas() {
return request({
url: `/api/system/atlas`,
method: 'get',
options: {
load: false
}
})
}
// 获取发送配置列表列表
export const getMsgTemplate = data => {
return request({
url: '/api/message/SendMessageConfig/getSendConfigList',
method: 'GET',
data,
options: {
load: false
}
})
}
// 预览
export const getPreviewPortal = id => {
return request({
url: '/api/visualdev/Portal/' + id,
method: 'GET',
options: {
load: false
}
})
}
\ No newline at end of file
import request from '@/utils/request'
// 获取日程安排列表
export function List(data) {
return request({
url: '/api/system/Schedule/AppList',
method: 'get',
data,
options: {
load: false
}
})
}
// 新建日程安排
export function ScheduleCreate(data) {
return request({
url: '/api/system/Schedule',
method: 'post',
data,
options: {
load: false
}
})
}
// 删除日程安排
export function ScheduleDelete(id, type) {
return request({
url: `/api/system/Schedule/${id}/${type}`,
method: 'DELETE',
options: {
load: false
}
})
}
// 获取日程安排信息
export function ScheduleInfo(id) {
return request({
url: `/api/system/Schedule/${id}`,
method: 'get',
options: {
load: false
}
})
}
// 更新日程安排
export function ScheduleUpdate(data, type) {
return request({
url: `/api/system/Schedule/${data.id}/${type}`,
method: 'PUT',
data,
options: {
load: false
}
})
}
//查看日程详情
export function ScheduleDetail(groupId, id) {
return request({
url: `/api/system/Schedule/detail/?groupId=${groupId}&id=${id}`,
method: 'get',
options: {
load: false
}
})
}
import request from '@/utils/request'
// 通过id获取签章下拉框列表
export function getListByIds(data) {
return request({
url: '/api/system/Signature/ListByIds',
method: 'post',
data
})
}
\ No newline at end of file
import request from '@/utils/request'
// 获取流程委托列表
export function FlowDelegateList(data) {
return request({
url: `/api/workflow/Engine/FlowDelegate`,
method: 'get',
data
})
}
// 获取流程委托信息
export function FlowDelegateInfo(id) {
return request({
url: `/api/workflow/Engine/FlowDelegate/${id}`,
method: 'get'
})
}
// 删除流程委托
export function DeleteDelagate(id) {
return request({
url: `/api/workflow/Engine/FlowDelegate/${id}`,
method: 'DELETE'
})
}
// 新建流程委托
export function Create(data) {
return request({
url: `/api/workflow/Engine/FlowDelegate`,
method: 'post',
data
})
}
// 更新流程委托
export function Update(data) {
return request({
url: `/api/workflow/Engine/FlowDelegate/${data.id}`,
method: 'PUT',
data
})
}
// 获取我的委托发起流程
export function delegateGetflow(data) {
return request({
url: `/api/workflow/Engine/FlowDelegate/getflow`,
method: 'get',
data
})
}
// 获取一个流程的所有委托人
export function getUserListByFlowId(data) {
return request({
url: `/api/workflow/Engine/FlowDelegate/userList`,
method: 'get',
data
})
}
// 获取一个流程的所有委托人
export function entrustStop(id) {
return request({
url: `/api/workflow/Engine/FlowDelegate/Stop/${id}`,
method: 'put'
})
}
// 获取用户下拉框列表
export const getListByAuthorize = (organizeId, keyword) => {
return request({
url: `/api/permission/Users/GetListByAuthorize/${organizeId}`,
method: 'post',
data: {
keyword
}
})
}
\ No newline at end of file
import request from '@/utils/request'
// 获取待我审核
export function FlowBeforeList(category, data, options) {
return request({
url: `/api/workflow/Engine/FlowBefore/List/${category}`,
method: 'get',
data,
options: {
load: false
}
})
}
// 获取待我审批信息
export function FlowBeforeInfo(id, data) {
return request({
url: `/api/workflow/Engine/FlowBefore/${id}`,
method: 'get',
data
})
}
// 待我审核审核
export function Audit(id, data) {
return request({
url: `/api/workflow/Engine/FlowBefore/Audit/${id}`,
method: 'post',
data
})
}
// 待我审核退回
export function Reject(id, data) {
return request({
url: `/api/workflow/Engine/FlowBefore/Reject/${id}`,
method: 'post',
data
})
}
// 撤回审核
export function Recall(id, data) {
return request({
url: `/api/workflow/Engine/FlowBefore/Recall/${id}`,
method: 'post',
data
})
}
// 驳回审核
export function cancel(id, data) {
return request({
url: `/api/workflow/Engine/FlowBefore/Cancel/${id}`,
method: 'post',
data
})
}
// 待我审核转审
export function Transfer(id, data) {
return request({
url: `/api/workflow/Engine/FlowBefore/Transfer/${id}`,
method: 'post',
data
})
}
// 审批汇总
export function getRecordList(id, data) {
return request({
url: `/api/workflow/Engine/FlowBefore/RecordList/${id}`,
method: 'get',
data
})
}
// 待我审核保存草稿
export function SaveAudit(id, data) {
return request({
url: `/api/workflow/Engine/FlowBefore/SaveAudit/${id}`,
method: 'post',
data
})
}
// 判断是否有候选人
export function Candidates(id, data) {
return request({
url: `/api/workflow/Engine/FlowBefore/Candidates/${id}`,
method: 'post',
data
})
}
// 获取候选人列表(分页)
export function CandidateUser(id, data) {
return request({
url: `/api/workflow/Engine/FlowBefore/CandidateUser/${id}`,
method: 'post',
data
})
}
// 获取审批退回类型
export function RejectList(id) {
return request({
url: `/api/workflow/Engine/FlowBefore/RejectList/${id}`,
method: 'get'
})
}
// 加签
export function FreeApprover(id, data) {
return request({
url: `/api/workflow/Engine/FlowBefore/freeApprover/${id}`,
method: 'post',
data
})
}
// 返回多个子流程信息
export function SubFlowInfo(id) {
return request({
url: `/api/workflow/Engine/FlowBefore/SubFlowInfo/${id}`,
method: 'get'
})
}
// 获取流程实例相关人员(分页)
export function getTaskUserList(taskId, data) {
return request({
url: `/api/workflow/Engine/FlowBefore/TaskUserList/${taskId}`,
method: 'get',
data
})
}
\ No newline at end of file
import request from '@/utils/request'
// 获取流程引擎列表
export function FlowEngineList(data) {
return request({
url: `/api/workflow/Engine/flowTemplate`,
method: 'get',
data
})
}
// 获取流程引擎信息
export function FlowEngineInfo(id) {
return request({
url: `/api/workflow/Engine/flowTemplate/${id}`,
method: 'get'
})
}
// 获取多流程流程列表
export function FlowJsonList(id, type) {
return request({
url: `/api/workflow/Engine/flowTemplate/FlowJsonList/${id}`,
method: 'get',
data: {
type
}
})
}
//获取流程引擎分页
export function FlowEnginePageList(data) {
return request({
url: `/api/workflow/Engine/flowTemplate/PageListAll`,
method: 'get',
data,
options: {
load: false
}
})
}
//表单预览
export function flowForm(id) {
return request({
url: `/api/flowForm/Form/${id}`,
method: 'get'
})
}
// 列表ListAll
export function FlowEngineListAll() {
return request({
url: `/api/workflow/Engine/flowTemplate/ListAll`,
method: 'get',
options: {
load: false
}
})
}
// 流程引擎下拉框
export function FlowEngineSelector(type) {
return request({
url: `/api/workflow/Engine/flowTemplate/Selector`,
method: 'get',
data: {
type
}
})
}
// 获取流程评论列表
export function getCommentList(data) {
return request({
url: `/api/workflow/Engine/FlowComment`,
method: 'get',
data
})
}
// 新建流程评论
export function createComment(data) {
return request({
url: `/api/workflow/Engine/FlowComment`,
method: 'post',
data
})
}
// 删除流程评论
export function delComment(id) {
return request({
url: `/api/workflow/Engine/FlowComment/${id}`,
method: 'delete'
})
}
// 委托可选全部流程
export function FlowEngineAll(data) {
return request({
url: `/api/workflow/Engine/flowTemplate/getflowAll`,
method: 'get',
data
})
}
// 获取引擎id
export function getFlowIdByCode(enCode) {
return request({
url: `/api/workflow/Engine/flowTemplate/getFlowIdByCode/${enCode}`,
method: 'get'
})
}
// 获取待办未读
export function getFlowTodoCount(data) {
return request({
url: `/api/visualdev/Dashboard/FlowTodoCount`,
method: 'post',
data
})
}
// 委托 通过list<flowId>获取流程引擎列表
export function getFlowEngineListByIds(data) {
return request({
url: `/api/workflow/Engine/flowTemplate/getflowList`,
method: 'post',
data
})
}
\ No newline at end of file
import request from '@/utils/request'
// 获取流程发起列表
export function FlowLaunchList(data, options) {
return request({
url: `/api/workflow/Engine/FlowLaunch`,
method: 'get',
data,
options: {
load: false
}
})
}
// 删除流程发起
export function Delete(id) {
return request({
url: `/api/workflow/Engine/FlowLaunch/${id}`,
method: 'DELETE'
})
}
// 撤回流程发起
export function Revoke(id, data) {
return request({
url: `/api/workflow/Engine/FlowLaunch/${id}/Actions/Withdraw`,
method: 'PUT',
data
})
}
// 发起催办
export function Press(id) {
return request({
url: `/api/workflow/Engine/FlowLaunch/Press/${id}`,
method: 'post'
})
}
import request from '@/utils/request'
// 新建表单
export function Create(key, data) {
return request({
url: `/api/workflow/Engine/FlowTask`,
method: 'post',
data,
options: {
load: true
}
})
}
// 修改表单
export function Update(key, data) {
return request({
url: `/api/workflow/Engine/FlowTask/${data.id}`,
method: 'put',
data
})
}
//通过表单id获取流程id
export function getFormById(id) {
return request({
url: `/api/flowForm/Form/getFormById/${id}`,
method: 'get'
})
}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
.jnpf-tree-select-popup {
height: 100%;
.jnpf-tree-select-body {
height: 100%;
display: flex;
flex-direction: column;
.jnpf-tree-select-title {
display: flex;
align-items: center;
height: 100rpx;
padding: 0 16rpx !important;
.backIcon {
font-size: 40rpx;
color: #000;
}
.title {
flex: 1;
text-align: center;
padding-right: 40rpx;
font-size: 32rpx;
}
}
.jnpf-tree-select-search {
padding: 10px 12px;
}
.jnpf-tree-selected {
width: 100%;
padding: 0 44rpx 0;
.jnpf-tree-selected-head {
width: 100%;
height: 60rpx;
display: flex;
justify-content: space-between;
.clear-btn {
color: #2979ff;
}
}
.jnpf-tree-selected-box {
width: 100%;
display: flex;
justify-content: center;
border-bottom: 1rpx solid #c0c4cc;
.select-list {
max-height: 150rpx;
padding-top: 10rpx;
justify-content: flex-start;
flex-wrap: wrap;
.u-selectTag {
margin-bottom: 10rpx;
margin-left: 10rpx;
}
}
.jnpf-tree-selected-list{
display: flex;
justify-content: flex-start;
flex-wrap: wrap;
padding-top: 10rpx;
.u-selectTag {
width: 310rpx;
border: 1px solid #2194fa;
background-color: #e8f4fe;
line-height: 40rpx;
margin: 10rpx;
padding-left: 10rpx;
display: flex;
align-items: center;
border-radius: 8rpx;
&.u-selectTag-flow{
.jnpf-tree-selected-content{
width: 100%;
margin-left: 0;
}
}
.jnpf-tree-selected-content {
width: 74%;
margin-left: 10rpx;
.name-box{
color: #353535;
display: flex;
.name {
flex: 1;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.close {
width: 26px;
padding-right: 8rpx;
justify-content: flex-end;
color: #2194fa;
}
}
.organize {
color: #a0a1a1;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis
}
}
}
}
.user-select-list{
max-height: 240rpx;
display: flex;
justify-content: flex-start;
flex-wrap: wrap;
padding-top: 10rpx;
}
}
}
.jnpf-tree-select-tree {
flex: 1;
overflow: auto;
.list-box{
height: 100%;
.list-item{
display: flex;
width: 100%;
padding: 0 10px;
box-sizing: border-box;
.radio-label{
display: flex;
width: 100%;
}
.list-item-content{
flex: 1;
}
}
}
}
}
}
.nodata {
height: 100%;
margin: auto;
align-items: center;
justify-content: center;
color: #909399;
.noDataIcon {
width: 300rpx;
height: 210rpx;
}
}
.jnpf-date-range {
width: 100%;
display: flex;
.u-input__input {
text-align: center !important;
}
}
.jnpf-bottom-actions,
.jnpf-tree-select-actions {
background-color: #fff;
display: flex;
width: 100%;
height: 88rpx;
box-shadow: 0 -2rpx 8rpx #e1e5ec;
z-index: 999999;
flex-shrink: 0;
.buttom-btn {
width: 100%;
/* #ifndef MP */
height: 88rpx !important;
line-height: 88rpx !important;
border-radius: 0 !important;
&::after {
border: none !important;
}
/* #endif */
/* #ifdef MP */
.u-btn {
width: 100%;
height: 88rpx !important;
line-height: 88rpx !important;
border-radius: 0 !important;
&::after {
border: none !important;
}
}
/* #endif */
}
}
\ No newline at end of file
<template>
<u-alert-tips class="jnpf-alert" :type="type" :title="title" :show-icon="showIcon" :description="description"
:close-able="closable" :close-text="closeText" @close="show=false" :show="show" :title-style="titleStyle"
:desc-style="descStyle" />
</template>
<script>
export default {
name: 'jnpf-alert',
props: {
type: {
type: String,
default: 'success'
},
title: {
type: String,
default: '这是一个提示'
},
tagIcon: {
type: String,
default: 'icon-ym icon-ym-generator-alert'
},
showIcon: {
type: Boolean,
default: false
},
closable: {
type: Boolean,
default: false
},
description: {
type: String,
default: ''
},
closeText: {
type: String,
default: ''
}
},
data() {
return {
show: true,
titleStyle: {
'word-break': 'break-all',
'line-height': '34rpx'
},
descStyle: {
'word-break': 'break-all',
'line-height': '40rpx',
},
}
}
}
</script>
<style lang="scss">
.jnpf-alert {
width: 100%;
min-height: 72rpx;
}
</style>
\ No newline at end of file
This diff is collapsed.
<template>
<view class="jnpf-area-select">
<u-input input-align='right' type="select" :select-open="selectShow" v-model="innerValue"
:placeholder="placeholder" @click="openSelect" />
<Tree v-if="selectShow" v-model="selectShow" :multiple="multiple" :props="props" :selectedData="selectedData"
:level='level' :ids='modelValue' @confirm="handleConfirm" @close="handleClose()" />
</view>
</template>
<script>
import Tree from './Tree.vue';
import {
getProvinceSelectorInfoList
} from '@/api/common.js'
export default {
name: 'jnpf-area-select',
components: {
Tree
},
props: {
modelValue: {
default: ''
},
placeholder: {
type: String,
default: '请选择'
},
props: {
type: Object,
default: () => ({
label: 'fullName',
value: 'id',
children: 'children',
isLeaf: 'isLeaf'
})
},
disabled: {
type: Boolean,
default: false
},
multiple: {
type: Boolean,
default: false
},
level: {
type: Number,
default: 2
}
},
watch: {
modelValue: {
handler(val) {
this.setDefault(val)
},
immediate: true
}
},
data() {
return {
selectShow: false,
innerValue: '',
selectedData: []
}
},
methods: {
setDefault(id) {
this.innerValue = ''
this.selectedData = []
if (!Array.isArray(id) || id.length === 0) return
if (!this.multiple) id = [id]
getProvinceSelectorInfoList(id).then(res => {
const list = res.data
let txt = ''
for (let i = 0; i < list.length; i++) {
txt += (i ? ',' : '') + list[i].join('/')
this.selectedData.push(list[i].join('/'))
}
this.innerValue = txt
})
},
openSelect() {
if (this.disabled) return
this.selectShow = true
},
handleClose() {
this.selectShow = false
},
handleConfirm(e, selectId, selectData) {
this.selectedData = e;
let label = '';
let value = [];
this.defaultValue = value
this.innerValue = e.join()
if (!this.multiple) {
this.$emit('update:modelValue', selectId[0])
this.$emit('change', selectId[0], selectData)
} else {
this.$emit('update:modelValue', selectId)
this.$emit('change', selectId, selectData)
}
},
}
}
</script>
<style lang="scss" scoped>
.jnpf-area-select {
width: 100%;
}
</style>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
'use strict';
import CODE128 from './CODE128_AUTO.js'
import CODE128A from './CODE128A.js'
import CODE128B from './CODE128B.js'
import CODE128C from './CODE128C.js'
export default {
CODE128,
CODE128A,
CODE128B,
CODE128C,
};
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment