Merge pull request 'dd' (#594) from dd into master

Reviewed-on: http://git.feashow.cn/clay/mosr-web/pulls/594
This commit is contained in:
2024-07-18 09:49:11 +00:00
4 changed files with 123 additions and 89 deletions

View File

@@ -220,7 +220,11 @@ const getList = async () => {
if (api) {
localData.loading = true
try {
const {code, data, msg} = await requestList(api, queryParmas)
const {code, data, msg} = await requestList(api, queryParmas).then(res=>{
console.log(res)
return res
})
console.log(code,data,msg)
if (code === 1000) {
if (data.rows) {
localData.list = data.rows
@@ -239,6 +243,10 @@ const getList = async () => {
localData.loading = false
}
} catch (error) {
console.log("error",error)
if (!error){
return
}
ElNotification({
title: '提示',
message: '请求数据失败',
@@ -305,6 +313,7 @@ onMounted(() => {
getList()
})
</script>
<style lang="scss" scoped>

View File

@@ -6,96 +6,105 @@ import {getToken, removeToken} from "./auth";
axios.defaults.headers['Content-Type'] = 'application/json'
const serveice = axios.create({
baseURL: import.meta.env.VITE_BASE_URL,
timeout: 6000
baseURL: import.meta.env.VITE_BASE_URL,
timeout: 6000
})
const axiosCanceler = new AxiosCanceler()
serveice.interceptors.request.use(config => {
const ACCESS_TOKEN = getToken() || ''
if (ACCESS_TOKEN !== undefined && ACCESS_TOKEN !== '') {
config.headers['Authorization'] = ACCESS_TOKEN
}
// 检查是否有重复请求, 有则取消掉
axiosCanceler.removePendingRequest(config)
// 将请求加入pendingMap
axiosCanceler.addPendingRequest(config)
return config
const ACCESS_TOKEN = getToken() || ''
if (ACCESS_TOKEN !== undefined && ACCESS_TOKEN !== '') {
config.headers['Authorization'] = ACCESS_TOKEN
}
// 检查是否有重复请求, 有则取消掉
axiosCanceler.removePendingRequest(config)
// 将请求加入pendingMap
axiosCanceler.addPendingRequest(config)
return config
}, error => {
Promise.reject(error)
Promise.reject(error)
})
serveice.interceptors.response.use(response => {
axiosCanceler.removePendingRequest(response.config)
//二进制数据直接返回
if (response.request.responseType === 'blob' || response.request.responseType === 'arraybuffer') {
return response.data
}
axiosCanceler.removePendingRequest(response.config)
console.log(response,"response")
//二进制数据直接返回
if (response.request.responseType === 'blob' || response.request.responseType === 'arraybuffer') {
return response.data
}
console.log("1")
return response.data
}, error => {
let response = error.response
const status = response.status;
switch (status) {
case 401:
// ElMessageBox.confirm('登录状态已过期,请重新登录', '系统提示', {
// confirmButtonText: '重新登录',
// cancelButtonText: '取消',
// type: 'warning',
// closeOnClickModal: false
// }).then(() => {
removeToken()
let path = window.location.pathname;
let query = window.location.search
sessionStorage.setItem('toView', JSON.stringify({
path: path,
query: query
}))
window.location.href = `${window.location.origin}/api/auth/cas/login`
// })
return Promise.reject('会话已过期,请重新登录')
case 402:
break;
case 403:
ElNotification({
title: '系统提示',
message: response.data.msg,
type: 'warning'
})
break;
case 404:
ElNotification({
title: '系统提示',
message: '不存在的地址',
type: 'error'
})
break;
case 405:
ElNotification({
title: '系统提示',
message: '传输格式错误,请检查',
type: 'error'
})
break;
case 511:
ElNotification({
title: '系统提示',
message: '禁止访问',
type: 'error'
})
removeToken()
window.location = '/forbidden'
break;
case 500:
if (response.data) {
return response.data
} else {
ElNotification({
title: '系统提示',
message: '系统未知错误',
type: 'error'
})
break;
}
}
return Promise.reject(error)
console.log(error)
let response = error.response
if (!response) {
return Promise.reject()
}
const status = response.status;
if (!status) {
return Promise.reject()
}
switch (status) {
case 401:
// ElMessageBox.confirm('登录状态已过期,请重新登录', '系统提示', {
// confirmButtonText: '重新登录',
// cancelButtonText: '取消',
// type: 'warning',
// closeOnClickModal: false
// }).then(() => {
removeToken()
let path = window.location.pathname;
let query = window.location.search
sessionStorage.setItem('toView', JSON.stringify({
path: path,
query: query
}))
window.location.href = `${window.location.origin}/api/auth/cas/login`
// })
return Promise.reject('会话已过期,请重新登录')
case 402:
break;
case 403:
ElNotification({
title: '系统提示',
message: response.data.msg,
type: 'warning'
})
break;
case 404:
ElNotification({
title: '系统提示',
message: '不存在的地址',
type: 'error'
})
break;
case 405:
ElNotification({
title: '系统提示',
message: '传输格式错误,请检查',
type: 'error'
})
break;
case 511:
ElNotification({
title: '系统提示',
message: '禁止访问',
type: 'error'
})
removeToken()
window.location = '/forbidden'
break;
case 500:
if (response.data) {
return response.data
} else {
ElNotification({
title: '系统提示',
message: '系统未知错误',
type: 'error'
})
break;
}
}
return Promise.reject(error)
})
export default serveice

View File

@@ -305,7 +305,9 @@ const search = (val) => {
tableConfig.params = {...val, projectId: route.query.id}
tableIns.value.refresh()
}
onActivated(()=>{
init()
})
</script>
<style scoped>

View File

@@ -133,7 +133,7 @@ const rules = reactive({
digest: [{required: true, message: '请输入摘要', trigger: 'blur'}],
afterTax: [{required: true, message: '请输入税后余额', trigger: 'blur'}]
})
const tableForm = reactive({
const tableForm = ref({
tableData: [
{
projectId: route.query.id,
@@ -164,10 +164,10 @@ const handleAdd = () => {
digest: '',
afterTax: null
}
tableForm.tableData.push(row)
tableForm.value.tableData.push(row)
}
const handleDelete = (index) => {
tableForm.tableData.splice(index, 1)
tableForm.value.tableData.splice(index, 1)
}
const handleSubmit = (instance) => {
if (!instance) return
@@ -181,10 +181,10 @@ const handleSubmit = (instance) => {
return;
}
instance.clearValidate()
tableForm.tableData.forEach(item => {
tableForm.value.tableData.forEach(item => {
item.projectName = projectName.value
})
const res = await addLedger(tableForm.tableData)
const res = await addLedger(tableForm.value.tableData)
ElNotification({
title: '提示',
message: res.msg,
@@ -204,6 +204,20 @@ const handleSubmit = (instance) => {
const handleBack = () => {
history.back()
}
onActivated(()=>{
tableForm.value = {
tableData: [
{
projectId: route.query.id,
time: '',
projectCost: '',
researchStage: '',
digest: '',
afterTax: null
}
]
}
})
</script>
<style scoped lang="scss">
:deep(.el-table--enable-row-transition) {