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