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