Просмотр исходного кода

修复用户角色信息异常时导致的列表数据展示bug

cfort 2 лет назад
Родитель
Сommit
5e15206ef7

+ 2 - 0
.eslintrc.js

@@ -165,7 +165,9 @@ module.exports = {
         }],
         'no-unreachable': 2,
         'no-unsafe-finally': 2,
+        // 校验存在定义而未使用的组件
         'vue/no-unused-components': 'off',
+        // 校验存在定义而未使用的变量
         'no-unused-vars': 'off',
         'no-useless-call': 2,
         'no-useless-computed-key': 2,

+ 0 - 1
src/business/platform/data/components/search-form/index.vue

@@ -374,7 +374,6 @@ export default {
                     parameters: []
                 }
             }
-            console.log('375 params', params)
             Object.keys(params).forEach(v => {
                 if (v && v.indexOf(datePrefix) === -1) {
                     const val = format[v] ? format[v](params[v], v) : params[v]

+ 0 - 3
src/business/platform/data/templaterender/templates/list.vue

@@ -1506,7 +1506,6 @@ export default {
             // 控件类型
             const fieldType = field['field_type']
             const fieldOptions = field['field_options']
-            console.log('1507 fieldType', fieldType)
             if (fieldType === 'hidden') {
                 searchColumn = Object.assign(searchColumn, {
                     prop: `Q^${field.name}^${querySuffix}`,
@@ -1555,7 +1554,6 @@ export default {
                     fieldType: dateDealFmt.dateType + 'range',
                     field_options: fieldOptions
                 })
-                console.log('1556 searchColumn', searchColumn)
             } else if (fieldType === 'dictionary') {
                 const prop = `Q^${field.name}^SL`
                 searchColumn = Object.assign(searchColumn, {
@@ -1888,7 +1886,6 @@ export default {
         },
         // 数据模板打开数据模板时候,被打开的数据模板弹框关闭逻辑
         handleRenderDialogClose (visible, previousDataTemplate) {
-            console.log('1889 previousDataTemplate', previousDataTemplate)
             this.dataTemplate = previousDataTemplate
             this.templateDialogVisible = visible
             this.initJTemplate()

+ 507 - 507
src/business/platform/file/attachment/selector.vue

@@ -41,577 +41,577 @@
             />
         </div>
 
-        <div class="divShow" v-if="showFile">
+        <div v-if="showFile" class="divShow">
             <fView :option-file="optionFile" @updateFile="updateFile" />
         </div>
     </div>
 </template>
 <script>
-    import { get, transfer, uploadFile } from '@/api/platform/file/attachment'
-    import { downloadFile } from '@/business/platform/file/utils'
-    import { remoteRequest, remoteTransRequest } from '@/utils/remote'
-    import IbpsFileAttachmentSelector from './index'
-    import IbpsUploaderSelectorDialog from '@/business/platform/file/uploader'
-    import FilePreview from '@/business/platform/file/file-preview'
-    import { supportFileTypes } from '@/components/ibps-file-viewer/constants'
-    import { TRANSFER_DATA } from '@/constant'
-    import fView from './editFile/fView.vue'
-    import { SYSTEM_URL, BASE_API } from '@/api/baseUrl'
+import { get, transfer, uploadFile } from '@/api/platform/file/attachment'
+import { downloadFile } from '@/business/platform/file/utils'
+import { remoteRequest, remoteTransRequest } from '@/utils/remote'
+import IbpsFileAttachmentSelector from './index'
+import IbpsUploaderSelectorDialog from '@/business/platform/file/uploader'
+import FilePreview from '@/business/platform/file/file-preview'
+import { supportFileTypes } from '@/components/ibps-file-viewer/constants'
+import { TRANSFER_DATA } from '@/constant'
+import fView from './editFile/fView.vue'
+import { SYSTEM_URL, BASE_API } from '@/api/baseUrl'
 
-    export default {
-        components: {
-            IbpsFileAttachmentSelector,
-            IbpsUploaderSelectorDialog,
-            FilePreview,
-            fView
-        },
-        inject: {
-            elForm: {
-                default: ''
-            },
-            elFormItem: {
-                default: ''
+export default {
+    components: {
+        IbpsFileAttachmentSelector,
+        IbpsUploaderSelectorDialog,
+        FilePreview,
+        fView
+    },
+    inject: {
+        elForm: {
+            default: ''
+        },
+        elFormItem: {
+            default: ''
+        }
+    },
+    props: {
+        value: {
+            type: [String, Number, Array, Object]
+        },
+        mediaType: String,
+        media: String,
+        store: {
+            // 存储类型,json: json字符串,id: 只存储id,array: 存储数组数据,arrayId: 字符串类型。
+            type: String,
+            default: 'id',
+            validator: function (value) {
+                return (['json', 'id', 'array', 'arrayId', 'bind'].indexOf(value) !== -1)
             }
         },
-        props: {
-            value: {
-                type: [String, Number, Array, Object]
-            },
-            mediaType: String,
-            media: String,
-            store: {
-                // 存储类型,json: json字符串,id: 只存储id,array: 存储数组数据,arrayId: 字符串类型。
-                type: String,
-                default: 'id',
-                validator: function (value) {
-                    return (['json', 'id', 'array', 'arrayId', 'bind'].indexOf(value) !== -1)
-                }
-            },
-            storeSeparator: {
-                // 存储值分割符,对应[多选]有效,对于设置字符串类型的分隔符
-                type: String,
-                default: ','
-            },
-            placeholder: {
-                // 输入框占位文本
-                type: String,
-                default: '请选择附件'
-            },
-            multiple: {
-                // 是否多选
-                type: Boolean,
-                default: false
-            },
-            limit: {
-                // 最大允许上传个数
-                type: Number
-            },
-            // 类型,
-            accept: String,
-            fileExt: {
-                type: Array,
-                default: () => []
-            },
-            disabled: {
-                // 禁用
-                type: Boolean,
-                default: false
-            },
-            readonly: {
-                // 只读
-                type: Boolean,
-                default: false
-            },
-            operation_status: {
-                //编辑
-                type: String,
-                default: 'none'
-            },
-            download: {
-                // 允许下载
-                type: Boolean,
-                default: true
-            },
-            preview: {
-                // 允许预览
-                type: Boolean,
-                default: true
-            },
-            fileSize: {
-                // 上传尺寸
-                type: Number
-            },
-            labelKey: {
-                type: String,
-                default: 'fileName'
-            },
-            valueKey: {
-                type: String,
-                default: 'id'
-            },
-            uploadType: {
-                // 上传方式 ( default:直接打开上传,attachment:ibps上传附件打开上传 )
-                type: String,
-                default: 'attachment'
-            },
-            showExtName: {
-                type: Boolean,
-                default: true
+        storeSeparator: {
+            // 存储值分割符,对应[多选]有效,对于设置字符串类型的分隔符
+            type: String,
+            default: ','
+        },
+        placeholder: {
+            // 输入框占位文本
+            type: String,
+            default: '请选择附件'
+        },
+        multiple: {
+            // 是否多选
+            type: Boolean,
+            default: false
+        },
+        limit: {
+            // 最大允许上传个数
+            type: Number
+        },
+        // 类型,
+        accept: String,
+        fileExt: {
+            type: Array,
+            default: () => []
+        },
+        disabled: {
+            // 禁用
+            type: Boolean,
+            default: false
+        },
+        readonly: {
+            // 只读
+            type: Boolean,
+            default: false
+        },
+        operation_status: {
+            // 编辑
+            type: String,
+            default: 'none'
+        },
+        download: {
+            // 允许下载
+            type: Boolean,
+            default: true
+        },
+        preview: {
+            // 允许预览
+            type: Boolean,
+            default: true
+        },
+        fileSize: {
+            // 上传尺寸
+            type: Number
+        },
+        labelKey: {
+            type: String,
+            default: 'fileName'
+        },
+        valueKey: {
+            type: String,
+            default: 'id'
+        },
+        uploadType: {
+            // 上传方式 ( default:直接打开上传,attachment:ibps上传附件打开上传 )
+            type: String,
+            default: 'attachment'
+        },
+        showExtName: {
+            type: Boolean,
+            default: true
+        }
+    },
+    data () {
+        return {
+            selectorVisible: false,
+            selectorValue: this.multiple ? [] : {},
+            reselect: false, // 重新选择
+            selectorMultiple: this.multiple,
+            index: -1,
+            cacheData: {},
+            attachment: {},
+            filePreviewVisible: false,
+            acceptType: '',
+            showFile: false,
+            file: '',
+            optionFile: {},
+            optionFileView: {}
+        }
+    },
+    computed: {
+        items () {
+            if (this.$utils.isEmpty(this.selectorValue)) return []
+            if (this.multiple) {
+                return this.selectorValue.map(data => {
+                    return data[this.labelKey] + this.getExtName(data)
+                })
+            } else {
+                return [this.selectorValue[this.labelKey] + this.getExtName(this.selectorValue)]
             }
         },
-        data() {
+        uploadStyle () {
+            const { width, height } = this
             return {
-                selectorVisible: false,
-                selectorValue: this.multiple ? [] : {},
-                reselect: false, // 重新选择
-                selectorMultiple: this.multiple,
-                index: -1,
-                cacheData: {},
-                attachment: {},
-                filePreviewVisible: false,
-                acceptType: '',
-                showFile: false,
-                file: '',
-                optionFile: {},
-                optionFileView: {}
+                width: `${width}px`,
+                height: `${height}px`,
+                lineHeight: `${height}px`,
+                display: 'inline'
+            }
+        }
+    },
+    watch: {
+        value (val) {
+            if (this.$utils.isEmpty(this.value)) {
+                this.selectorValue = []
+            } else if (val) {
+                this.initData()
             }
         },
-        computed: {
-            items() {
-                if (this.$utils.isEmpty(this.selectorValue)) return []
-                if (this.multiple) {
-                    return this.selectorValue.map(data => {
-                        return data[this.labelKey] + this.getExtName(data)
-                    })
+        mediaType: {
+            handler: function (val, oldVal) {
+                if (val === 'custom') {
+                    var arr = this.media.split(',')
+                    const accept = '.' + arr.join(',').replace(/,/g, ',.')
+                    this.acceptType = accept
                 } else {
-                    return [ this.selectorValue[this.labelKey] + this.getExtName(this.selectorValue) ]
+                    this.acceptType = this.accept
                 }
             },
-            uploadStyle() {
-                const { width, height } = this
-                return {
-                    width: `${width}px`,
-                    height: `${height}px`,
-                    lineHeight: `${height}px`,
-                    display: 'inline'
-                }
+            immediate: true
+        }
+    },
+    mounted () {
+        this.initData()
+    },
+    methods: {
+        // 替换对应的文件 id  this.optionFile.data.index  为点击编辑时记录的下表号
+        updateFile (data) {
+            if (this.multiple) {
+                this.selectorValue[this.optionFile.data.index].id = data
+            } else {
+                this.selectorValue.id = data
             }
+            this.handleInput()
         },
-        watch: {
-            value(val) {
-                if (this.$utils.isEmpty(this.value)) {
-                    this.selectorValue = []
-                } else if (val) {
-                    this.initData()
-                }
-            },
-            mediaType: {
-                handler: function (val, oldVal) {
-                    if (val === 'custom') {
-                        var arr = this.media.split(',')
-                        const accept = '.' + arr.join(',').replace(/,/g, ',.')
-                        this.acceptType = accept
-                    } else {
-                        this.acceptType = this.accept
-                    }
-                },
-                immediate: true
+        /**
+             * 初始化数据
+             */
+        initData () {
+            const data = this.getArrayValue(this.value)
+            this.selectorValue = this.multiple ? [] : {}
+            if (this.$utils.isEmpty(data)) {
+                return
             }
-        },
-        mounted() {
-            this.initData()
-        },
-        methods: {
-            // 替换对应的文件 id  this.optionFile.data.index  为点击编辑时记录的下表号
-            updateFile(data) {
-                if (this.multiple) {
-                    this.selectorValue[this.optionFile.data.index].id = data
+            data.forEach(v => {
+                if (this.cacheData[v]) {
+                    this.setSelectorValue(v)
                 } else {
-                    this.selectorValue.id = data
+                    this.getDataInfo(v)
                 }
-                this.handleInput()
-            },
-            /**
-             * 初始化数据
-             */
-            initData() {
+            })
+        },
+        setCacheData () {
+            if (this.$utils.isEmpty(this.selectorValue)) return
+            const data = this.multiple ? this.selectorValue : [this.selectorValue]
+            data.forEach(v => {
+                this.cacheData[v[this.valueKey]] = v
+            })
+        },
+        setSelectorValue (v) {
+            if (this.multiple) {
+                this.selectorValue.push(this.cacheData[v])
                 const data = this.getArrayValue(this.value)
-                this.selectorValue = this.multiple ? [] : {}
-                if (this.$utils.isEmpty(data)) {
-                    return
-                }
-                data.forEach(v => {
-                    if (this.cacheData[v]) {
-                        this.setSelectorValue(v)
-                    } else {
-                        this.getDataInfo(v)
-                    }
-                })
-            },
-            setCacheData() {
-                if (this.$utils.isEmpty(this.selectorValue)) return
-                const data = this.multiple ? this.selectorValue : [this.selectorValue]
-                data.forEach(v => {
-                    this.cacheData[v[this.valueKey]] = v
-                })
-            },
-            setSelectorValue(v) {
-                if (this.multiple) {
-                    this.selectorValue.push(this.cacheData[v])
-                    const data = this.getArrayValue(this.value)
-                    if (this.selectorValue.length === data.length) {
-                        const dataHadSort = []
-                        data.forEach(el => {
-                            const fidData = this.selectorValue.find(fi => fi.id == el)
-                            if (fidData) {
-                                dataHadSort.push(fidData)
-                            }
-                        })
-                        this.selectorValue = dataHadSort
-                    }
-                } else {
-                    this.selectorValue = JSON.parse(JSON.stringify(this.cacheData[v]))
+                if (this.selectorValue.length === data.length) {
+                    const dataHadSort = []
+                    data.forEach(el => {
+                        const fidData = this.selectorValue.find(fi => fi.id == el)
+                        if (fidData) {
+                            dataHadSort.push(fidData)
+                        }
+                    })
+                    this.selectorValue = dataHadSort
                 }
-            },
-            /**
+            } else {
+                this.selectorValue = JSON.parse(JSON.stringify(this.cacheData[v]))
+            }
+        },
+        /**
              * 获得数组数据
              */
-            getArrayValue(value, bindId) {
-                if (this.$utils.isEmpty(value)) {
-                    return []
-                }
-                if (this.store === 'json') {
-                    // json
+        getArrayValue (value, bindId) {
+            if (this.$utils.isEmpty(value)) {
+                return []
+            }
+            if (this.store === 'json') {
+                // json
+                return this.parseJsonData(value)
+            } else if (this.store === 'id') {
+                // id
+                // 可能是json数据[之前存储的josn格式]
+                if (this.$utils.isJSON(value)) {
                     return this.parseJsonData(value)
-                } else if (this.store === 'id') {
-                    // id
-                    // 可能是json数据[之前存储的josn格式]
-                    if (this.$utils.isJSON(value)) {
-                        return this.parseJsonData(value)
-                    } else {
-                        return this.$utils.isString(value) ? value.split(this.storeSeparator) : []
-                    }
-                } else if (this.store === 'bind') {
-                    // 绑定id
-                    if (this.$utils.isEmpty(bindId)) {
-                        return []
-                    }
-                    return bindId.split(this.storeSeparator)
                 } else {
-                    // array
-                    return value.map(d => {
-                        return d[this.valueKey]
-                    })
+                    return this.$utils.isString(value) ? value.split(this.storeSeparator) : []
                 }
-            },
-            parseJsonData(value) {
-                try {
-                    const data = this.$utils.parseData(value)
-                    const result = []
-                    if (Array.isArray(data)) {
-                        data.forEach(d => {
-                            const node = d[this.valueKey]
-                            if (node) result.push(node)
-                        })
-                    } else {
-                        if (this.$utils.isPlainObject(data)) {
-                            result.push(data[this.valueKey])
-                        } else {
-                            const realData = this.$utils.isString(value) ? value.split(this.storeSeparator) : []
-                            realData.forEach(v => { result.push(v) })
-                        }
-                    }
-                    return result
-                } catch (error) {
-                    console.warn(error)
+            } else if (this.store === 'bind') {
+                // 绑定id
+                if (this.$utils.isEmpty(bindId)) {
                     return []
                 }
-            },
-            getStoreValue(value) {
-                const res = []
-                if (this.store === 'json') {
-                    // json
-                    if (this.$utils.isEmpty(value)) {
-                        return ''
-                    }
-                    if (this.multiple) {
-                        value.forEach(v => {
-                            const o = {}
-                            o[this.valueKey] = v[this.valueKey]
-                            o[this.labelKey] = v[this.labelKey]
-                            res.push(o)
-                        })
-                        return JSON.stringify(res)
-                    } else {
-                        const o = {}
-                        o[this.valueKey] = value[this.valueKey]
-                        o[this.labelKey] = value[this.labelKey]
-                        return JSON.stringify(o)
-                    }
-                } else if (this.store === 'id') {
-                    if (this.$utils.isEmpty(value)) {
-                        return ''
-                    }
-                    if (this.multiple) {
-                        value.forEach(v => {
-                            res.push(v[this.valueKey])
-                        })
+                return bindId.split(this.storeSeparator)
+            } else {
+                // array
+                return value.map(d => {
+                    return d[this.valueKey]
+                })
+            }
+        },
+        parseJsonData (value) {
+            try {
+                const data = this.$utils.parseData(value)
+                const result = []
+                if (Array.isArray(data)) {
+                    data.forEach(d => {
+                        const node = d[this.valueKey]
+                        if (node) result.push(node)
+                    })
+                } else {
+                    if (this.$utils.isPlainObject(data)) {
+                        result.push(data[this.valueKey])
                     } else {
-                        res.push(value[this.valueKey])
+                        const realData = this.$utils.isString(value) ? value.split(this.storeSeparator) : []
+                        realData.forEach(v => { result.push(v) })
                     }
-                    return res.join(this.storeSeparator)
-                } else if (this.store === 'bind') {
-                    // 绑定id
-                    const res = []
-                    const bindIdValue = []
+                }
+                return result
+            } catch (error) {
+                console.warn(error)
+                return []
+            }
+        },
+        getStoreValue (value) {
+            const res = []
+            if (this.store === 'json') {
+                // json
+                if (this.$utils.isEmpty(value)) {
+                    return ''
+                }
+                if (this.multiple) {
                     value.forEach(v => {
-                        bindIdValue.push(v[this.valueKey])
-                        res.push(v[this.labelKey])
+                        const o = {}
+                        o[this.valueKey] = v[this.valueKey]
+                        o[this.labelKey] = v[this.labelKey]
+                        res.push(o)
                     })
-                    this.bindIdValue = bindIdValue.join(this.storeSeparator)
-
-                    return res.join(this.storeSeparator)
+                    return JSON.stringify(res)
                 } else {
-                    // 数组 array
-                    return value || []
+                    const o = {}
+                    o[this.valueKey] = value[this.valueKey]
+                    o[this.labelKey] = value[this.labelKey]
+                    return JSON.stringify(o)
                 }
-            },
-            /**
-             * 通过ID获取数据
-             */
-            getDataInfo(id) {
-                if (TRANSFER_DATA === 'transfer') {
-                    this.getTransferData(id)
-                } else {
-                    this.getRemoteData(id)
+            } else if (this.store === 'id') {
+                if (this.$utils.isEmpty(value)) {
+                    return ''
                 }
-            },
-            getTransferData(id) {
-                remoteTransRequest('attachment', id).then(idset => {
-                    const ids = Array.from(idset)
-                    remoteRequest('attachmentIds', ids, () => {
-                        return this.getRemoteTransFunc(ids)
-                    }).then(response => {
-                        const responseData = response.data
-                        const data = responseData[id]
-                        this.setRemoteData(data)
-                    }).catch(() => {})
-                })
-            },
-            getRemoteTransFunc(ids) {
-                return new Promise((resolve, reject) => {
-                    transfer({ ids: ids }).then(response => {
-                        resolve(response)
-                    }).catch((error) => {
-                        reject(error)
+                if (this.multiple) {
+                    value.forEach(v => {
+                        res.push(v[this.valueKey])
                     })
+                } else {
+                    res.push(value[this.valueKey])
+                }
+                return res.join(this.storeSeparator)
+            } else if (this.store === 'bind') {
+                // 绑定id
+                const res = []
+                const bindIdValue = []
+                value.forEach(v => {
+                    bindIdValue.push(v[this.valueKey])
+                    res.push(v[this.labelKey])
                 })
-            },
-            getRemoteData(id) {
-                remoteRequest('attachment' + this.valueKey, id, () => {
-                    return this.getRemoteByIdFunc(id)
+                this.bindIdValue = bindIdValue.join(this.storeSeparator)
+
+                return res.join(this.storeSeparator)
+            } else {
+                // 数组 array
+                return value || []
+            }
+        },
+        /**
+             * 通过ID获取数据
+             */
+        getDataInfo (id) {
+            if (TRANSFER_DATA === 'transfer') {
+                this.getTransferData(id)
+            } else {
+                this.getRemoteData(id)
+            }
+        },
+        getTransferData (id) {
+            remoteTransRequest('attachment', id).then(idset => {
+                const ids = Array.from(idset)
+                remoteRequest('attachmentIds', ids, () => {
+                    return this.getRemoteTransFunc(ids)
                 }).then(response => {
-                    const data = response.data
+                    const responseData = response.data
+                    const data = responseData[id]
                     this.setRemoteData(data)
                 }).catch(() => {})
-            },
-            getRemoteByIdFunc(id) {
-                return new Promise((resolve, reject) => {
-                    get({ attachmentId: id }).then(response => {
-                        resolve(response)
-                    }).catch(() => {})
+            })
+        },
+        getRemoteTransFunc (ids) {
+            return new Promise((resolve, reject) => {
+                transfer({ ids: ids }).then(response => {
+                    resolve(response)
+                }).catch((error) => {
+                    reject(error)
                 })
-            },
-            setRemoteData(data) {
-                if (this.$utils.isNotEmpty(data)) {
-                    this.cacheData[data[this.valueKey]] = data
-                    this.setSelectorValue(data[this.valueKey])
-                }
-            },
-            getExtName(data) {
-                if (!data) {
-                    return ''
-                }
-                if (this.showExtName && data['ext']) {
-                    return '.' + data['ext']
-                }
+            })
+        },
+        getRemoteData (id) {
+            remoteRequest('attachment' + this.valueKey, id, () => {
+                return this.getRemoteByIdFunc(id)
+            }).then(response => {
+                const data = response.data
+                this.setRemoteData(data)
+            }).catch(() => {})
+        },
+        getRemoteByIdFunc (id) {
+            return new Promise((resolve, reject) => {
+                get({ attachmentId: id }).then(response => {
+                    resolve(response)
+                }).catch(() => {})
+            })
+        },
+        setRemoteData (data) {
+            if (this.$utils.isNotEmpty(data)) {
+                this.cacheData[data[this.valueKey]] = data
+                this.setSelectorValue(data[this.valueKey])
+            }
+        },
+        getExtName (data) {
+            if (!data) {
                 return ''
-            },
-            // 事件处理
-            handleActionEvent(action, index, data, type) {
-                this.index = index
-                switch (action) {
-                    case 'select': // 选择
-                        this.selectorVisible = true
-                        this.selectorMultiple = this.multiple
-                        this.reselect = false
-                        this.showFile = false
-                        break
-                    case 'reselect': // 重新选择
-                        this.selectorVisible = true
-                        this.selectorMultiple = false
-                        this.reselect = true
-                        this.showFile = false
-                        break
-                    case 'remove': // 删除
-                        this.handleRemove(index)
-                        this.$refs['attachmentSelector'].init()
-                        break
-                    case 'download': // 下载
-                        this.handleDownload(index)
-                        break
-                    case 'preview': // 预览
-                        this.handlePreview(index)
-                        break
-                    case 'confirm': // 默认上传选择文件
-                        this.handleSelectorActionEvent(action, index)
-                        break
-                    case 'edit': // 编辑
-                        this.handleEdit(index, data, type)
-                        break
-                }
-            },
-            // 处理编辑文件
-            handleEdit(index, data, type) {
-                //1、获取文件数据 及下载流接口
-                this.optionFile.url = BASE_API() + SYSTEM_URL() + '/file/download?attachmentId=' + data.id
-                this.optionFile.editUrl = BASE_API() + SYSTEM_URL() + '/file/editCallback?fileName=' + data.fileName + '&fileType=' + data.ext + '&type=' + type + '&id=' + data.id
-                this.optionFile.title = data.fileName // 文件名称
-                this.optionFile.fileType = data.ext // 类型
-                this.optionFile.data = data //记录编制的位置,需要替换。
-                this.optionFile.data.index = index
-                //2、显示编辑位置,提交后进行保存
-                if (this.showFile) {
-                    //重复打开,进行刷新子组件
+            }
+            if (this.showExtName && data['ext']) {
+                return '.' + data['ext']
+            }
+            return ''
+        },
+        // 事件处理
+        handleActionEvent (action, index, data, type) {
+            this.index = index
+            switch (action) {
+                case 'select': // 选择
+                    this.selectorVisible = true
+                    this.selectorMultiple = this.multiple
+                    this.reselect = false
                     this.showFile = false
-                } else {
-                    this.showFile = true
-                    // this.timer = setInterval((num)=>{
-                    //     this. test = true
-                    // },10000)
-                }
-            },
-            /**
+                    break
+                case 'reselect': // 重新选择
+                    this.selectorVisible = true
+                    this.selectorMultiple = false
+                    this.reselect = true
+                    this.showFile = false
+                    break
+                case 'remove': // 删除
+                    this.handleRemove(index)
+                    this.$refs['attachmentSelector'].init()
+                    break
+                case 'download': // 下载
+                    this.handleDownload(index)
+                    break
+                case 'preview': // 预览
+                    this.handlePreview(index)
+                    break
+                case 'confirm': // 默认上传选择文件
+                    this.handleSelectorActionEvent(action, index)
+                    break
+                case 'edit': // 编辑
+                    this.handleEdit(index, data, type)
+                    break
+            }
+        },
+        // 处理编辑文件
+        handleEdit (index, data, type) {
+            // 1、获取文件数据 及下载流接口
+            this.optionFile.url = BASE_API() + SYSTEM_URL() + '/file/download?attachmentId=' + data.id
+            this.optionFile.editUrl = BASE_API() + SYSTEM_URL() + '/file/editCallback?fileName=' + data.fileName + '&fileType=' + data.ext + '&type=' + type + '&id=' + data.id
+            this.optionFile.title = data.fileName // 文件名称
+            this.optionFile.fileType = data.ext // 类型
+            this.optionFile.data = data // 记录编制的位置,需要替换。
+            this.optionFile.data.index = index
+            // 2、显示编辑位置,提交后进行保存
+            if (this.showFile) {
+                // 重复打开,进行刷新子组件
+                this.showFile = false
+            } else {
+                this.showFile = true
+                // this.timer = setInterval((num)=>{
+                //     this. test = true
+                // },10000)
+            }
+        },
+        /**
              * 处理删除
              */
-            handleRemove(index) {
-                if (this.multiple) {
-                    this.selectorValue.splice(index, 1)
-                } else {
-                    this.selectorValue = {} //当前为清空
-                }
-                this.handleInput()
-            },
-            /**
+        handleRemove (index) {
+            if (this.multiple) {
+                this.selectorValue.splice(index, 1)
+            } else {
+                this.selectorValue = {} // 当前为清空
+            }
+            this.handleInput()
+        },
+        /**
              * 处理下载
              */
-            handleDownload(index) {
-                downloadFile(this.multiple ? this.selectorValue[index] : this.selectorValue)
-            },
-            /**
+        handleDownload (index) {
+            downloadFile(this.multiple ? this.selectorValue[index] : this.selectorValue)
+        },
+        /**
              * 处理预览
              */
-            handlePreview(index) {
-                this.attachment = this.multiple ? this.selectorValue[index] : this.selectorValue
-                if (supportFileTypes.includes(this.attachment.ext)) {
-                    this.getPreview(index)
-                } else {
-                    this.$message.closeAll()
-                    this.$message.warning('暂不支持该文件类型预览')
-                }
-            },
-            /**
+        handlePreview (index) {
+            this.attachment = this.multiple ? this.selectorValue[index] : this.selectorValue
+            if (supportFileTypes.includes(this.attachment.ext)) {
+                this.getPreview(index)
+            } else {
+                this.$message.closeAll()
+                this.$message.warning('暂不支持该文件类型预览')
+            }
+        },
+        /**
              * 处理预览
              */
-            getPreview(index) {
-                //1、获取文件数据 及下载流接口
-                //下载地址
-                this.optionFileView.url = BASE_API() + SYSTEM_URL() + '/file/download?attachmentId=' + this.attachment.id
-                // 回调接口url
-                this.optionFileView.editUrl = BASE_API() + SYSTEM_URL() + '/file/editCallback?fileName=' + this.attachment.fileName + '&fileType=' + this.attachment.ext
-                this.optionFileView.title = this.attachment.fileName // 文件名称
-                this.optionFileView.fileType = this.attachment.ext // 类型
-                this.optionFileView.data = this.attachment // 记录编制的位置,需要替换。
-                this.optionFileView.data.index = index
-                this.filePreviewVisible = true
-            },
-            /**
+        getPreview (index) {
+            // 1、获取文件数据 及下载流接口
+            // 下载地址
+            this.optionFileView.url = BASE_API() + SYSTEM_URL() + '/file/download?attachmentId=' + this.attachment.id
+            // 回调接口url
+            this.optionFileView.editUrl = BASE_API() + SYSTEM_URL() + '/file/editCallback?fileName=' + this.attachment.fileName + '&fileType=' + this.attachment.ext
+            this.optionFileView.title = this.attachment.fileName // 文件名称
+            this.optionFileView.fileType = this.attachment.ext // 类型
+            this.optionFileView.data = this.attachment // 记录编制的位置,需要替换。
+            this.optionFileView.data.index = index
+            this.filePreviewVisible = true
+        },
+        /**
              *  确定
              */
-            handleSelectorActionEvent(buttonKey, data) {
-                if (this.uploadType === 'default' && this.$utils.isNotEmpty(this.limit) && this.multiple && this.limit < data.length) {
-                    this.$message({
-                        type: 'warning'
-                    })
-                    this.$refs['attachmentSelector'].init()
-                    return
-                }
-                switch (buttonKey) {
-                    case 'confirm': // 确定
-                        this.selectorVisible = false
-                        if (this.reselect) {
-                            if (this.multiple) {
-                                this.selectorValue.splice(this.index, 1, data)
-                            } else {
-                                this.selectorValue = data
-                            }
+        handleSelectorActionEvent (buttonKey, data) {
+            if (this.uploadType === 'default' && this.$utils.isNotEmpty(this.limit) && this.multiple && this.limit < data.length) {
+                this.$message({
+                    type: 'warning'
+                })
+                this.$refs['attachmentSelector'].init()
+                return
+            }
+            switch (buttonKey) {
+                case 'confirm': // 确定
+                    this.selectorVisible = false
+                    if (this.reselect) {
+                        if (this.multiple) {
+                            this.selectorValue.splice(this.index, 1, data)
                         } else {
                             this.selectorValue = data
                         }
-                        this.setCacheData()
-                        this.handleInput()
-                        break
-                }
-            },
-            handleInput() {
-                this.$emit('input', this.getStoreValue(this.selectorValue))
-                // 提供一个返回实体,提供调用
-                this.$emit('callback', this.selectorValue)
-            },
-            /**
+                    } else {
+                        this.selectorValue = data
+                    }
+                    this.setCacheData()
+                    this.handleInput()
+                    break
+            }
+        },
+        handleInput () {
+            this.$emit('input', this.getStoreValue(this.selectorValue))
+            // 提供一个返回实体,提供调用
+            this.$emit('callback', this.selectorValue)
+        },
+        /**
              * 文件上传
              */
-            httpRequest(options) {
-                return uploadFile(options.file, {})
-            },
-            handleDelete(file, selectorValue) {
-                this.selectorValue = selectorValue
-            },
-            handleSuccess(response, file, selectorValue) {
-                this.selectorValue = selectorValue.map(item => {
-                    item.isActive = false
-                    return item
+        httpRequest (options) {
+            return uploadFile(options.file, {})
+        },
+        handleDelete (file, selectorValue) {
+            this.selectorValue = selectorValue
+        },
+        handleSuccess (response, file, selectorValue) {
+            this.selectorValue = selectorValue.map(item => {
+                item.isActive = false
+                return item
+            })
+        },
+        handleChange (file, selectorValue) {
+            this.selectorValue = selectorValue
+        },
+        // 图片上传数量限制
+        handlePicAmount (files, selectorValue) {
+            if (this.multiple && this.limit) {
+                this.$message.closeAll()
+                this.$message({
+                    message: `图片上传上限${this.limit}张`,
+                    type: 'warning'
                 })
-            },
-            handleChange(file, selectorValue) {
-                this.selectorValue = selectorValue
-            },
-            // 图片上传数量限制
-            handlePicAmount(files, selectorValue) {
-                if (this.multiple && this.limit) {
-                    this.$message.closeAll()
-                    this.$message({
-                        message: `图片上传上限${this.limit}张`,
-                        type: 'warning'
-                    })
-                }
-            },
-            // 格式、大小限制
-            beforeUpload(file) {
-                const isType = this.accept ? file.type.includes(this.accept) : true
-                if (!isType) {
-                    this.$message.closeAll()
-                    this.$message.error(`上传图片的格式为${this.accept}`)
-                }
-                const isLimitSize = this.size ? (file.size / 1024 / 1024 < this.size) : true
-                if (!isLimitSize) {
-                    this.$message.closeAll()
-                    this.$message.error(`上传图片的大小不能超过 ${this.size}M!`)
-                }
-                return isLimitSize && isType
             }
+        },
+        // 格式、大小限制
+        beforeUpload (file) {
+            const isType = this.accept ? file.type.includes(this.accept) : true
+            if (!isType) {
+                this.$message.closeAll()
+                this.$message.error(`上传图片的格式为${this.accept}`)
+            }
+            const isLimitSize = this.size ? (file.size / 1024 / 1024 < this.size) : true
+            if (!isLimitSize) {
+                this.$message.closeAll()
+                this.$message.error(`上传图片的大小不能超过 ${this.size}M!`)
+            }
+            return isLimitSize && isType
         }
     }
+}
 </script>
 <style scoped>
     .divShow {

+ 2 - 3
src/business/platform/form/formrender/dynamic-form/dynamic-form-table-item.vue

@@ -140,10 +140,9 @@ export default {
                 if (this.field.field_type === 'selector' || this.field.field_type === 'select' || this.field.field_type === 'customDialog' || this.field.field_type === 'linkdata') {
                     this.handleModels(this.field.name, val)
                 }
-                if (this.field.field_type === 'checkbox'){
-                    this.handleModels(this.field.name, Array.isArray(val)?val.join(","):val)
+                if (this.field.field_type === 'checkbox') {
+                    this.handleModels(this.field.name, Array.isArray(val) ? val.join(',') : val)
                 }
-                console.log(val,'1111111111')
                 this.$nextTick(() => {
                     // 值改变进行公式计算
                     this.runCalFormula()

+ 3 - 5
src/views/platform/org/employee/list.vue

@@ -329,7 +329,7 @@ export default {
         }
     },
     created () {
-        const sql1 = 'select a.id_ as id_, a.name_ as name_, b.path_ as path_ from ibps_party_position a, ibps_party_entity b where a.id_ = b.id_'
+        const sql1 = 'select a.id_ as id_, a.name_ as name_, b.path_ as path_ from ibps_party_position a, ibps_party_entity b where a.id_ = b.id_ order by depth_ asc, sn_ asc'
         const sql2 = 'select id_, name_ from ibps_party_role order by role_note_ asc'
         Promise.all([this.getData(sql1, 'positionsList', 4), this.getData(sql2, 'roleList', 3)]).then(() => {
             this.loadData()
@@ -354,7 +354,6 @@ export default {
                         this.$set(item, 'positionsName', name)
                         // 转换岗位路径
                         const path = this.getPositionsPath(item.positions)
-                        console.log(path)
                         this.$set(item, 'positionsPath', path)
                     }
                     if (item.job) {
@@ -375,12 +374,11 @@ export default {
             if (!dataList.length) {
                 return ''
             }
-            console.log(this[type])
             dataList.forEach(item => {
                 const dataItem = this[type].find(i => i.id_ === item)
-                result.push(dataItem.name_)
+                result.push(dataItem ? dataItem.name_ : '')
             })
-            return result.join(',')
+            return result.filter(i => i).join(',')
         },
         getPositionsPath (value) {
             const postList = value.split(',')