// 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; let params = { page: this.mixinViewModuleOptions.getDataListIsPage ? this.page : null, limit: this.mixinViewModuleOptions.getDataListIsPage ? this.limit : null, ...this.dataForm, }; params = this.dealObjectValue(params); this.mixinViewModuleOptions.getDataListURL ? this.$http .get(this.mixinViewModuleOptions.getDataListURL, { params: params, }) .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; }) : ""; }, dealObjectValue(obj) { const param = {}; if (obj === null || obj === undefined || obj === "") return param; for (var key in obj) { if (obj[key] !== null && obj[key] !== undefined && obj[key] !== "") { param[key] = obj[key]; } } return param; }, // 多选 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}` }, }, };