7 changed files with 378 additions and 230 deletions
			
			
		| @ -1,178 +1,178 @@ | |||
| // import Cookies from 'js-cookie'
 | |||
| 
 | |||
| import qs from 'qs' | |||
| 
 | |||
| // import qs from 'qs'
 | |||
| export default { | |||
|   data() { | |||
|     /* eslint-disable */ | |||
|     return { | |||
|       // 设置属性
 | |||
|       mixinViewModuleOptions: { | |||
|         createdIsNeed: true,       // 此页面是否在创建时,调用查询数据列表接口?
 | |||
|         activatedIsNeed: false,    // 此页面是否在激活(进入)时,调用查询数据列表接口?
 | |||
|         getDataListURL: '',       // 数据列表接口,API地址
 | |||
|         getDataListIsPage: false, // 数据列表接口,是否需要分页?
 | |||
|         deleteURL: '',            // 删除接口,API地址
 | |||
|         deleteIsBatch: false,     // 删除接口,是否需要批量?
 | |||
|         deleteIsBatchKey: 'id',   // 删除接口,批量状态下由那个key进行标记操作?比如:pid,uid...
 | |||
|         exportURL: ''             // 导出接口,API地址
 | |||
|       }, | |||
|       // 默认属性
 | |||
|       dataForm: {},               // 查询条件
 | |||
|       dataList: [],               // 数据列表
 | |||
|       order: '',                  // 排序,asc/desc
 | |||
|       orderField: '',             // 排序,字段
 | |||
|       page: 1,                    // 当前页码
 | |||
|       limit: 10,                  // 每页数
 | |||
|       total: 0,                   // 总条数
 | |||
|       dataListLoading: false,     // 数据列表,loading状态
 | |||
|       dataListSelections: [],     // 数据列表,多选项
 | |||
|       addOrUpdateVisible: false,   // 新增/更新,弹窗visible状态
 | |||
|       deleteParams:{} | |||
|     } | |||
|     /* eslint-enable */ | |||
|   }, | |||
|   created() { | |||
|     if (this.mixinViewModuleOptions.createdIsNeed) { | |||
|       this.getDataList() | |||
|     } | |||
|   }, | |||
|   activated() { | |||
|     if (this.mixinViewModuleOptions.activatedIsNeed) { | |||
|       this.getDataList() | |||
|     } | |||
|   }, | |||
|   methods: { | |||
|     // 获取数据列表
 | |||
|     getDataList() { | |||
|       this.dataListLoading = true | |||
|       this.mixinViewModuleOptions.getDataListURL ? this.$http.get( | |||
|         this.mixinViewModuleOptions.getDataListURL, { | |||
|           params: { | |||
|             // order: this.order,
 | |||
|             // orderField: this.orderField,
 | |||
|             page: this.mixinViewModuleOptions.getDataListIsPage ? this.page : null, | |||
|             limit: this.mixinViewModuleOptions.getDataListIsPage ? this.limit : null, | |||
|             ...this.dataForm | |||
|           } | |||
|         } | |||
|       ).then(({ data: res }) => { | |||
|         this.dataListLoading = false | |||
|         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 | |||
|         res.data.drgsName ? this.drgsName = res.data.drgsName : '' | |||
|         this.total = this.mixinViewModuleOptions.getDataListIsPage ? res.data.total : 0 | |||
|       }).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.getDataList() | |||
|     }, | |||
|     // 分页, 每页条数
 | |||
|     pageSizeChangeHandle(val) { | |||
|       this.page = 1 | |||
|       this.limit = val | |||
|       this.getDataList() | |||
|     }, | |||
|     // 分页, 当前页
 | |||
|     pageCurrentChangeHandle(val) { | |||
|       this.page = val | |||
|       this.getDataList() | |||
|     }, | |||
|     // 初始化查询
 | |||
|     getDataListInitial() { | |||
|       this.page = 1 | |||
|       this.getDataList() | |||
|     }, | |||
|     // 新增 / 修改
 | |||
|     addOrUpdateHandle(id, params, title, noParams) { | |||
|       this.addOrUpdateVisible = true | |||
|       this.$nextTick(() => { | |||
|         this.$refs.addOrUpdate.dataForm.id = id | |||
|         noParams ? '' : this.$refs.addOrUpdate.params = params || {} | |||
|         this.$refs.addOrUpdate.dataForm.title = title | |||
|         // 存在BUG,params无法覆盖,弃用
 | |||
|         // this.$refs.addOrUpdate.dataForm = { id, ...params, title }
 | |||
|         this.$refs.addOrUpdate.init() | |||
|       }) | |||
|     }, | |||
|     // 分配人员
 | |||
|     assignPeopleHandle(scope) { | |||
|       this.currentPeopleId = scope.id | |||
|       this.dialogVisible = true | |||
|       // 添加科研人员时,获取人员列表
 | |||
|       this.getUserList(scope.id) | |||
|     }, | |||
|     // 关闭当前窗口
 | |||
|     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, callback) { | |||
|       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(() => { | |||
|         (Array.isArray(id) ? this.$http({ | |||
|           url: this.mixinViewModuleOptions.deleteURL, | |||
|           method: 'delete', | |||
|           data: id | |||
|         }) : this.$http.delete(this.mixinViewModuleOptions.deleteURL + `/${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: () => { | |||
|               callback ? callback() : this.getDataList() | |||
|             } | |||
|           }) | |||
|         }).catch(() => {}) | |||
|       }).catch(() => {}) | |||
|     }, | |||
|     // 导出
 | |||
|     exportHandle() { | |||
|       // var params = qs.stringify({
 | |||
|       //   token: Cookies.get('qg-token'),
 | |||
|       //   ...this.dataForm
 | |||
|       // })
 | |||
|       // window.location.href = `${window.SITE_CONFIG.apiURL}${this.mixinViewModuleOptions.exportURL}?${params}`
 | |||
|     } | |||
|   } | |||
| } | |||
| // import Cookies from 'js-cookie'
 | |||
| 
 | |||
| import qs from 'qs' | |||
| 
 | |||
| // import qs from 'qs'
 | |||
| export default { | |||
|   data() { | |||
|     /* eslint-disable */ | |||
|     return { | |||
|       // 设置属性
 | |||
|       mixinViewModuleOptions: { | |||
|         createdIsNeed: true,       // 此页面是否在创建时,调用查询数据列表接口?
 | |||
|         activatedIsNeed: false,    // 此页面是否在激活(进入)时,调用查询数据列表接口?
 | |||
|         getDataListURL: '',       // 数据列表接口,API地址
 | |||
|         getDataListIsPage: false, // 数据列表接口,是否需要分页?
 | |||
|         deleteURL: '',            // 删除接口,API地址
 | |||
|         deleteIsBatch: false,     // 删除接口,是否需要批量?
 | |||
|         deleteIsBatchKey: 'id',   // 删除接口,批量状态下由那个key进行标记操作?比如:pid,uid...
 | |||
|         exportURL: ''             // 导出接口,API地址
 | |||
|       }, | |||
|       // 默认属性
 | |||
|       dataForm: {},               // 查询条件
 | |||
|       dataList: [],               // 数据列表
 | |||
|       order: '',                  // 排序,asc/desc
 | |||
|       orderField: '',             // 排序,字段
 | |||
|       page: 1,                    // 当前页码
 | |||
|       limit: 10,                  // 每页数
 | |||
|       total: 0,                   // 总条数
 | |||
|       dataListLoading: false,     // 数据列表,loading状态
 | |||
|       dataListSelections: [],     // 数据列表,多选项
 | |||
|       addOrUpdateVisible: false,   // 新增/更新,弹窗visible状态
 | |||
|       deleteParams:{} | |||
|     } | |||
|     /* eslint-enable */ | |||
|   }, | |||
|   created() { | |||
|     if (this.mixinViewModuleOptions.createdIsNeed) { | |||
|       this.getDataList() | |||
|     } | |||
|   }, | |||
|   activated() { | |||
|     if (this.mixinViewModuleOptions.activatedIsNeed) { | |||
|       this.getDataList() | |||
|     } | |||
|   }, | |||
|   methods: { | |||
|     // 获取数据列表
 | |||
|     getDataList() { | |||
|       this.dataListLoading = true | |||
|       this.mixinViewModuleOptions.getDataListURL ? this.$http.get( | |||
|         this.mixinViewModuleOptions.getDataListURL, { | |||
|           params: { | |||
|             // order: this.order,
 | |||
|             // orderField: this.orderField,
 | |||
|             page: this.mixinViewModuleOptions.getDataListIsPage ? this.page : null, | |||
|             limit: this.mixinViewModuleOptions.getDataListIsPage ? this.limit : null, | |||
|             ...this.dataForm | |||
|           } | |||
|         } | |||
|       ).then(({ data: res }) => { | |||
|         this.dataListLoading = false | |||
|         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 | |||
|         res.data.drgsName ? this.drgsName = res.data.drgsName : '' | |||
|         this.total = this.mixinViewModuleOptions.getDataListIsPage ? res.data.total : 0 | |||
|       }).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.getDataList() | |||
|     }, | |||
|     // 分页, 每页条数
 | |||
|     pageSizeChangeHandle(val) { | |||
|       this.page = 1 | |||
|       this.limit = val | |||
|       this.getDataList() | |||
|     }, | |||
|     // 分页, 当前页
 | |||
|     pageCurrentChangeHandle(val) { | |||
|       this.page = val | |||
|       this.getDataList() | |||
|     }, | |||
|     // 初始化查询
 | |||
|     getDataListInitial() { | |||
|       this.page = 1 | |||
|       this.getDataList() | |||
|     }, | |||
|     // 新增 / 修改
 | |||
|     addOrUpdateHandle(id, params, title, noParams) { | |||
|       this.addOrUpdateVisible = true | |||
|       this.$nextTick(() => { | |||
|         this.$refs.addOrUpdate.dataForm.id = id | |||
|         noParams ? '' : this.$refs.addOrUpdate.params = params || {} | |||
|         this.$refs.addOrUpdate.dataForm.title = title | |||
|         // 存在BUG,params无法覆盖,弃用
 | |||
|         // this.$refs.addOrUpdate.dataForm = { id, ...params, title }
 | |||
|         this.$refs.addOrUpdate.init() | |||
|       }) | |||
|     }, | |||
|     // 分配人员
 | |||
|     assignPeopleHandle(scope) { | |||
|       this.currentPeopleId = scope.id | |||
|       this.dialogVisible = true | |||
|       // 添加科研人员时,获取人员列表
 | |||
|       this.getUserList(scope.id) | |||
|     }, | |||
|     // 关闭当前窗口
 | |||
|     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, callback) { | |||
|       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(() => { | |||
|         (Array.isArray(id) ? this.$http({ | |||
|           url: this.mixinViewModuleOptions.deleteURL, | |||
|           method: 'delete', | |||
|           data: id | |||
|         }) : this.$http.delete(this.mixinViewModuleOptions.deleteURL + `/${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: () => { | |||
|               callback ? callback() : this.getDataList() | |||
|             } | |||
|           }) | |||
|         }).catch(() => {}) | |||
|       }).catch(() => {}) | |||
|     }, | |||
|     // 导出
 | |||
|     exportHandle() { | |||
|       // var params = qs.stringify({
 | |||
|       //   token: Cookies.get('qg-token'),
 | |||
|       //   ...this.dataForm
 | |||
|       // })
 | |||
|       // window.location.href = `${window.SITE_CONFIG.apiURL}${this.mixinViewModuleOptions.exportURL}?${params}`
 | |||
|     } | |||
|   } | |||
| } | |||
|  | |||
					Loading…
					
					
				
		Reference in new issue