|
|
@ -15,93 +15,35 @@
|
|
|
|
</div> -->
|
|
|
|
</div> -->
|
|
|
|
<div class="ct-md">
|
|
|
|
<div class="ct-md">
|
|
|
|
<div class="mt5">
|
|
|
|
<div class="mt5">
|
|
|
|
申请类型:{{
|
|
|
|
申请类型:{{getDictDataLabel(DICT_TYPE.BS_BILL_TYPE,itemData.billType) || ''}}
|
|
|
|
getDictDataLabel(DICT_TYPE.BS_BILL_TYPE, itemData.billType) ||
|
|
|
|
|
|
|
|
''
|
|
|
|
|
|
|
|
}}
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="mt5">申请人:{{ itemData.nickname }}</div>
|
|
|
|
<div class="mt5">
|
|
|
|
<div class="mt5">项目名称: {{ itemData.projectName }}</div>
|
|
|
|
申请人:{{itemData.nickname}}
|
|
|
|
<div class="mt5">申请部门: {{ userInfo.dept.name }}</div>
|
|
|
|
|
|
|
|
<div style="margin-top: 0.3rem">
|
|
|
|
|
|
|
|
申请时间:
|
|
|
|
|
|
|
|
{{ dayjs(itemData.createTime).format('YY/MM/DD HH:ss') }}
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="mt5">
|
|
|
|
<div class="cr-bt" style="margin-top: 0.6rem">
|
|
|
|
项目名称: {{itemData.projectName}}
|
|
|
|
<div
|
|
|
|
</div>
|
|
|
|
class="tags"
|
|
|
|
<div class="mt5">
|
|
|
|
:style="`border: 1px solid ${
|
|
|
|
申请部门: {{userInfo.dept.name}}
|
|
|
|
handleFilterStatus(
|
|
|
|
</div>
|
|
|
|
DICT_TYPE.BS_EXPENSE_APPLY_STATUS,
|
|
|
|
<div style="margin-top: 0.3rem;">
|
|
|
|
itemData.status
|
|
|
|
申请时间: {{dayjs(itemData.createTime).format('YY/MM/DD HH:ss')}}
|
|
|
|
).color
|
|
|
|
|
|
|
|
};color:${
|
|
|
|
|
|
|
|
handleFilterStatus(
|
|
|
|
|
|
|
|
DICT_TYPE.BS_EXPENSE_APPLY_STATUS,
|
|
|
|
|
|
|
|
itemData.status
|
|
|
|
|
|
|
|
).color
|
|
|
|
|
|
|
|
}`"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
{{
|
|
|
|
|
|
|
|
handleFilterStatus(
|
|
|
|
|
|
|
|
DICT_TYPE.BS_EXPENSE_APPLY_STATUS,
|
|
|
|
|
|
|
|
itemData.status
|
|
|
|
|
|
|
|
).label
|
|
|
|
|
|
|
|
}}
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="cr-bt" style="margin-top: 0.6rem;">
|
|
|
|
|
|
|
|
<div class="tags" :style="`border: 1px solid ${handleFilterStatus(DICT_TYPE.BS_EXPENSE_APPLY_STATUS,itemData.status).color};color:${handleFilterStatus(DICT_TYPE.BS_EXPENSE_APPLY_STATUS,itemData.status).color}`"> {{handleFilterStatus(DICT_TYPE.BS_EXPENSE_APPLY_STATUS,itemData.status).label}}</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="box-rt">
|
|
|
|
<div class="box-rt">
|
|
|
|
<!-- {{listType}} -->
|
|
|
|
<!-- {{listType}} -->
|
|
|
|
<van-icon
|
|
|
|
<van-icon class="icon-box" v-hasPermi="[listType === 'myNewTrips' ? 'bs:expense-apply:myquery' : 'bs:expense-apply:query']" @click="handleShow(itemData)" name="eye-o" color="#05A9FF" size="25" />
|
|
|
|
class="icon-box"
|
|
|
|
|
|
|
|
v-hasPermi="[
|
|
|
|
|
|
|
|
listType === 'myNewTrips'
|
|
|
|
|
|
|
|
? 'bs:expense-apply:myquery'
|
|
|
|
|
|
|
|
: 'bs:expense-apply:query'
|
|
|
|
|
|
|
|
]"
|
|
|
|
|
|
|
|
@click="handleShow(itemData)"
|
|
|
|
|
|
|
|
name="eye-o"
|
|
|
|
|
|
|
|
color="#05A9FF"
|
|
|
|
|
|
|
|
size="25"
|
|
|
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- <van-icon class="icon-box" v-hasPermi="['bs:expense-apply:create']" v-if="listType !== 'myNewTrips'" @click="handleEdit(itemData.id,itemData.status)" name="edit" :color="!(itemData.status==0 || (itemData.status==3 && userInfo.id ==itemData.creator)) ?'#ccc':''" size="25" />
|
|
|
|
<!-- <van-icon class="icon-box" v-hasPermi="['bs:expense-apply:create']" v-if="listType !== 'myNewTrips'" @click="handleEdit(itemData.id,itemData.status)" name="edit" :color="!(itemData.status==0 || (itemData.status==3 && userInfo.id ==itemData.creator)) ?'#ccc':''" size="25" />
|
|
|
|
<van-icon class="icon-box" v-hasPermi="['bs:expense-apply:delete']" v-if="listType !== 'myNewTrips'" @click="handleDel(itemData.id,itemData.status,temData.creator)" name="delete-o" :color="!(itemData.status==0 || (itemData.status==3 && userInfo.id ==itemData.creator)) ?'#ccc':'#EC3359'" size="25" />
|
|
|
|
<van-icon class="icon-box" v-hasPermi="['bs:expense-apply:delete']" v-if="listType !== 'myNewTrips'" @click="handleDel(itemData.id,itemData.status,temData.creator)" name="delete-o" :color="!(itemData.status==0 || (itemData.status==3 && userInfo.id ==itemData.creator)) ?'#ccc':'#EC3359'" size="25" />
|
|
|
|
-->
|
|
|
|
-->
|
|
|
|
<van-icon
|
|
|
|
<van-icon class="icon-box" v-hasPermi="['bs:expense-apply:create']" v-if="listType == 'myNewTrips'" @click="handleEdit(itemData)" name="edit" :color="!(itemData.status==0 || (itemData.status==3 && userInfo.id ==itemData.creator)) ?'#ccc':''" size="25" />
|
|
|
|
class="icon-box"
|
|
|
|
<van-icon class="icon-box" v-hasPermi="['bs:expense-apply:mydelete']" v-if="listType == 'myNewTrips'" @click="handleDel(itemData.id,itemData.status,temData.creator)" name="delete-o" :color="!(itemData.status==0 || (itemData.status==3 && userInfo.id ==itemData.creator)) ?'#ccc':'#EC3359'" size="25" />
|
|
|
|
v-hasPermi="['bs:expense-apply:create']"
|
|
|
|
|
|
|
|
v-if="listType == 'myNewTrips'"
|
|
|
|
|
|
|
|
@click="handleEdit(itemData)"
|
|
|
|
|
|
|
|
name="edit"
|
|
|
|
|
|
|
|
:color="
|
|
|
|
|
|
|
|
!(
|
|
|
|
|
|
|
|
itemData.status == 0 ||
|
|
|
|
|
|
|
|
(itemData.status == 3 && userInfo.id == itemData.creator)
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
? '#ccc'
|
|
|
|
|
|
|
|
: ''
|
|
|
|
|
|
|
|
"
|
|
|
|
|
|
|
|
size="25"
|
|
|
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
<van-icon
|
|
|
|
|
|
|
|
class="icon-box"
|
|
|
|
|
|
|
|
v-hasPermi="['bs:expense-apply:mydelete']"
|
|
|
|
|
|
|
|
v-if="listType == 'myNewTrips'"
|
|
|
|
|
|
|
|
@click="handleDel(itemData.id, itemData.status, itemData.creator)"
|
|
|
|
|
|
|
|
name="delete-o"
|
|
|
|
|
|
|
|
:color="
|
|
|
|
|
|
|
|
!(
|
|
|
|
|
|
|
|
itemData.status == 0 ||
|
|
|
|
|
|
|
|
(itemData.status == 3 && userInfo.id == itemData.creator)
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
? '#ccc'
|
|
|
|
|
|
|
|
: '#EC3359'
|
|
|
|
|
|
|
|
"
|
|
|
|
|
|
|
|
size="25"
|
|
|
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
@ -109,8 +51,8 @@
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
<script>
|
|
|
|
import { handleFilterStatus } from '@/utils/dict'
|
|
|
|
import { handleFilterStatus } from "@/utils/dict";
|
|
|
|
import { deleteExpenseApply, deleteMyExpenseApply } from '@/api/bs/expenseApply'
|
|
|
|
import { deleteExpenseApply, deleteMyExpenseApply } from "@/api/bs/expenseApply";
|
|
|
|
import dayjs from 'dayjs'
|
|
|
|
import dayjs from 'dayjs'
|
|
|
|
import { Dialog } from 'vant'
|
|
|
|
import { Dialog } from 'vant'
|
|
|
|
export default {
|
|
|
|
export default {
|
|
|
@ -118,10 +60,13 @@ export default {
|
|
|
|
listType: String,
|
|
|
|
listType: String,
|
|
|
|
itemData: {
|
|
|
|
itemData: {
|
|
|
|
required: true,
|
|
|
|
required: true,
|
|
|
|
default: () => {}
|
|
|
|
default: () => { }
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
components: {
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
},
|
|
|
|
components: {},
|
|
|
|
|
|
|
|
data() {
|
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
return {
|
|
|
|
jumoStudentId: null
|
|
|
|
jumoStudentId: null
|
|
|
@ -132,11 +77,13 @@ export default {
|
|
|
|
this.handleUpdataInfo()
|
|
|
|
this.handleUpdataInfo()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
mounted() {},
|
|
|
|
mounted() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
computed: {
|
|
|
|
computed: {
|
|
|
|
userInfo() {
|
|
|
|
userInfo() {
|
|
|
|
return JSON.parse(window.localStorage.getItem('userInfo') || { dept: {} })
|
|
|
|
return JSON.parse(window.localStorage.getItem('userInfo') || { dept: {} })
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
methods: {
|
|
|
|
handleShow(obj) {
|
|
|
|
handleShow(obj) {
|
|
|
@ -148,7 +95,7 @@ export default {
|
|
|
|
},
|
|
|
|
},
|
|
|
|
handleEdit(obj) {
|
|
|
|
handleEdit(obj) {
|
|
|
|
const { id, status, billType, creator } = obj
|
|
|
|
const { id, status, billType, creator } = obj
|
|
|
|
if (!(status == 0 || (status == 3 && this.userInfo.id == creator))) {
|
|
|
|
if (!(status==0 || (status ==3 && this.userInfo.id ==creator))) {
|
|
|
|
return
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
this.jumoStudentId = id
|
|
|
|
this.jumoStudentId = id
|
|
|
@ -157,33 +104,31 @@ export default {
|
|
|
|
query: { id, type: 'edit', listType: this.listType, billType }
|
|
|
|
query: { id, type: 'edit', listType: this.listType, billType }
|
|
|
|
})
|
|
|
|
})
|
|
|
|
},
|
|
|
|
},
|
|
|
|
handleDel(id, status, creator) {
|
|
|
|
handleDel(id, status,creator) {
|
|
|
|
if (!(status == 0 || (status == 3 && this.userInfo.id == creator))) {
|
|
|
|
if (!(status==0 || (status ==3 && this.userInfo.id ==creator))) {
|
|
|
|
return
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Dialog.confirm({
|
|
|
|
Dialog.confirm({
|
|
|
|
title: '提示',
|
|
|
|
title: '提示',
|
|
|
|
message: '你确定要删除吗?'
|
|
|
|
message: '你确定要删除吗?',
|
|
|
|
}).then(() => {
|
|
|
|
|
|
|
|
let api =
|
|
|
|
|
|
|
|
this.listType === 'myNewTrips'
|
|
|
|
|
|
|
|
? deleteMyExpenseApply
|
|
|
|
|
|
|
|
: deleteExpenseApply
|
|
|
|
|
|
|
|
api(id).then(() => {
|
|
|
|
|
|
|
|
this.$emit('onAllRefresh')
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
.then(() => {
|
|
|
|
|
|
|
|
let api = this.listType === 'myNewTrips' ? deleteMyExpenseApply : deleteExpenseApply
|
|
|
|
|
|
|
|
api(id).then(() => {
|
|
|
|
|
|
|
|
this.$emit('onAllRefresh')
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
})
|
|
|
|
},
|
|
|
|
},
|
|
|
|
handleFilterStatus,
|
|
|
|
handleFilterStatus,
|
|
|
|
dayjs,
|
|
|
|
dayjs,
|
|
|
|
handleUpdataInfo() {
|
|
|
|
handleUpdataInfo() {
|
|
|
|
this.jumoStudentId = null
|
|
|
|
this.jumoStudentId = null
|
|
|
|
this.$emit('onUpdataInfo', this.itemData.id)
|
|
|
|
this.$emit('onUpdataInfo', this.itemData.id)
|
|
|
|
}
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
@import '@/assets/style/common/newList.scss';
|
|
|
|
@import '@/assets/style/common/newList.scss';
|
|
|
|
</style>
|
|
|
|
</style>
|