diff --git a/back/src/mixins/view-module.js b/back/src/mixins/view-module.js index ddc79d5a..4388aa4c 100644 --- a/back/src/mixins/view-module.js +++ b/back/src/mixins/view-module.js @@ -2,8 +2,8 @@ import Cookies from 'js-cookie' import qs from 'qs' import { deepClone } from '@/utils/form-generator/index' export default { - data() { - /* eslint-disable */ + data () { + /* eslint-disable */ return { // 设置属性 mixinViewModuleOptions: { @@ -34,371 +34,356 @@ export default { addOrUpdateVisible: false // 新增/更新,弹窗visible状态 } /* eslint-enable */ - }, - created() { - if (this.mixinViewModuleOptions.createdIsNeed) { - this.query() + }, + created () { + if (this.mixinViewModuleOptions.createdIsNeed) { + this.query() + } + }, + activated () { + if (this.mixinViewModuleOptions.activatedIsNeed) { + this.query() + } + }, + methods: { + // 获取数据列表 + query () { + this.dataListLoading = true + this.$http.get( + this.mixinViewModuleOptions.getDataListURL + '?' + qs.stringify({ + // order: this.order, + // orderField: this.orderField, + // type: '组件服务', + name: '', + page: this.mixinViewModuleOptions.getDataListIsPage ? this.page : null, + limit: this.mixinViewModuleOptions.getDataListIsPage ? this.limit : null, + ...this.dataForm + }) + + ).then(({ data: res }) => { + if (res.code !== 0) { + this.dataList = [] + this.total = 0 + return this.$message.error(res.msg) } - }, - activated() { - if (this.mixinViewModuleOptions.activatedIsNeed) { - this.query() + this.dataList = this.mixinViewModuleOptions.getDataListIsPage ? res.data.list : res.data + this.dataList.map((item, index) => { + if (this.dataList[index].type != null) { + switch (item.type) { + case 1: + this.dataList[index].type = '省' + break + case 2: + this.dataList[index].type = '市' + break + case 3: + this.dataList[index].type = '区' + break + case 4: + this.dataList[index].type = '企业' + break + } + } + if (item.children != null) { + item.children.map((item2, index2) => { + switch (item2.type) { + case 1: + this.dataList[index].children[index2].type = '省' + break + case 2: + this.dataList[index].children[index2].type = '市' + break + case 3: + this.dataList[index].children[index2].type = '区' + break + case 4: + this.dataList[index].children[index2].type = '企业' + break + } + }) + } + }) + // 我的代办特殊处理 + this.total = this.mixinViewModuleOptions.getDataListIsPage ? res.data.total : 0 + console.log('数据列表', this.dataList, this.mixinViewModuleOptions.getDataListURL) + if (this.dataList[0].type === '组件服务') { + this.dataList.map(val => { + val.infoList2 = val.infoList.filter(item => item.attrType === '应用领域' || item.attrType === '组件类型') + }) + } else if (this.dataList[0].type === '应用资源') { + this.dataList.map(val => { + val.infoList2 = val.infoList.filter(item => item.attrType === '应用领域') + }) + } else if (this.dataList[0].type === '应用系统') { + this.dataList.forEach((item) => { + item.belongProject = '城市信息模型' + item.belongSystem = '信息模型技术平台' + }) + this.dataList.map(val => { + val.infoList2 = val.infoList.filter(item => item.attrType === '应用领域') + }) } + if (this.mixinViewModuleOptions.requestCallback) { + this.mixinViewModuleOptions.requestCallback(res.data) + } + this.dataListLoading = false + }).catch(() => { + this.dataListLoading = false + }) + }, + // 多选 + dataListSelectionChangeHandle (val) { + this.dataListSelections = val + }, + // 排序 + dataListSortChangeHandle (data) { + if (!data.order || !data.prop) { + this.order = '' + this.orderField = '' + return false + } + this.order = data.order.replace(/ending$/, '') + this.orderField = data.prop.replace(/([A-Z])/g, '_$1').toLowerCase() + this.query() + }, + // 分页, 每页条数 + pageSizeChangeHandle (val) { + this.page = 1 + this.limit = val + this.query() + }, + // 分页, 当前页 + pageCurrentChangeHandle (val) { + this.page = val + this.query() + }, + getDataList: function () { + this.page = 1 + this.query() + }, + // 新增 + addOrUpdateHandle (id) { + this.addOrUpdateVisible = true + this.disabled = false + this.$nextTick(() => { + this.$refs.addOrUpdate.UpdateState = false + this.$refs.addOrUpdate.dataForm.id = id + this.$refs.addOrUpdate.init() + }) }, - methods: { - // 获取数据列表 - query() { - this.dataListLoading = true - this.$http.get( - this.mixinViewModuleOptions.getDataListURL + '?' + qs.stringify({ - // order: this.order, - // orderField: this.orderField, - // type: '组件服务', - name: '', - page: this.mixinViewModuleOptions.getDataListIsPage ? this.page : null, - limit: this.mixinViewModuleOptions.getDataListIsPage ? this.limit : null, - ...this.dataForm - }) - ).then(({ data: res }) => { - if (res.code !== 0) { - this.dataList = [] - this.total = 0 - return this.$message.error(res.msg) - } - this.dataList = this.mixinViewModuleOptions.getDataListIsPage ? res.data.list : res.data - this.dataList.map((item, index) => { - if (this.dataList[index].type != null) { - switch (item.type) { - case 1: - this.dataList[index].type = '省'; - break - case 2: - this.dataList[index].type = '市'; - break - case 3: - this.dataList[index].type = '区'; - break - case 4: - this.dataList[index].type = '企业'; - break - } - } - if (item.children != null) { - item.children.map((item2, index2) => { - switch (item2.type) { - case 1: - this.dataList[index].children[index2].type = '省'; - break - case 2: - this.dataList[index].children[index2].type = '市'; - break - case 3: - this.dataList[index].children[index2].type = '区'; - break - case 4: - this.dataList[index].children[index2].type = '企业'; - break - } - }) - } - }) - // 我的代办特殊处理 - if (this.mixinViewModuleOptions.getDataListURL === '/act/task/myToDoTaskPage') { - this.$http.get('/sys/user/info').then(userRes => { - console.log('当前用户信息===========>', userRes.data.data.id) - const userId = userRes.data.data.id - this.dataList = this.dataList.filter(item => { - // userId creator - console.log(item.params.creator) - if (!(item.params.creator === userId) && !(item.params.userId === userId)) { - return item - } - }) - this.total = this.mixinViewModuleOptions.getDataListIsPage ? res.data.total : 0 - }) - } else { - this.total = this.mixinViewModuleOptions.getDataListIsPage ? res.data.total : 0 - } - console.log('数据列表', this.dataList, this.mixinViewModuleOptions.getDataListURL) - if (this.dataList[0].type === '组件服务') { - this.dataList.map(val => { - val.infoList2 = val.infoList.filter(item => item.attrType === '应用领域' || item.attrType === '组件类型') - }) - } else if (this.dataList[0].type === '应用资源') { - this.dataList.map(val => { - val.infoList2 = val.infoList.filter(item => item.attrType === '应用领域') - }) - } else if (this.dataList[0].type === '应用系统') { - this.dataList.forEach((item) => { - item.belongProject = "城市信息模型"; - item.belongSystem = "信息模型技术平台"; - }); - this.dataList.map(val => { - val.infoList2 = val.infoList.filter(item => item.attrType === '应用领域') - }) - } - if (this.mixinViewModuleOptions.requestCallback) { - this.mixinViewModuleOptions.requestCallback(res.data) - } - this.dataListLoading = false - }).catch(() => { - this.dataListLoading = false + // 组件服务新增 + addOrUpdateHandleAI (id) { + // const infoList = [] + let showList = [] + this.$http.get('category/getCategoryTree').then(({ data: res }) => { + showList = res.data.filter(item => item.name === '组件服务')[0].children + showList.forEach((item, index) => { + if (item.children && item.children.length > 0) { + item.children.forEach((item2) => { + const options = [] + if (item2.isLinkToDic == 'true') { + this.$http.get('/sys/dict/data/page?page=1&limit=99&dictTypeId=' + item2.linkValue).then(({ data: res }) => { + res.data.list.forEach((val) => { + options.push(val.dictLabel) + }) + item2.options = options + }).catch(() => {}) + } + item2.note1 = '' + // if (item.name !== '必填信息' && item.name !== '服务接口信息') { + // infoList.push({ + // attrType: item2.name, + // attrValue: '', + // delFlag: 0, + // options: options + // }) + // } }) - }, - // 多选 - dataListSelectionChangeHandle(val) { - this.dataListSelections = val - }, - // 排序 - dataListSortChangeHandle(data) { - if (!data.order || !data.prop) { - this.order = '' - this.orderField = '' - return false - } - this.order = data.order.replace(/ending$/, '') - this.orderField = data.prop.replace(/([A-Z])/g, '_$1').toLowerCase() - this.query() - }, - // 分页, 每页条数 - pageSizeChangeHandle(val) { - this.page = 1 - this.limit = val - this.query() - }, - // 分页, 当前页 - pageCurrentChangeHandle(val) { - this.page = val - this.query() - }, - getDataList: function() { - this.page = 1 - this.query() - }, - // 新增 - addOrUpdateHandle(id) { - this.addOrUpdateVisible = true - this.disabled = false - this.$nextTick(() => { - this.$refs.addOrUpdate.UpdateState = false - this.$refs.addOrUpdate.dataForm.id = id - this.$refs.addOrUpdate.init() - }) - }, + } + }) + console.log(res, showList) + this.flag = true + }).catch(() => {}) - // 组件服务新增 - addOrUpdateHandleAI(id) { - // const infoList = [] - let showList = [] - this.$http.get('category/getCategoryTree').then(({ data: res }) => { - showList = res.data.filter(item => item.name === '组件服务')[0].children - showList.forEach((item, index) => { - if (item.children && item.children.length > 0) { - item.children.forEach((item2) => { - const options = [] - if (item2.isLinkToDic == 'true') { - this.$http.get('/sys/dict/data/page?page=1&limit=99&dictTypeId=' + item2.linkValue).then(({ data: res }) => { - res.data.list.forEach((val) => { - options.push(val.dictLabel) - }) - item2.options = options - }).catch(() => {}) - } - item2.note1 = '' - // if (item.name !== '必填信息' && item.name !== '服务接口信息') { - // infoList.push({ - // attrType: item2.name, - // attrValue: '', - // delFlag: 0, - // options: options - // }) - // } - }) - } - }) - console.log(res, showList) - this.flag = true - }).catch(() => {}) - - // 定时器 - this.time = setInterval(() => { - console.log('定时器') - if (this.flag) { - this.addOrUpdateVisible = true - this.disabled = false - this.$nextTick(() => { - this.$refs.addOrUpdate.UpdateState = false - this.$refs.addOrUpdate.dataForm.id = id - this.$refs.addOrUpdate.init() - // this.$refs.addOrUpdate.dataForm.infoList = infoList - this.$refs.addOrUpdate.dataForm.showList = showList - this.$refs.addOrUpdate.dataForm.showListAll = showList - this.$refs.addOrUpdate.checkList = [] - showList.forEach(val => { - this.$refs.addOrUpdate.checkList.push(val.name) - }) - console.log('this.$refs.addOrUpdate.dataForm.showList', this.$refs.addOrUpdate.dataForm.showList) - }) - this.flag = false - clearInterval(this.time) - } - }, 100) - }, - // 应用资源新增 - addOrUpdateHandleServe(id) { - // const infoList = [] - let showList = [] - this.$http.get('category/getCategoryTree').then(({ data: res }) => { - showList = res.data.filter(item => item.name === '应用资源')[0].children - showList.forEach((item, index) => { - if (item.children && item.children.length > 0) { - item.children.forEach((item2) => { - const options = [] - if (item2.isLinkToDic == 'true') { - this.$http.get('/sys/dict/data/page?page=1&limit=99&dictTypeId=' + item2.linkValue).then(({ data: res }) => { - res.data.list.forEach((val) => { - options.push(val.dictLabel) - }) - item2.options = options - }).catch(() => {}) - } - item2.note1 = '' - // if (item.name !== '必填信息' && item.name !== '服务接口信息') { - // infoList.push({ - // attrType: item2.name, - // attrValue: '', - // delFlag: 0, - // options: options - // }) - // } - }) - } - }) - console.log(res, showList) - this.flag = true - }).catch(() => {}) - - // 定时器 - this.time = setInterval(() => { - console.log('定时器') - if (this.flag) { - this.addOrUpdateVisible = true - this.disabled = false - this.$nextTick(() => { - this.$refs.addOrUpdate.UpdateState = false - this.$refs.addOrUpdate.dataForm.id = id - this.$refs.addOrUpdate.init() - // this.$refs.addOrUpdate.dataForm.infoList = infoList - this.$refs.addOrUpdate.dataForm.showList = showList - this.$refs.addOrUpdate.dataForm.showListAll = showList - this.$refs.addOrUpdate.checkList = [] - showList.forEach(val => { - this.$refs.addOrUpdate.checkList.push(val.name) - }) - console.log('this.$refs.addOrUpdate.dataForm.showList', this.$refs.addOrUpdate.dataForm.showList) - }) - this.flag = false - clearInterval(this.time) - } - }, 100) - }, - // 修改 - UpdateHandle(val) { - this.addOrUpdateVisible = true - this.disabled = false - const cloneVal = deepClone(val) - console.log('修改的数据', cloneVal) - cloneVal.infoList.forEach(item => { - delete item.createDate - delete item.creator - delete item.id - delete item.updateDate - delete item.updater - delete item.note1 - delete item.note2 - delete item.note3 - delete item.note4 - delete item.note5 + // 定时器 + this.time = setInterval(() => { + console.log('定时器') + if (this.flag) { + this.addOrUpdateVisible = true + this.disabled = false + this.$nextTick(() => { + this.$refs.addOrUpdate.UpdateState = false + this.$refs.addOrUpdate.dataForm.id = id + this.$refs.addOrUpdate.init() + // this.$refs.addOrUpdate.dataForm.infoList = infoList + this.$refs.addOrUpdate.dataForm.showList = showList + this.$refs.addOrUpdate.dataForm.showListAll = showList + this.$refs.addOrUpdate.checkList = [] + showList.forEach(val => { + this.$refs.addOrUpdate.checkList.push(val.name) }) - this.$nextTick(() => { - this.$refs.addOrUpdate.UpdateState = true - this.$refs.addOrUpdate.dataFormUpdate = cloneVal - this.$refs.addOrUpdate.init() - console.log('===========================', this.$refs.addOrUpdate.dataFormUpdate) + console.log('this.$refs.addOrUpdate.dataForm.showList', this.$refs.addOrUpdate.dataForm.showList) + }) + this.flag = false + clearInterval(this.time) + } + }, 100) + }, + // 应用资源新增 + addOrUpdateHandleServe (id) { + // const infoList = [] + let showList = [] + this.$http.get('category/getCategoryTree').then(({ data: res }) => { + showList = res.data.filter(item => item.name === '应用资源')[0].children + showList.forEach((item, index) => { + if (item.children && item.children.length > 0) { + item.children.forEach((item2) => { + const options = [] + if (item2.isLinkToDic == 'true') { + this.$http.get('/sys/dict/data/page?page=1&limit=99&dictTypeId=' + item2.linkValue).then(({ data: res }) => { + res.data.list.forEach((val) => { + options.push(val.dictLabel) + }) + item2.options = options + }).catch(() => {}) + } + item2.note1 = '' + // if (item.name !== '必填信息' && item.name !== '服务接口信息') { + // infoList.push({ + // attrType: item2.name, + // attrValue: '', + // delFlag: 0, + // options: options + // }) + // } }) - }, - // 关闭当前窗口 - closeCurrentTab(data) { - var tabName = this.$store.state.contentTabsActiveName - this.$store.state.contentTabs = this.$store.state.contentTabs.filter(item => item.name !== tabName) - if (this.$store.state.contentTabs.length <= 0) { - this.$store.state.sidebarMenuActiveName = this.$store.state.contentTabsActiveName = 'home' - return false - } - if (tabName === this.$store.state.contentTabsActiveName) { - this.$router.push({ name: this.$store.state.contentTabs[this.$store.state.contentTabs.length - 1].name }) - } - }, - // 删除 - deleteHandle(id) { - if (this.mixinViewModuleOptions.deleteIsBatch && !id && this.dataListSelections.length <= 0) { - return this.$message({ - message: this.$t('prompt.deleteBatch'), - type: 'warning', - duration: 500 - }) - } - this.$confirm(this.$t('prompt.info', { handle: this.$t('delete') }), this.$t('prompt.title'), { - confirmButtonText: this.$t('confirm'), - cancelButtonText: this.$t('cancel'), - type: 'warning' - }).then(() => { - this.$http.delete( + } + }) + console.log(res, showList) + this.flag = true + }).catch(() => {}) + + // 定时器 + this.time = setInterval(() => { + console.log('定时器') + if (this.flag) { + this.addOrUpdateVisible = true + this.disabled = false + this.$nextTick(() => { + this.$refs.addOrUpdate.UpdateState = false + this.$refs.addOrUpdate.dataForm.id = id + this.$refs.addOrUpdate.init() + // this.$refs.addOrUpdate.dataForm.infoList = infoList + this.$refs.addOrUpdate.dataForm.showList = showList + this.$refs.addOrUpdate.dataForm.showListAll = showList + this.$refs.addOrUpdate.checkList = [] + showList.forEach(val => { + this.$refs.addOrUpdate.checkList.push(val.name) + }) + console.log('this.$refs.addOrUpdate.dataForm.showList', this.$refs.addOrUpdate.dataForm.showList) + }) + this.flag = false + clearInterval(this.time) + } + }, 100) + }, + // 修改 + UpdateHandle (val) { + this.addOrUpdateVisible = true + this.disabled = false + const cloneVal = deepClone(val) + console.log('修改的数据', cloneVal) + cloneVal.infoList.forEach(item => { + delete item.createDate + delete item.creator + delete item.id + delete item.updateDate + delete item.updater + delete item.note1 + delete item.note2 + delete item.note3 + delete item.note4 + delete item.note5 + }) + this.$nextTick(() => { + this.$refs.addOrUpdate.UpdateState = true + this.$refs.addOrUpdate.dataFormUpdate = cloneVal + this.$refs.addOrUpdate.init() + console.log('===========================', this.$refs.addOrUpdate.dataFormUpdate) + }) + }, + // 关闭当前窗口 + closeCurrentTab (data) { + var tabName = this.$store.state.contentTabsActiveName + this.$store.state.contentTabs = this.$store.state.contentTabs.filter(item => item.name !== tabName) + if (this.$store.state.contentTabs.length <= 0) { + this.$store.state.sidebarMenuActiveName = this.$store.state.contentTabsActiveName = 'home' + return false + } + if (tabName === this.$store.state.contentTabsActiveName) { + this.$router.push({ name: this.$store.state.contentTabs[this.$store.state.contentTabs.length - 1].name }) + } + }, + // 删除 + deleteHandle (id) { + if (this.mixinViewModuleOptions.deleteIsBatch && !id && this.dataListSelections.length <= 0) { + return this.$message({ + message: this.$t('prompt.deleteBatch'), + type: 'warning', + duration: 500 + }) + } + this.$confirm(this.$t('prompt.info', { handle: this.$t('delete') }), this.$t('prompt.title'), { + confirmButtonText: this.$t('confirm'), + cancelButtonText: this.$t('cancel'), + type: 'warning' + }).then(() => { + this.$http.delete( `${this.mixinViewModuleOptions.deleteURL}${this.mixinViewModuleOptions.deleteIsBatch ? '' : '/' + id}`, this.mixinViewModuleOptions.deleteIsBatch ? { - data: id ? [id] : this.dataListSelections.map(item => item[this.mixinViewModuleOptions.deleteIsBatchKey]) + data: id ? [id] : this.dataListSelections.map(item => item[this.mixinViewModuleOptions.deleteIsBatchKey]) } : {} - ).then(({ data: res }) => { - if (res.code !== 0) { - return this.$message.error(res.msg) - } - this.$message({ - message: this.$t('prompt.success'), - type: 'success', - duration: 500, - onClose: () => { - this.query() - } - }) - }).catch(() => {}) - }).catch(() => {}) - }, - - deleteHandle2(id) { - console.log('删除========================》', id, this.dataListSelections) - const ids = [] - if (id) { - ids.push(id) - } else { - if (this.dataListSelections.length > 0) { - this.dataListSelections.forEach(item => { - ids.push(item.id) - }) - } + ).then(({ data: res }) => { + if (res.code !== 0) { + return this.$message.error(res.msg) + } + this.$message({ + message: this.$t('prompt.success'), + type: 'success', + duration: 500, + onClose: () => { + this.query() } - this.$http.post('/resource/delete', { ids: ids }).then(res => { - console.log('删除成功', res) - this.getDataList() - }) - }, - // 导出 - exportHandle() { - var params = qs.stringify({ - token: Cookies.get('ucsToken'), - ...this.dataForm - }) - window.location.href = `${window.SITE_CONFIG.apiURL}${this.mixinViewModuleOptions.exportURL}?${params}` + }) + }).catch(() => {}) + }).catch(() => {}) + }, + + deleteHandle2 (id) { + console.log('删除========================》', id, this.dataListSelections) + const ids = [] + if (id) { + ids.push(id) + } else { + if (this.dataListSelections.length > 0) { + this.dataListSelections.forEach(item => { + ids.push(item.id) + }) } + } + this.$http.post('/resource/delete', { ids: ids }).then(res => { + console.log('删除成功', res) + this.getDataList() + }) + }, + // 导出 + exportHandle () { + var params = qs.stringify({ + token: Cookies.get('ucsToken'), + ...this.dataForm + }) + window.location.href = `${window.SITE_CONFIG.apiURL}${this.mixinViewModuleOptions.exportURL}?${params}` } -} \ No newline at end of file + } +} diff --git a/back/src/views/modules/ability/bsabilityservice.vue b/back/src/views/modules/ability/bsabilityservice.vue index 7dbb33ee..6b82d596 100644 --- a/back/src/views/modules/ability/bsabilityservice.vue +++ b/back/src/views/modules/ability/bsabilityservice.vue @@ -108,7 +108,7 @@ label="共享条件" header-align="center" align="center" - > + >