diff --git a/Learun.Framework.Ultimate V7/LearunApp-2.2.0/common/customform.js b/Learun.Framework.Ultimate V7/LearunApp-2.2.0/common/customform.js
index ad1cc2767..4171ab6fa 100644
--- a/Learun.Framework.Ultimate V7/LearunApp-2.2.0/common/customform.js
+++ b/Learun.Framework.Ultimate V7/LearunApp-2.2.0/common/customform.js
@@ -200,23 +200,51 @@ export default {
async convertToFormValue(item, val) {
switch (item.type) {
case 'upload':
- if (!val) { return [] }
- const uidList = val.split(',')
- const fileList = []
-
- for (const uid of uidList || []) {
- const fileInfo = await this.FETCH_FILEINFO(uid)
- if (!fileInfo) { continue }
-
- const fileType = fileInfo.F_FileType
- const fileSize = fileInfo.F_FileSize
- const fileName = fileInfo.F_FileName
-
- const path = this.API + 'learun/adms/annexes/wxdown?' + this.URL_QUERY(uid, true)
-
- fileList.push({ path, type: fileType, uid, size: fileSize, name:fileName })
- }
- return fileList
+ // if (!val) { return [] }
+ // const uidList = val.split(',')
+ // const fileList = []
+
+ // for (const uid of uidList || []) {
+ // const fileInfo = await this.FETCH_FILEINFO(uid)
+ // if (!fileInfo) { continue }
+
+ // const fileType = fileInfo.F_FileType
+ // const fileSize = fileInfo.F_FileSize
+ // const fileName = fileInfo.F_FileName
+
+ // const path = this.API + 'learun/adms/annexes/wxdown?' + this.URL_QUERY(uid, true)
+
+ // fileList.push({ path, type: fileType, uid, size: fileSize, name:fileName })
+ // }
+ // return fileList
+
+ if (!val) {
+ return []
+ }
+ const uidList = val;
+ const fileList = []
+ const wxlist = await this.FETCH_FILEList(uidList);
+ for (const wxfile of wxlist) {
+ const fileInfo = await this.FETCH_FILEINFO(wxfile.F_Id)
+ if (!fileInfo) {
+ continue
+ }
+
+ const fileType = fileInfo.F_FileType
+ const fileSize = fileInfo.F_FileSize
+ const fileName = fileInfo.F_FileName
+
+ const path = this.API + '/learun/adms/annexes/wxdown?' + this.URL_QUERY(wxfile.F_Id, true)
+ fileList.push({
+ path,
+ type: fileType,
+ uid:wxfile.F_Id,
+ folderId:wxfile.F_FolderId,
+ size: fileSize,
+ name:fileName
+ })
+ }
+ return fileList
case 'select':
case 'radio':
@@ -256,7 +284,7 @@ export default {
* upload: 依次上传文件,将返回的文件 ID 使用符号「,」逗号拼接成字符串
* 其他类型: 保留原值
*/
- async convertToPostData(item, val, formValue, scheme) {
+ async convertToPostData(item, val, formValue, scheme,guid) {
switch (item.type) {
case 'checkbox':
return val ? val.join(',') : ''
@@ -274,26 +302,43 @@ export default {
return val ? moment(val).format('YYYY-MM-DD HH:mm:ss') : ''
case 'upload':
- const valArray = val.map(item=>{
- return {
- uid:item.uid,
- path:item.path===undefined?item:item.path
- }
- })
- const uploadUid = []
- for (const { path, uid } of valArray) {
- if (uid) {
- uploadUid.push(uid)
- continue
- }
-
- const fileId = await this.HTTP_UPLOAD(path)
- if (fileId) {
- uploadUid.push(fileId)
- }
- }
-
- return uploadUid.join(',')
+ // const valArray = val.map(item=>{
+ // return {
+ // uid:item.uid,
+ // path:item.path===undefined?item:item.path
+ // }
+ // })
+ // const uploadUid = []
+ // for (const { path, uid } of valArray) {
+ // if (uid) {
+ // uploadUid.push(uid)
+ // continue
+ // }
+
+ // const fileId = await this.HTTP_UPLOAD(path)
+ // if (fileId) {
+ // uploadUid.push(fileId)
+ // }
+ // }
+
+ // return uploadUid.join(',')
+
+
+ var uploadUid = '';
+
+ for (const item of val) {
+ if (item.folderId) {
+ uploadUid = item.folderId
+ continue
+ }
+
+ const fileId = await this.HTTP_UPLOAD(item.path || item, undefined, guid || '')
+ if (fileId) {
+ uploadUid = fileId;
+ }
+ }
+
+ return uploadUid;
default:
return val || ''
diff --git a/Learun.Framework.Ultimate V7/LearunApp-2.2.0/components/learun-app/upload-file.vue b/Learun.Framework.Ultimate V7/LearunApp-2.2.0/components/learun-app/upload-file.vue
index aefbdc5f5..80c1465b9 100644
--- a/Learun.Framework.Ultimate V7/LearunApp-2.2.0/components/learun-app/upload-file.vue
+++ b/Learun.Framework.Ultimate V7/LearunApp-2.2.0/components/learun-app/upload-file.vue
@@ -26,7 +26,7 @@
-
+
@@ -75,7 +75,7 @@ export default {
return true
},
- async delFile(index) {
+ async delFile(index,fileId) {
if (!(await this.CONFIRM('删除文件', '确定要删除该文件吗?', true))) {
return
}
@@ -84,6 +84,8 @@ export default {
this.$emit('input', newList)
this.$emit('change')
this.$emit('del')
+ //物理删除
+ this.DELETE_FILE(fileId);
},
chooseFile() {
diff --git a/Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/nworkflow/myflow/single.vue b/Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/nworkflow/myflow/single.vue
index b7a87cb85..ae15d4ac2 100644
--- a/Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/nworkflow/myflow/single.vue
+++ b/Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/nworkflow/myflow/single.vue
@@ -119,6 +119,9 @@ export default {
}
}
//2022-02-14修改end
+
+ const fetchFolderkeyData=await this.fetchFolderkeyData(this.currentNode , this.processId);
+ uni.setStorageSync('guids',JSON.stringify(fetchFolderkeyData));
// 处理移动端本地表单(也就是系统表单)的情况,直接跳转过去
//const appSysPage = wfForms.find(t => t.appurl)
diff --git a/Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/nworkflow/releasetask/single.vue b/Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/nworkflow/releasetask/single.vue
index c214288b8..83c8f34be 100644
--- a/Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/nworkflow/releasetask/single.vue
+++ b/Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/nworkflow/releasetask/single.vue
@@ -110,6 +110,10 @@ export default {
this.needTitle = this.type !== 'again' && Number(currentNode.isTitle) === 1
const formData = await this.fetchFormData(currentNode, processId)
const schemeData = await this.fetchSchemeData(currentNode)
+
+ const fetchFolderkeyData=await this.fetchFolderkeyData(currentNode, processId);
+ uni.setStorageSync('guids',JSON.stringify(fetchFolderkeyData));
+
const { formValue, scheme, rel } = await this.getCustomForm({
schemeData,
processId,
diff --git a/Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/nworkflow/workflow.js b/Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/nworkflow/workflow.js
index 791db9d71..c9496ebe1 100644
--- a/Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/nworkflow/workflow.js
+++ b/Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/nworkflow/workflow.js
@@ -211,7 +211,13 @@ export default {
return { scheme, formValue, rel }
},
-
+ newguid() {
+ return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
+ var r = Math.random() * 16 | 0,
+ v = c == 'x' ? r : (r & 0x3 | 0x8);
+ return v.toString(16);
+ });
+ },
/**
* 获取最终需要 POST 的数据
* 参数:formValue, scheme
@@ -220,37 +226,51 @@ export default {
* 遍历 formValue,将其中的表单值依次使用 convertToPostData 这个方法转化为提交值
*/
async getPostData(originFormValue, scheme) {
- console.log(originFormValue, scheme)
- const formValue = this.COPY(originFormValue)
-
- // 依次按照 scheme 项目遍历
- for (const item of scheme) {
- if (item.field) {
- // 不是表格的情况
- const path = item.__valuePath__
- const val = get(formValue, path)
- const result = await this.convertToPostData(item, val, originFormValue, scheme)
- set(formValue, path, result)
-
- } else if (item.table && item.fieldsData) {
- // 是表格的情况
- const tableValue = get(formValue, item.__valuePath__, [])
- for (let valueIndex = 0; valueIndex < tableValue.length; ++valueIndex) {
- for (const schemeItem of item.fieldsData) {
- const path = `${item.__valuePath__}.${valueIndex}.${schemeItem.field}`
- const val = get(formValue, path)
- const result = await this.convertToPostData(schemeItem, val, originFormValue, scheme)
- set(formValue, path, result)
- }
- }
- }
- }
-
- formValue.formreq.forEach(t => { t.formData = JSON.stringify(t.formData) })
- formValue.formreq = JSON.stringify(formValue.formreq)
-
- return formValue
- },
+ const formValue = this.COPY(originFormValue)
+ // 依次按照 scheme 项目遍历
+ for (const item of scheme) {
+ if (item.field) {
+ // 不是表格的情况
+ const path = item.__valuePath__
+ const val = get(formValue, path)
+ var guid = undefined
+ if (item.type == 'upload') {
+ // 先生成一个guid
+ guid = this.newguid();
+ // 取出当前列对应的labelId
+ var labeId = item.id
+ // 从缓存取出当前审批流程所有的guid
+ var guids = JSON.parse(uni.getStorageSync('guids'))
+ if (guids&&JSON.stringify(guids)!=='{}'&&guids[labeId]) {
+ guid = guids[labeId]
+ }
+ }
+ const result = await this.convertToPostData(item, val, originFormValue, scheme, guid)
+ set(formValue, path, result)
+
+ } else if (item.table && item.fieldsData) {
+ // 是表格的情况
+ const tableValue = get(formValue, item.__valuePath__, [])
+ for (let valueIndex = 0; valueIndex < tableValue.length; ++valueIndex) {
+ for (const schemeItem of item.fieldsData) {
+ const path = `${item.__valuePath__}.${valueIndex}.${schemeItem.field}`
+ const val = get(formValue, path)
+
+ const result = await this.convertToPostData(schemeItem, val, originFormValue, scheme,
+ guid)
+ set(formValue, path, result)
+ }
+ }
+ }
+ }
+
+ formValue.formreq.forEach(t => {
+ t.formData = JSON.stringify(t.formData)
+ })
+ formValue.formreq = JSON.stringify(formValue.formreq)
+
+ return formValue
+ },
/**
* 获取流程信息
@@ -325,6 +345,23 @@ export default {
const formData = await this.HTTP_GET('learun/adms/form/data', reqData)
return formData || {}
- }
+ },
+ async fetchFolderkeyData(currentNode, keyValue) {
+ const {
+ wfForms
+ } = currentNode
+
+ const reqData = wfForms
+ .filter(t => t.formId)
+ .map(t => ({
+ id: t.formId,
+ ver: '',
+ schemeInfoId: t.formId,
+ processIdName: t.field,
+ keyValue
+ }))
+ const folderkeyData = await this.HTTP_GET('learun/adms/form/folderkey', reqData)
+ return folderkeyData || {}
+ },
}
}