Browse Source

附件组件更换位置

zhaoxiaohai 3 years ago
parent
commit
3dba6fea5d

+ 1 - 0
app.json

@@ -116,6 +116,7 @@
         }
         }
     },
     },
     "usingComponents": {
     "usingComponents": {
+        "Yl_Files": "/components/Yl_Files/index",
         "Yl_Tabbar": "/components/Yl_Tabbar/index",
         "Yl_Tabbar": "/components/Yl_Tabbar/index",
         "Yl-tags": "/pages/tags/modules/Yl-tags/index",
         "Yl-tags": "/pages/tags/modules/Yl-tags/index",
         "Yl-group": "/pages/group/modules/Yl-group/index",
         "Yl-group": "/pages/group/modules/Yl-group/index",

+ 127 - 0
components/Yl_Files/index.js

@@ -0,0 +1,127 @@
+const _Http = getApp().globalData.http;
+import {
+    fileList
+} from "../../utils/matchingFeilType";
+Component({
+    properties: {
+        files: {
+            type: Object,
+            value: {
+                images: [],
+                viewImages: [],
+                videos: [],
+                viewVideos: [],
+                files: []
+            },
+        },
+        delete: Boolean
+    },
+    methods: {
+        /* 预览媒体 */
+        viewMedias(e) {
+            const {
+                index,
+                type
+            } = e.currentTarget.dataset;
+            wx.previewMedia({
+                current: index,
+                sources: type == 'image' ? this.data.files.viewImages : this.data.files.viewVideos,
+            })
+        },
+        /* 预览文档 */
+        viewFlies(e) {
+            const {
+                item
+            } = e.currentTarget.dataset;
+            wx.showLoading({
+                title: '加载中...',
+            })
+            wx.downloadFile({
+                url: item.url,
+                complete({
+                    statusCode,
+                    tempFilePath
+                }) {
+                    if (statusCode != 200) return;
+                    wx.openDocument({
+                        filePath: tempFilePath,
+                        fileType: item.postfix,
+                        showMenu: true,
+                        complete({
+                            errMsg
+                        }) {
+                            wx.hideLoading();
+                            if (errMsg != "openDocument:ok") wx.showToast({
+                                title: '打开失败',
+                                icon: "none"
+                            })
+                        }
+                    })
+                }
+            })
+        },
+        /* 删除文件 */
+        handleDeleteFile(e) {
+            let item = e.currentTarget.dataset.item || e.currentTarget.dataset.item;
+            _Http.basic({
+                "classname": "system.attachment.Attachment",
+                "method": "deleteFileLink",
+                "content": {
+                    "linksids": [item.linksid]
+                }
+            }).then(res => {
+                if (res.msg != '成功') return wx.showToast({
+                    title: res.data,
+                    icon: "none"
+                });
+                let files = this.data.files;
+                switch (item.fileType) {
+                    case "image":
+                        files.images = files.images.filter(v => v.url != item.url);
+                        files.viewImages = files.viewImages.filter(v => v.url != item.url);
+                        break;
+                    case "video":
+                        files.videos = files.videos.filter(v => v.url != item.url);
+                        files.viewVideos = files.viewVideos.filter(v => v.url != item.url);
+                        break;
+                    default:
+                        files.files = files.files.filter(v => v.attachmentid != item.attachmentid);
+                        break;
+                };
+                this.setData({
+                    files
+                });
+            })
+        },
+        /* 处理附件 */
+        handleFiles(arr) {
+            let files = this.data.files,
+                list = fileList(arr);
+            list.forEach(v => {
+                switch (v.fileType) {
+                    case "video":
+                        files.videos.push(v)
+                        files.viewVideos.push({
+                            url: v.url,
+                            type: "video",
+                            poster: v.subfiles[0].url
+                        })
+                        break;
+                    case "image":
+                        files.images.push(v)
+                        files.viewImages.push({
+                            url: v.url,
+                            type: "image"
+                        })
+                        break;
+                    default:
+                        files.files.push(v)
+                        break;
+                }
+            });
+            this.setData({
+                files
+            })
+        }
+    }
+})

+ 0 - 0
packageA/setclient/modules/trace/files/index.json → components/Yl_Files/index.json


+ 0 - 0
packageA/setclient/modules/trace/files/index.scss → components/Yl_Files/index.scss


+ 0 - 0
packageA/setclient/modules/trace/files/index.wxml → components/Yl_Files/index.wxml


+ 3 - 71
packageA/project/modules/task/add.js

@@ -1,5 +1,4 @@
-    const _Http = getApp().globalData.http,
-        MFT = require("../../../../utils/matchingFeilType");
+    const _Http = getApp().globalData.http;
     Page({
     Page({
         data: {
         data: {
             detail: null,
             detail: null,
@@ -18,49 +17,11 @@
                 detail: JSON.parse(options.data),
                 detail: JSON.parse(options.data),
                 isFollow: options.isFollow == 'true'
                 isFollow: options.isFollow == 'true'
             });
             });
-            if (this.data.detail.attinfos.length != 0) this.handleFiles(MFT.fileList(this.data.detail.attinfos))
+            if (this.data.detail.attinfos.length != 0) this.selectComponent("#Yl_files").handleFiles(res.data)
             if (this.data.detail.notes != '' && this.data.isFollow) this.setData({
             if (this.data.detail.notes != '' && this.data.isFollow) this.setData({
                 isSubmit: false
                 isSubmit: false
             })
             })
         },
         },
-        /* 删除文件 */
-        deleteFile({
-            detail
-        }) {
-            let e = detail,
-                item = e.detail.attachmentid ? e.detail : e.currentTarget.dataset.item;
-            _Http.basic({
-                "classname": "system.attachment.Attachment",
-                "method": "deleteFileLink",
-                "content": {
-                    "linksids": [item.linksid]
-                }
-            }).then(res => {
-                if (res.msg != '成功') return wx.showToast({
-                    title: res.data,
-                    icon: "none"
-                });
-                let files = this.data.files;
-                switch (item.fileType) {
-                    case "image":
-                        files.images = files.images.filter(v => v.url != item.url);
-                        files.viewImages = files.viewImages.filter(v => v.url != item.url);
-                        break;
-                    case "video":
-                        files.videos = files.videos.filter(v => v.url != item.url);
-                        files.viewVideos = files.viewVideos.filter(v => v.url != item.url);
-                        break;
-                    default:
-                        files.files = files.files.filter(v => v.attachmentid != item.attachmentid);
-                        break;
-                };
-                this.setData({
-                    files,
-                    "detail.attinfos": this.data.detail.attinfos.filter(v => v.url != item.url)
-                });
-                this.changeFile();
-            })
-        },
         //文本域输入
         //文本域输入
         onInput(e) {
         onInput(e) {
             this.setData({
             this.setData({
@@ -86,40 +47,11 @@
                     title: res.data,
                     title: res.data,
                     icon: "none"
                     icon: "none"
                 })
                 })
-                this.handleFiles(MFT.fileList(res.data));
+                this.selectComponent("#Yl_files").handleFiles(res.data)
                 this.data.detail.attinfos.push(res.data[0])
                 this.data.detail.attinfos.push(res.data[0])
                 this.changeFile();
                 this.changeFile();
             })
             })
         },
         },
