刘翔宇-旅管家 4 years ago
parent 2e347769c9
commit 95605ca3f4

@ -20,6 +20,7 @@
"html2canvas": "^1.4.1", "html2canvas": "^1.4.1",
"js-cookie": "2.2.0", "js-cookie": "2.2.0",
"less": "^3.13.1", "less": "^3.13.1",
"moment": "^2.29.4",
"normalize.css": "7.0.0", "normalize.css": "7.0.0",
"nprogress": "0.2.0", "nprogress": "0.2.0",
"path-to-regexp": "2.4.0", "path-to-regexp": "2.4.0",

@ -63,7 +63,7 @@ export default {
return { width: '100%', marginBottom: "20px"} return { width: '100%', marginBottom: "20px"}
} }
}, },
btnWidth:{ btnWidth:{
type:Number, type:Number,
default:190 default:190
@ -93,6 +93,9 @@ export default {
selectClick(selection, row){ selectClick(selection, row){
this.$emit('select',selection, row) this.$emit('select',selection, row)
}, },
rowClick(selection, row){
this.$emit('rowClick',selection, row)
},
cellClick(row, column, cell){ cellClick(row, column, cell){
this.$emit('cellClick',row, column, cell) this.$emit('cellClick',row, column, cell)
}, },
@ -117,7 +120,7 @@ export default {
mounted() { mounted() {
}, },
render(h) { render(h) {
let {summaryMethod,cellClick,btnWidth,selectClick,height,createIndexRow,tableStyle,treeProps,showSummary,showHeader,$scopedSlots,showIndex,defaultExpandAll,headerCellStyle,headerRowStyle,rowStyle,cellStyle,indent,tableHeight,tableItem,list,deleteClick,editorClick} = this let {summaryMethod,cellClick,btnWidth,selectClick,height,createIndexRow,tableStyle,treeProps,showSummary,showHeader,$scopedSlots,showIndex,defaultExpandAll,headerCellStyle,headerRowStyle,rowStyle,cellStyle,indent,tableHeight,tableItem,list,deleteClick,editorClick,rowClick} = this
return ( return (
<div class="table-tree"> <div class="table-tree">
{ tableItem && tableItem.length>0 ? { tableItem && tableItem.length>0 ?
@ -140,7 +143,7 @@ export default {
default-expand-all={defaultExpandAll} default-expand-all={defaultExpandAll}
tree-props={treeProps} tree-props={treeProps}
fit={true} fit={true}
on={{['select']:selectClick,['cell-click']:cellClick}}> on={{['select']:selectClick,['cell-click']:cellClick,['row-click']:rowClick}}>
{ {
// //
showIndex ? createIndexRow() : '' showIndex ? createIndexRow() : ''
@ -285,4 +288,3 @@ export default {
<style scoped lang="scss"> <style scoped lang="scss">
</style> </style>

@ -43,6 +43,10 @@ Vue.component('xy-dialog',xyDialog)
Vue.config.productionTip = false Vue.config.productionTip = false
import moment from 'moment'
Vue.prototype.$moment = moment;
new Vue({ new Vue({
el: '#app', el: '#app',
router, router,

@ -520,6 +520,10 @@ export default {
}) })
}, },
}, },
created() {
this.select.year=this.$moment().format('YYYY');
},
mounted() { mounted() {
this.getTypes() this.getTypes()
this.getDepartment() this.getDepartment()

@ -232,6 +232,10 @@ export default {
}) })
}, },
}, },
created() {
this.select.year=this.$moment().format('YYYY');
},
mounted() { mounted() {
this.getTypes() this.getTypes()
this.getDepartment() this.getDepartment()

@ -77,6 +77,19 @@
<el-input-number :precision="2" :controls="false" placeholder="请填写质保金" v-model="form.guaranteeMoney" style="width: 300px;"/> <el-input-number :precision="2" :controls="false" placeholder="请填写质保金" v-model="form.guaranteeMoney" style="width: 300px;"/>
</div> </div>
</div> </div>
</template>
<template v-slot:date>
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;">*</span>
签订日期
</div>
<div class="xy-table-item-content">
<el-date-picker style="width: 300px;" value-format="yyyy-MM-dd" v-model="form.date" type="date">
</el-date-picker>
</div>
</div>
</template> </template>
<template v-slot:guaranteeYear> <template v-slot:guaranteeYear>
<div class="xy-table-item"> <div class="xy-table-item">
@ -174,11 +187,15 @@ export default {
time:[], time:[],
guaranteeMoney:'', guaranteeMoney:'',
guaranteeYear:'', guaranteeYear:'',
date:""
}, },
rules:{ rules:{
number:[ number:[
{required:true,message:"必填"} {required:true,message:"必填"}
], ],
date:[
{required:true,message:"必填"}
],
supply:[ supply:[
{required:true,message:"必填"} {required:true,message:"必填"}
], ],
@ -274,7 +291,8 @@ export default {
guarantee_money:this.form.guaranteeMoney, guarantee_money:this.form.guaranteeMoney,
guarantee_year:this.form.guaranteeYear, guarantee_year:this.form.guaranteeYear,
start_date:this.form.time[0], start_date:this.form.time[0],
end_date:this.form.time[1] end_date:this.form.time[1],
date:this.form.date
}).then(res=>{ }).then(res=>{
this.isShow = false this.isShow = false
Message({ Message({

@ -23,6 +23,16 @@
<div class="base-info-item-content">{{detail.purchase_type.value}}</div> <div class="base-info-item-content">{{detail.purchase_type.value}}</div>
</div> </div>
</div> </div>
<div style="display: flex;justify-content: space-between;">
<div class="base-info-item" style="flex-basis: 50%">
<div class="base-info-item-title">签订时间</div>
<div class="base-info-item-content">{{detail.date}}</div>
</div>
<div class="base-info-item" style="flex-basis: 50%">
<div class="base-info-item-title">服务时间</div>
<div class="base-info-item-content">{{detail.start_date}}{{detail.end_date}}</div>
</div>
</div>
<div class="base-info-item"> <div class="base-info-item">
<div class="base-info-item-title">项目预算</div> <div class="base-info-item-title">项目预算</div>
<div class="base-info-item-content">{{moneyFormat(detail.plan_price)}}</div> <div class="base-info-item-content">{{moneyFormat(detail.plan_price)}}</div>

@ -103,6 +103,16 @@
</div> </div>
</div> </div>
</template> </template>
<template v-slot:date>
<div class="xy-table-item">
<div class="xy-table-item-label">合同签订日期
</div>
<div class="xy-table-item-content">
<el-date-picker style="width: 300px;" value-format="yyyy-MM-dd" v-model="detail.date" type="date">
</el-date-picker>
</div>
</div>
</template>
<template v-slot:req_status v-if="adminEdit"> <template v-slot:req_status v-if="adminEdit">
<div class="xy-table-item"> <div class="xy-table-item">
@ -219,7 +229,7 @@
} }
} }
return { return {
userList: ["liuxiangyu", "zhushulan","admin","jiangjiao"], userList: ["liuxiangyu", "zhushulan", "admin", "jiangjiao"],
user: null, user: null,
adminEdit: false, adminEdit: false,
isFocus: false, isFocus: false,
@ -414,7 +424,8 @@
id: id id: id
}) })
this.contrantId = res.id this.contrantId = res.id
this.detail = { this.detail = {
date:res.date,
req_status: res.req_status, req_status: res.req_status,
purchase_status: res.purchase_status, purchase_status: res.purchase_status,
join_status: res.join_status, join_status: res.join_status,
@ -456,7 +467,8 @@
req_status: this.detail.req_status, req_status: this.detail.req_status,
purchase_status: this.detail.purchase_status, purchase_status: this.detail.purchase_status,
join_status: this.detail.join_status, join_status: this.detail.join_status,
invite_status: this.detail.invite_status, invite_status: this.detail.invite_status,
date:this.detail.date,
contract_plan_links: this.detail.plan.map(item => { contract_plan_links: this.detail.plan.map(item => {
return item.value return item.value
}) })
@ -474,7 +486,7 @@
computed: { computed: {
}, },
mounted() { mounted() {
let that = this; let that = this;
getInfo().then(response => { getInfo().then(response => {
console.log(response) console.log(response)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -123,7 +123,7 @@ export default {
data() { data() {
return { return {
select:{ select:{
year:'2022' year:''
}, },
statistic:'', statistic:'',
department_id: [], department_id: [],
@ -155,7 +155,7 @@ year:'2022'
}, },
{ {
label:'合计金额(元)', label:'合计金额(元)',
width: 140, width: 120,
align:'right', align:'right',
sortable:false, sortable:false,
prop:'money_total', prop:'money_total',
@ -165,7 +165,7 @@ year:'2022'
}, },
{ {
label:'已使用(元)', label:'已使用(元)',
width: 140, width: 120,
align:'right', align:'right',
sortable:false, sortable:false,
prop:'use_money_total', prop:'use_money_total',
@ -176,12 +176,11 @@ year:'2022'
{ {
label:'进展情况', label:'进展情况',
sortable:false, sortable:false,
minWidth: 220,
align: 'left', align: 'left',
customFn:(row)=>{ customFn:(row)=>{
return ( return (
<div> <div>
<el-progress percentage={Number(((row.use_money_total/row.money_total)*100||0).toFixed(2))}> </el-progress> <el-progress percentage={Number(((row.use_money_total/row.money_total)*100||0).toFixed(2))}> </el-progress>
</div> </div>
) )
} }
@ -231,8 +230,10 @@ year:'2022'
} }
}, },
created() { created() {
this.getNotices() this.select.year=this.$moment().format('YYYY');
this.getStatistic() this.getNotices();
this.getStatistic();
getInfo().then(response => { getInfo().then(response => {
console.log(response) console.log(response)

@ -12,7 +12,15 @@
<span> <span>
<Input v-model="keyword" placeholder="请输入关键字" style="width: 180px"></Input> <Input v-model="keyword" placeholder="请输入关键字" style="width: 180px"></Input>
</span> </span>
<span style="padding: 0 6px;word-break: keep-all;">
状态
</span>
<Select v-model="status" clearable placeholder="请选择" style="width:100px;">
<Option v-for="item in [{label:'',value:0},{label:'',value:1}]" :key="item.value"
:value="item.value">{{ item.label }}
</Option>
</Select>
<Button type="primary" style="margin-left: 10px" ghost>重置</Button> <Button type="primary" style="margin-left: 10px" ghost>重置</Button>
<Button type="primary" style="margin-left: 10px" @click="getFundLogs"></Button> <Button type="primary" style="margin-left: 10px" @click="getFundLogs"></Button>
</slot> </slot>
@ -53,6 +61,7 @@ export default {
}, },
data() { data() {
return { return {
status:0,
keyword:'', keyword:'',
selectDate:'', selectDate:'',
list:[], list:[],
@ -124,7 +133,7 @@ export default {
}, },
async getFundLogs(){ async getFundLogs(){
const res = await getFundLog({page_size:10,page:this.pageIndex,keyword:this.keyword,date:this.selectDate}) const res = await getFundLog({page_size:10,page:this.pageIndex,keyword:this.keyword,date:this.selectDate,status:this.status})
this.list = res.data this.list = res.data
this.total = res.total this.total = res.total
}, },

@ -177,6 +177,10 @@ export default {
console.log(res) console.log(res)
} }
}, },
created() {
this.select.year=this.$moment().format('YYYY');
},
async mounted() { async mounted() {
await this.getType() await this.getType()
await this.getDepartment() await this.getDepartment()

Loading…
Cancel
Save