-        /* 处理附件 */
-        handleFiles(list) {
-            let files = this.data.files;
-            list.forEach(v => {
-                switch (v.fileType) {
-                    case "video":
-                        files.videos.push(v)
-                        files.viewVideos.push({
-                            url: v.url,
-                            type: "video",
-                            poster: v.subfiles[0].url
-                        })
-                        break;
-                    case "image":
-                        files.images.push(v)
-                        files.viewImages.push({
-                            url: v.url,
-                            type: "image"
-                        })
-                        break;
-                    default:
-                        files.files.push(v)
-                        break;
-                }
-            });
-            this.setData({
-                files
-            })
-        },
         /* 修改源文件附件 */
         /* 修改源文件附件 */
         changeFile() {
         changeFile() {
             let pages = getCurrentPages(),
             let pages = getCurrentPages(),

+ 1 - 2
packageA/project/modules/task/add.json

@@ -1,7 +1,6 @@
 {
 {
     "usingComponents": {
     "usingComponents": {
-        "My_upload": "/components/My_upload/index",
-        "Files": "../../../setclient/modules/trace/files/index"
+        "My_upload": "/components/My_upload/index"
     },
     },
     "navigationBarTitleText": "任务阶段"
     "navigationBarTitleText": "任务阶段"
 }
 }

+ 1 - 1
packageA/project/modules/task/add.wxml

@@ -31,7 +31,7 @@
         <textarea class="textarea" placeholder='请填写' value="{{detail.notes}}" bindinput='onInput' />
         <textarea class="textarea" placeholder='请填写' value="{{detail.notes}}" bindinput='onInput' />
 
 
     </view>
     </view>
-    <Files files='{{files}}' binddeleteFile='deleteFile' />
+    <Yl_Files files='{{files}}' id='Yl_files'/>
 </view>
 </view>
 
 
 <view style="height: 130rpx;" />
 <view style="height: 130rpx;" />

+ 7 - 76
packageA/setclient/modules/trace/add/index.js

@@ -1,18 +1,10 @@
-const _Http = getApp().globalData.http,
-    MFT = require("../../../../../utils/matchingFeilType");
+const _Http = getApp().globalData.http;
 Page({
 Page({
     data: {
     data: {
         isNew: false, //是否为新增
         isNew: false, //是否为新增
         ownerid: null,
         ownerid: null,
         ownertable: null,
         ownertable: null,
         sys_datafollowupid: 0, //数据ID
         sys_datafollowupid: 0, //数据ID
-        files: {
-            images: [],
-            viewImages: [],
-            videos: [],
-            viewVideos: [],
-            files: []
-        },
         type: "",
         type: "",
         content: "",
         content: "",
         user: {}, //联系人
         user: {}, //联系人
@@ -51,7 +43,7 @@ Page({
                         wx.navigateBack()
                         wx.navigateBack()
                     }, 300)
                     }, 300)
                 };
                 };
-                this.handleFiles(MFT.fileList(res.data.attinfos));
+                this.selectComponent("#Yl_files").handleFiles(res.data.attinfos)
                 this.setData({
                 this.setData({
                     type: res.data.type,
                     type: res.data.type,
                     content: res.data.content
                     content: res.data.content
@@ -61,42 +53,6 @@ Page({
             this.initTemplate()
             this.initTemplate()
         }
         }
     },
     },
-    /* 删除文件 */
-    deleteFile({
-        detail
-    }) {
-        let e = detail,
-            item = e.detail.attachmentid ? e.detail : e.currentTarget.dataset.item;
-        _Http.basic({
-            "classname": "system.attachment.Attachment",
-            "method": "deleteFileLink",
-            "content": {
-                "linksids": [item.linksid]
-            }
-        }).then(res => {
-            if (res.msg != '成功') return wx.showToast({
-                title: res.data,
-                icon: "none"
-            });
-            let files = this.data.files;
-            switch (item.fileType) {
-                case "image":
-                    files.images = files.images.filter(v => v.url != item.url);
-                    files.viewImages = files.viewImages.filter(v => v.url != item.url);
-                    break;
-                case "video":
-                    files.videos = files.videos.filter(v => v.url != item.url);
-                    files.viewVideos = files.viewVideos.filter(v => v.url != item.url);
-                    break;
-                default:
-                    files.files = files.files.filter(v => v.attachmentid != item.attachmentid);
-                    break;
-            };
-            this.setData({
-                files
-            });
-        })
-    },
     /* 绑定媒体 */
     /* 绑定媒体 */
     insertImgEdit({
     insertImgEdit({
         detail
         detail
@@ -112,36 +68,11 @@ Page({
             }
             }
         }).then(res => {
         }).then(res => {
             console.log('跟进记录绑定附件', res)
             console.log('跟进记录绑定附件', res)
-            this.handleFiles(MFT.fileList(res.data));
-        })
-    },
-    /* 处理附件 */
-    handleFiles(list) {
-        let files = this.data.files;
-        list.forEach(v => {
-            switch (v.fileType) {
-                case "video":
-                    files.videos.push(v)
-                    files.viewVideos.push({
-                        url: v.url,
-                        type: "video",
-                        poster: v.subfiles[0].url
-                    })
-                    break;
-                case "image":
-                    files.images.push(v)
-                    files.viewImages.push({
-                        url: v.url,
-                        type: "image"
-                    })
-                    break;
-                default:
-                    files.files.push(v)
-                    break;
-            }
-        });
-        this.setData({
-            files
+            if (res.msg != '成功') return wx.showToast({
+                title: res.msg,
+                icon: "none"
+            })
+            this.selectComponent("#Yl_files").handleFiles(res.data)
         })
         })
     },
     },
     /* 初始化模板 */
     /* 初始化模板 */

+ 1 - 2
packageA/setclient/modules/trace/add/index.json

@@ -1,7 +1,6 @@
 {
 {
     "usingComponents": {
     "usingComponents": {
-        "My_upload": "/components/My_upload/index",
-        "Files": "../files/index"
+        "My_upload": "/components/My_upload/index"
     },
     },
     "navigationBarTitleText": "跟进"
     "navigationBarTitleText": "跟进"
 }
 }

+ 1 - 1
packageA/setclient/modules/trace/add/index.wxml

@@ -23,7 +23,7 @@
         </view>
         </view>
         <textarea class="textarea" placeholder='请填写' value="{{content}}" bindinput='onInput' />
         <textarea class="textarea" placeholder='请填写' value="{{content}}" bindinput='onInput' />
     </view>
     </view>
-    <Files files='{{files}}' binddeleteFile='deleteFile' />
+    <Yl_Files delete id="Yl_files" />
 </view>
 </view>
 <van-action-sheet show="{{ show }}" actions="{{ actions }}" bind:cancel='onCancel' bind:select='onSelect' cancel-text="取消" />
 <van-action-sheet show="{{ show }}" actions="{{ actions }}" bind:cancel='onCancel' bind:select='onSelect' cancel-text="取消" />
 <view style="height: 130rpx;" />
 <view style="height: 130rpx;" />

+ 2 - 40
packageA/setclient/modules/trace/detail/index.js

@@ -1,5 +1,4 @@
-const _Http = getApp().globalData.http,
-    MFT = require("../../../../../utils/matchingFeilType");
+const _Http = getApp().globalData.http;
 
 
 Page({
 Page({
     data: {
     data: {
@@ -7,13 +6,6 @@ Page({
         ownerid: null,
         ownerid: null,
         sys_datafollowupid: null,
         sys_datafollowupid: null,
         detail: {},
         detail: {},
-        files: {
-            images: [],
-            viewImages: [],
-            videos: [],
-            viewVideos: [],
-            files: []
-        },
         tabbarList: [{
         tabbarList: [{
             icon: "icon-bianji",
             icon: "icon-bianji",
             label: "编辑"
             label: "编辑"
@@ -42,7 +34,7 @@ Page({
                 title: res.data,
                 title: res.data,
                 icon: "none"
                 icon: "none"
             })
             })
-            this.handleFiles(MFT.fileList(res.data.attinfos));
+            this.selectComponent("#Yl_files").handleFiles(res.data.attinfos)
             this.setData({
             this.setData({
                 detail: res.data,
                 detail: res.data,
                 briefs: [{
                 briefs: [{
@@ -55,36 +47,6 @@ Page({
             })
             })
         })
         })
     },
     },
-
-    /* 处理附件 */
-    handleFiles(list) {
-        let files = this.data.files;
-        list.forEach(v => {
-            switch (v.fileType) {
-                case "video":
-                    files.videos.push(v)
-                    files.viewVideos.push({
-                        url: v.url,
-                        type: "video",
-                        poster: v.subfiles[0].url
-                    })
-                    break;
-                case "image":
-                    files.images.push(v)
-                    files.viewImages.push({
-                        url: v.url,
-                        type: "image"
-                    })
-                    break;
-                default:
-                    files.files.push(v)
-                    break;
-            }
-        });
-        this.setData({
-            files
-        })
-    },
     /* tab 切换回调 */
     /* tab 切换回调 */
     tabbarOnClick({
     tabbarOnClick({
         detail
         detail

+ 1 - 3
packageA/setclient/modules/trace/detail/index.json

@@ -1,6 +1,4 @@
 {
 {
-    "usingComponents": {
-        "Files": "../files/index"
-    },
+    "usingComponents": {},
     "navigationBarTitleText": "跟进动态详情"
     "navigationBarTitleText": "跟进动态详情"
 }
 }

+ 1 - 1
packageA/setclient/modules/trace/detail/index.wxml

@@ -13,6 +13,6 @@
 </view>
 </view>
 <view style="background-color: #fff;">
 <view style="background-color: #fff;">
     <Yl_Detail list="{{briefs}}" />
     <Yl_Detail list="{{briefs}}" />
-    <Files files='{{files}}' delete='{{false}}' />
+    <Yl_Files id="Yl_files" />
 </view>
 </view>
 <Yl_Tabbar list='{{tabbarList}}' bind:callback="tabbarOnClick" />
 <Yl_Tabbar list='{{tabbarList}}' bind:callback="tabbarOnClick" />

+ 0 - 58
packageA/setclient/modules/trace/files/index.js

@@ -1,58 +0,0 @@
-Component({
-    properties: {
-        files: Object,
-        deleteFile: Function,
-        delete: {
-            type: Boolean,
-            value: true
-        }
-    },
-    methods: {
-        /* 预览媒体 */
-        viewMedias(e) {
-            const {
-                index,
-                type
-            } = e.currentTarget.dataset;
-            wx.previewMedia({
-                current: index,
-                sources: type == 'image' ? this.data.files.viewImages : this.data.files.viewVideos,
-            })
-        },
-        /* 预览文档 */
-        viewFlies(e) {
-            const {
-                item
-            } = e.currentTarget.dataset;
-            wx.showLoading({
-                title: '加载中...',
-            })
-            wx.downloadFile({
-                url: item.url,
-                complete({
-                    statusCode,
-                    tempFilePath
-                }) {
-                    if (statusCode != 200) return;
-                    wx.openDocument({
-                        filePath: tempFilePath,
-                        fileType: item.postfix,
-                        showMenu: true,
-                        complete({
-                            errMsg
-                        }) {
-                            wx.hideLoading();
-                            if (errMsg != "openDocument:ok") wx.showToast({
-                                title: '打开失败',
-                                icon: "none"
-                            })
-                        }
-                    })
-                }
-            })
-        },
-        handleDeleteFile(e) {
-            this.triggerEvent("deleteFile", e)
-        }
-    }
-})