|
|
|
@ -56,16 +56,8 @@
|
|
|
|
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>合同服务时间
|
|
|
|
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>合同服务时间
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="xy-table-item-content">
|
|
|
|
<div class="xy-table-item-content">
|
|
|
|
<el-date-picker
|
|
|
|
<el-date-picker v-model="form.time" style="width: 300px;" value-format="yyyy-MM-dd" type="daterange"
|
|
|
|
v-model="form.time"
|
|
|
|
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" @change="dateRangePick" />
|
|
|
|
style="width: 300px;"
|
|
|
|
|
|
|
|
value-format="yyyy-MM-dd"
|
|
|
|
|
|
|
|
type="daterange"
|
|
|
|
|
|
|
|
range-separator="-"
|
|
|
|
|
|
|
|
start-placeholder="开始日期"
|
|
|
|
|
|
|
|
end-placeholder="结束日期"
|
|
|
|
|
|
|
|
@change="dateRangePick"
|
|
|
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
@ -84,7 +76,8 @@
|
|
|
|
<div class="xy-table-item-label" style="width: 200px">保函金额
|
|
|
|
<div class="xy-table-item-label" style="width: 200px">保函金额
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="xy-table-item-content xy-table-item-price">
|
|
|
|
<div class="xy-table-item-content xy-table-item-price">
|
|
|
|
<el-input-number v-model="form.assurance_money" :controls="false" :precision="2" placeholder="请输入保函金额" style="width: 300px;" />
|
|
|
|
<el-input-number v-model="form.assurance_money" :controls="false" :precision="2" placeholder="请输入保函金额"
|
|
|
|
|
|
|
|
style="width: 300px;" />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
@ -93,7 +86,8 @@
|
|
|
|
<div class="xy-table-item-label" style="width: 200px">保函有效期
|
|
|
|
<div class="xy-table-item-label" style="width: 200px">保函有效期
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="xy-table-item-content">
|
|
|
|
<div class="xy-table-item-content">
|
|
|
|
<el-date-picker v-model="form.assurance_expire" value-format="yyyy-MM-dd" placeholder="请输入保函有效期" style="width: 300px;" />
|
|
|
|
<el-date-picker v-model="form.assurance_expire" value-format="yyyy-MM-dd" placeholder="请输入保函有效期"
|
|
|
|
|
|
|
|
style="width: 300px;" />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
@ -104,13 +98,8 @@
|
|
|
|
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>质保金
|
|
|
|
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>质保金
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="xy-table-item-content xy-table-item-price">
|
|
|
|
<div class="xy-table-item-content xy-table-item-price">
|
|
|
|
<el-input-number
|
|
|
|
<el-input-number v-model="form.guaranteeMoney" :precision="2" :controls="false" placeholder="请填写质保金"
|
|
|
|
v-model="form.guaranteeMoney"
|
|
|
|
style="width: 300px;" />
|
|
|
|
:precision="2"
|
|
|
|
|
|
|
|
:controls="false"
|
|
|
|
|
|
|
|
placeholder="请填写质保金"
|
|
|
|
|
|
|
|
style="width: 300px;"
|
|
|
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
@ -120,7 +109,8 @@
|
|
|
|
是否为延续类项目
|
|
|
|
是否为延续类项目
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="xy-table-item-content">
|
|
|
|
<div class="xy-table-item-content">
|
|
|
|
<el-switch v-model="form.has_continue" active-text="是" inactive-text="否" :active-value="1" :inactive-value="0" />
|
|
|
|
<el-switch v-model="form.has_continue" active-text="是" inactive-text="否" :active-value="1"
|
|
|
|
|
|
|
|
:inactive-value="0" />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
@ -142,12 +132,8 @@
|
|
|
|
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>质保期
|
|
|
|
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>质保期
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="xy-table-item-content xy-table-item-year">
|
|
|
|
<div class="xy-table-item-content xy-table-item-year">
|
|
|
|
<el-input-number
|
|
|
|
<el-input-number v-model="form.guaranteeYear" :controls="false" placeholder="请填写质保期"
|
|
|
|
v-model="form.guaranteeYear"
|
|
|
|
style="width: 300px;" />
|
|
|
|
:controls="false"
|
|
|
|
|
|
|
|
placeholder="请填写质保期"
|
|
|
|
|
|
|
|
style="width: 300px;"
|
|
|
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
@ -158,27 +144,15 @@
|
|
|
|
<Button type="primary" style="margin-left: 20px;" @click="isShowAddManyPlan = true">批量添加</Button>
|
|
|
|
<Button type="primary" style="margin-left: 20px;" @click="isShowAddManyPlan = true">批量添加</Button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<xy-table
|
|
|
|
<xy-table :list="signList" :table-item="signTable" :show-index="false" :height="240"
|
|
|
|
:list="signList"
|
|
|
|
|
|
|
|
:table-item="signTable"
|
|
|
|
|
|
|
|
:show-index="false"
|
|
|
|
|
|
|
|
:height="240"
|
|
|
|
|
|
|
|
@delete="deleteContractSign"
|
|
|
|
@delete="deleteContractSign"
|
|
|
|
@editor="(row)=>{$refs['detailContractSign'].planId = row.id;$refs['detailContractSign'].isShow = true}"
|
|
|
|
@editor="(row)=>{$refs['detailContractSign'].planId = row.id;$refs['detailContractSign'].isShow = true}" />
|
|
|
|
/>
|
|
|
|
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
</xy-dialog>
|
|
|
|
</xy-dialog>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 新增计划-->
|
|
|
|
<!-- 新增计划-->
|
|
|
|
<xy-dialog
|
|
|
|
<xy-dialog :is-show.sync="isShowAddPlan" type="form" title="新增计划" :form="planForm" :rules="planRules" :width="48"
|
|
|
|
:is-show.sync="isShowAddPlan"
|
|
|
|
@submit="submit">
|
|
|
|
type="form"
|
|
|
|
|
|
|
|
title="新增计划"
|
|
|
|
|
|
|
|
:form="planForm"
|
|
|
|
|
|
|
|
:rules="planRules"
|
|
|
|
|
|
|
|
:width="48"
|
|
|
|
|
|
|
|
@submit="submit"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
<template v-slot:date>
|
|
|
|
<template v-slot:date>
|
|
|
|
<div class="xy-table-item">
|
|
|
|
<div class="xy-table-item">
|
|
|
|
<div class="xy-table-item-label">
|
|
|
|
<div class="xy-table-item-label">
|
|
|
|
@ -224,11 +198,7 @@
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
</xy-dialog>
|
|
|
|
</xy-dialog>
|
|
|
|
|
|
|
|
|
|
|
|
<Modal
|
|
|
|
<Modal v-model="isShowAddManyPlan" title="计划任务" @on-ok="manyCreate">
|
|
|
|
v-model="isShowAddManyPlan"
|
|
|
|
|
|
|
|
title="计划任务"
|
|
|
|
|
|
|
|
@on-ok="manyCreate"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="many-plan">
|
|
|
|
<div class="many-plan">
|
|
|
|
<div class="many-plan-item">
|
|
|
|
<div class="many-plan-item">
|
|
|
|
@ -238,17 +208,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
<div class="many-plan-item">
|
|
|
|
<div class="many-plan-item">
|
|
|
|
<p>开始日期</p>
|
|
|
|
<p>开始日期</p>
|
|
|
|
<el-date-picker v-model="manySetting.startMonth" size="mini" value-format="yyyy-MM-dd" @change="planMonthLists" />
|
|
|
|
<el-date-picker v-model="manySetting.startMonth" size="mini" value-format="yyyy-MM-dd"
|
|
|
|
|
|
|
|
@change="planMonthLists" />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="many-plan-item">
|
|
|
|
<div class="many-plan-item">
|
|
|
|
<p>付款月份数</p>
|
|
|
|
<p>付款月份数</p>
|
|
|
|
<el-input-number v-model="manySetting.lastMonth" :controls="false" size="mini" :precision="0" :min="1" :max="12" @change="planMonthLists" />
|
|
|
|
<el-input-number v-model="manySetting.lastMonth" :controls="false" size="mini" :precision="0" :min="1"
|
|
|
|
|
|
|
|
:max="12" @change="planMonthLists" />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="many-plan-item">
|
|
|
|
<div class="many-plan-item">
|
|
|
|
<p>付款日期</p>
|
|
|
|
<p>付款日期</p>
|
|
|
|
<el-input-number v-model="manySetting.day" :controls="false" size="mini" :precision="0" :min="1" :max="31" @change="planMonthLists" />
|
|
|
|
<el-input-number v-model="manySetting.day" :controls="false" size="mini" :precision="0" :min="1" :max="31"
|
|
|
|
|
|
|
|
@change="planMonthLists" />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="many-plan-item">
|
|
|
|
<div class="many-plan-item">
|
|
|
|
@ -269,384 +242,449 @@
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
<script>
|
|
|
|
import { MessageBox } from 'element-ui'
|
|
|
|
import {
|
|
|
|
import {
|
|
|
|
MessageBox
|
|
|
|
addContractSign,
|
|
|
|
} from 'element-ui'
|
|
|
|
getContractSign,
|
|
|
|
import {
|
|
|
|
delContractSign,
|
|
|
|
addContractSign,
|
|
|
|
httpCurl
|
|
|
|
getContractSign,
|
|
|
|
} from '@/api/contractSign/contractSign'
|
|
|
|
delContractSign,
|
|
|
|
import {
|
|
|
|
httpCurl
|
|
|
|
detailContract,
|
|
|
|
} from '@/api/contractSign/contractSign'
|
|
|
|
editorContract
|
|
|
|
import {
|
|
|
|
} from '@/api/contract/contract'
|
|
|
|
detailContract,
|
|
|
|
import {
|
|
|
|
editorContract
|
|
|
|
Message
|
|
|
|
} from '@/api/contract/contract'
|
|
|
|
} from 'element-ui'
|
|
|
|
import {
|
|
|
|
import {
|
|
|
|
Message
|
|
|
|
parseTime,
|
|
|
|
} from 'element-ui'
|
|
|
|
moneyFormatter
|
|
|
|
import {
|
|
|
|
} from '@/utils'
|
|
|
|
parseTime,
|
|
|
|
|
|
|
|
moneyFormatter
|
|
|
|
import detailContractSign from '@/views/contract/components/detailContractSign'
|
|
|
|
} from '@/utils'
|
|
|
|
import {
|
|
|
|
|
|
|
|
getOatoken
|
|
|
|
import detailContractSign from '@/views/contract/components/detailContractSign'
|
|
|
|
} from '@/api/oatoken'
|
|
|
|
import {
|
|
|
|
import axios from 'axios'
|
|
|
|
getOatoken
|
|
|
|
export default {
|
|
|
|
} from '@/api/oatoken'
|
|
|
|
components: {
|
|
|
|
import axios from 'axios'
|
|
|
|
detailContractSign
|
|
|
|
export default {
|
|
|
|
},
|
|
|
|
components: {
|
|
|
|
data() {
|
|
|
|
detailContractSign
|
|
|
|
return {
|
|
|
|
},
|
|
|
|
isShowAddManyPlan: false,
|
|
|
|
data() {
|
|
|
|
manySetting: {
|
|
|
|
return {
|
|
|
|
day: 1,
|
|
|
|
isShowAddManyPlan: false,
|
|
|
|
lastMonth: 1,
|
|
|
|
manySetting: {
|
|
|
|
startMonth: ''
|
|
|
|
day: 1,
|
|
|
|
},
|
|
|
|
lastMonth: 1,
|
|
|
|
manyForm: [],
|
|
|
|
startMonth: ''
|
|
|
|
manyTable: [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
prop: 'date',
|
|
|
|
|
|
|
|
label: '付款日期',
|
|
|
|
|
|
|
|
width: 160,
|
|
|
|
|
|
|
|
customFn: row => {
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
|
|
|
<el-date-picker style='width: 130px;' vModel={row.date} size='mini' value-format='yyyy-MM-dd'></el-date-picker>
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
manyForm: [],
|
|
|
|
prop: 'money',
|
|
|
|
manyTable: [{
|
|
|
|
label: '金额',
|
|
|
|
prop: 'date',
|
|
|
|
width: 180,
|
|
|
|
label: '付款日期',
|
|
|
|
customFn: row => {
|
|
|
|
width: 160,
|
|
|
|
return (
|
|
|
|
customFn: row => {
|
|
|
|
<el-input-number size='mini' vModel={row.money} precision={2} controls={false}></el-input-number>
|
|
|
|
return ( <
|
|
|
|
)
|
|
|
|
el - date - picker style = 'width: 130px;'
|
|
|
|
|
|
|
|
vModel = {
|
|
|
|
|
|
|
|
row.date
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
size = 'mini'
|
|
|
|
|
|
|
|
value - format = 'yyyy-MM-dd' > < /el-date-picker>
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
prop: 'money',
|
|
|
|
|
|
|
|
label: '金额',
|
|
|
|
|
|
|
|
width: 180,
|
|
|
|
|
|
|
|
customFn: row => {
|
|
|
|
|
|
|
|
return ( <
|
|
|
|
|
|
|
|
el - input - number size = 'mini'
|
|
|
|
|
|
|
|
vModel = {
|
|
|
|
|
|
|
|
row.money
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
precision = {
|
|
|
|
|
|
|
|
2
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
controls = {
|
|
|
|
|
|
|
|
false
|
|
|
|
|
|
|
|
} > < /el-input-number>
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
prop: 'operate',
|
|
|
|
|
|
|
|
label: '操作',
|
|
|
|
|
|
|
|
customFn: (row, {
|
|
|
|
|
|
|
|
$index
|
|
|
|
|
|
|
|
}) => {
|
|
|
|
|
|
|
|
return ( <
|
|
|
|
|
|
|
|
Button type = 'error'
|
|
|
|
|
|
|
|
size = 'small'
|
|
|
|
|
|
|
|
on = {
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
'click': _ => {
|
|
|
|
|
|
|
|
this.manyForm.splice($index, 1)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} > 移除 < /Button>
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
form: {
|
|
|
|
|
|
|
|
number: '',
|
|
|
|
|
|
|
|
supply: '',
|
|
|
|
|
|
|
|
has_continue: 0,
|
|
|
|
|
|
|
|
carryDepartment: '',
|
|
|
|
|
|
|
|
money: '',
|
|
|
|
|
|
|
|
time: [],
|
|
|
|
|
|
|
|
guaranteeMoney: '',
|
|
|
|
|
|
|
|
guaranteeYear: '',
|
|
|
|
|
|
|
|
date: '',
|
|
|
|
|
|
|
|
is_assurance: false,
|
|
|
|
|
|
|
|
assurance_money: '',
|
|
|
|
|
|
|
|
assurance_expire: ''
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
rules: {
|
|
|
|
prop: 'operate',
|
|
|
|
number: [{
|
|
|
|
label: '操作',
|
|
|
|
required: true,
|
|
|
|
customFn: (row, { $index }) => {
|
|
|
|
message: '必填'
|
|
|
|
return (
|
|
|
|
}],
|
|
|
|
<Button type='error'
|
|
|
|
date: [{
|
|
|
|
size='small'
|
|
|
|
required: true,
|
|
|
|
on={{
|
|
|
|
message: '必填'
|
|
|
|
'click': _ => {
|
|
|
|
}],
|
|
|
|
this.manyForm.splice($index, 1)
|
|
|
|
supply: [{
|
|
|
|
}
|
|
|
|
required: true,
|
|
|
|
}}>移除</Button>
|
|
|
|
message: '必填'
|
|
|
|
)
|
|
|
|
}],
|
|
|
|
|
|
|
|
carryDepartment: [{
|
|
|
|
|
|
|
|
required: true,
|
|
|
|
|
|
|
|
message: '必填'
|
|
|
|
|
|
|
|
}],
|
|
|
|
|
|
|
|
money: [{
|
|
|
|
|
|
|
|
required: true,
|
|
|
|
|
|
|
|
message: '必填'
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
pattern: /^\d+(\.\d+)?$/,
|
|
|
|
|
|
|
|
message: '必须为数字'
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
time: [{
|
|
|
|
|
|
|
|
required: true,
|
|
|
|
|
|
|
|
message: '必选'
|
|
|
|
|
|
|
|
}],
|
|
|
|
|
|
|
|
guaranteeMoney: [],
|
|
|
|
|
|
|
|
guaranteeYear: []
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
isShow: false,
|
|
|
|
|
|
|
|
contractId: null,
|
|
|
|
|
|
|
|
contract: {},
|
|
|
|
|
|
|
|
signList: [],
|
|
|
|
|
|
|
|
signTable: [{
|
|
|
|
|
|
|
|
prop: 'date',
|
|
|
|
|
|
|
|
label: '日期',
|
|
|
|
|
|
|
|
width: 170,
|
|
|
|
|
|
|
|
sortable: false
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
prop: 'money',
|
|
|
|
|
|
|
|
label: '金额',
|
|
|
|
|
|
|
|
align: 'right',
|
|
|
|
|
|
|
|
width: 120,
|
|
|
|
|
|
|
|
sortable: false,
|
|
|
|
|
|
|
|
formatter: (v1, v2, value) => {
|
|
|
|
|
|
|
|
return moneyFormatter(value)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
prop: 'content',
|
|
|
|
|
|
|
|
label: '内容',
|
|
|
|
|
|
|
|
minWidth: 180,
|
|
|
|
|
|
|
|
align: 'left',
|
|
|
|
|
|
|
|
sortable: false
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
prop: 'remark',
|
|
|
|
|
|
|
|
label: '备注',
|
|
|
|
|
|
|
|
minWidth: 180,
|
|
|
|
|
|
|
|
align: 'left',
|
|
|
|
|
|
|
|
sortable: false
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
form: {
|
|
|
|
|
|
|
|
number: '',
|
|
|
|
|
|
|
|
supply: '',
|
|
|
|
|
|
|
|
has_continue: 0,
|
|
|
|
|
|
|
|
carryDepartment: '',
|
|
|
|
|
|
|
|
money: '',
|
|
|
|
|
|
|
|
time: [],
|
|
|
|
|
|
|
|
guaranteeMoney: '',
|
|
|
|
|
|
|
|
guaranteeYear: '',
|
|
|
|
|
|
|
|
date: '',
|
|
|
|
|
|
|
|
is_assurance: false,
|
|
|
|
|
|
|
|
assurance_money: '',
|
|
|
|
|
|
|
|
assurance_expire: ''
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
rules: {
|
|
|
|
|
|
|
|
number: [{ required: true, message: '必填' }],
|
|
|
|
|
|
|
|
date: [{ required: true, message: '必填' }],
|
|
|
|
|
|
|
|
supply: [{ required: true, message: '必填' }],
|
|
|
|
|
|
|
|
carryDepartment: [{ required: true, message: '必填' }],
|
|
|
|
|
|
|
|
money: [
|
|
|
|
|
|
|
|
{ required: true, message: '必填' },
|
|
|
|
|
|
|
|
{ pattern: /^\d+(\.\d+)?$/, message: '必须为数字' }
|
|
|
|
|
|
|
|
],
|
|
|
|
],
|
|
|
|
time: [{ required: true, message: '必选' }],
|
|
|
|
|
|
|
|
guaranteeMoney: [],
|
|
|
|
|
|
|
|
guaranteeYear: []
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
isShow: false,
|
|
|
|
isShowAddPlan: false,
|
|
|
|
contractId: null,
|
|
|
|
planForm: {
|
|
|
|
contract: {},
|
|
|
|
date: '',
|
|
|
|
signList: [],
|
|
|
|
money: '',
|
|
|
|
signTable: [{
|
|
|
|
content: '',
|
|
|
|
prop: 'date',
|
|
|
|
remark: ''
|
|
|
|
label: '日期',
|
|
|
|
},
|
|
|
|
width: 170,
|
|
|
|
planRules: {
|
|
|
|
sortable: false
|
|
|
|
date: [{
|
|
|
|
},
|
|
|
|
required: true,
|
|
|
|
{
|
|
|
|
message: '必填'
|
|
|
|
prop: 'money',
|
|
|
|
}],
|
|
|
|
label: '金额',
|
|
|
|
content: [{
|
|
|
|
align: 'right',
|
|
|
|
required: true,
|
|
|
|
width: 120,
|
|
|
|
message: '必填'
|
|
|
|
sortable: false,
|
|
|
|
}],
|
|
|
|
formatter: (v1, v2, value) => {
|
|
|
|
money: [{
|
|
|
|
return moneyFormatter(value)
|
|
|
|
required: true,
|
|
|
|
|
|
|
|
message: '必填'
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
pattern: /^\d+(\.\d+)?$/,
|
|
|
|
|
|
|
|
message: '必须为数字'
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
prop: 'content',
|
|
|
|
|
|
|
|
label: '内容',
|
|
|
|
|
|
|
|
minWidth: 180,
|
|
|
|
|
|
|
|
align: 'left',
|
|
|
|
|
|
|
|
sortable: false
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
prop: 'remark',
|
|
|
|
|
|
|
|
label: '备注',
|
|
|
|
|
|
|
|
minWidth: 180,
|
|
|
|
|
|
|
|
align: 'left',
|
|
|
|
|
|
|
|
sortable: false
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
],
|
|
|
|
},
|
|
|
|
|
|
|
|
computed: {},
|
|
|
|
isShowAddPlan: false,
|
|
|
|
watch: {
|
|
|
|
planForm: {
|
|
|
|
async contractId() {
|
|
|
|
date: '',
|
|
|
|
await this.getContractSignList()
|
|
|
|
money: '',
|
|
|
|
await this.getContract()
|
|
|
|
content: '',
|
|
|
|
await this.getOaContractInfo()
|
|
|
|
remark: ''
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
methods: {
|
|
|
|
|
|
|
|
dateRangePick(e) {
|
|
|
|
|
|
|
|
if (e[0] && e[1]) {
|
|
|
|
|
|
|
|
this.manySetting.startMonth = e[0] ? e[0] : ''
|
|
|
|
|
|
|
|
this.manySetting.lastMonth = this.$moment(e[1]).diff(this.$moment(e[0]), 'months')
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
this.manySetting.startMonth = ''
|
|
|
|
|
|
|
|
this.manySetting.lastMonth = 1
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.planMonthLists()
|
|
|
|
},
|
|
|
|
},
|
|
|
|
planRules: {
|
|
|
|
|
|
|
|
date: [{
|
|
|
|
// 合同签订
|
|
|
|
required: true,
|
|
|
|
sign() {
|
|
|
|
message: '必填'
|
|
|
|
|
|
|
|
}],
|
|
|
|
|
|
|
|
content: [{
|
|
|
|
|
|
|
|
required: true,
|
|
|
|
|
|
|
|
message: '必填'
|
|
|
|
|
|
|
|
}],
|
|
|
|
|
|
|
|
money: [{
|
|
|
|
|
|
|
|
required: true,
|
|
|
|
|
|
|
|
message: '必填'
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
pattern: /^\d+(\.\d+)?$/,
|
|
|
|
/* if (this.signList.length == 0) {
|
|
|
|
message: '必须为数字'
|
|
|
|
Message({
|
|
|
|
|
|
|
|
type: 'error',
|
|
|
|
|
|
|
|
message: '该项目未设置付款计划,请设置付款计划后保存'
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
return false
|
|
|
|
|
|
|
|
} */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
computed: {
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
watch: {
|
|
|
|
|
|
|
|
async contractId() {
|
|
|
|
|
|
|
|
await this.getContractSignList()
|
|
|
|
|
|
|
|
await this.getContract()
|
|
|
|
|
|
|
|
await this.getOaContractInfo()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
methods: {
|
|
|
|
|
|
|
|
dateRangePick(e) {
|
|
|
|
|
|
|
|
if (e[0] && e[1]) {
|
|
|
|
|
|
|
|
this.manySetting.startMonth = e[0] ? e[0] : ''
|
|
|
|
|
|
|
|
this.manySetting.lastMonth = this.$moment(e[1]).diff(this.$moment(e[0]), 'months')
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
this.manySetting.startMonth = ''
|
|
|
|
|
|
|
|
this.manySetting.lastMonth = 1
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.planMonthLists()
|
|
|
|
const signMoneyTotal = this.signList.reduce((pre, cur) => (pre + Number(cur.money || 0)), 0)
|
|
|
|
},
|
|
|
|
if (signMoneyTotal !== Number(this.form.money)) {
|
|
|
|
|
|
|
|
Message({
|
|
|
|
|
|
|
|
type: 'warning',
|
|
|
|
|
|
|
|
message: '付款计划总金额与合同总金额不相等'
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 合同签订
|
|
|
|
editorContract({
|
|
|
|
sign() {
|
|
|
|
id: this.contractId,
|
|
|
|
{/* if (this.signList.length == 0) {
|
|
|
|
number: this.form.number,
|
|
|
|
Message({
|
|
|
|
supply: this.form.supply,
|
|
|
|
type: 'error',
|
|
|
|
has_continue: this.form.has_continue,
|
|
|
|
message: '该项目未设置付款计划,请设置付款计划后保存'
|
|
|
|
carry_department: this.form.carryDepartment,
|
|
|
|
|
|
|
|
money: this.form.money,
|
|
|
|
|
|
|
|
status: 2,
|
|
|
|
|
|
|
|
guarantee_money: this.form.guaranteeMoney,
|
|
|
|
|
|
|
|
guarantee_year: this.form.guaranteeYear,
|
|
|
|
|
|
|
|
start_date: this.form.time[0],
|
|
|
|
|
|
|
|
end_date: this.form.time[1],
|
|
|
|
|
|
|
|
date: this.form.date,
|
|
|
|
|
|
|
|
is_assurance: this.form.is_assurance,
|
|
|
|
|
|
|
|
assurance_money: this.form.assurance_money,
|
|
|
|
|
|
|
|
assurance_expire: this.form.assurance_expire
|
|
|
|
|
|
|
|
}).then(res => {
|
|
|
|
|
|
|
|
this.isShow = false
|
|
|
|
|
|
|
|
Message({
|
|
|
|
|
|
|
|
type: 'success',
|
|
|
|
|
|
|
|
message: '操作成功'
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
this.$emit('signSuccess')
|
|
|
|
})
|
|
|
|
})
|
|
|
|
return false
|
|
|
|
},
|
|
|
|
} */}
|
|
|
|
// 假设这是子页面的操作完成函数(如提交成功后)
|
|
|
|
|
|
|
|
handleOperationSuccess() {
|
|
|
|
const signMoneyTotal = this.signList.reduce((pre, cur) => (pre + Number(cur.money || 0)), 0)
|
|
|
|
// 1. 准备要发送给父页面的数据(包含操作结果等信息)
|
|
|
|
if (signMoneyTotal !== Number(this.form.money)) {
|
|
|
|
const message = {
|
|
|
|
Message({
|
|
|
|
type: 'operationCompleted', // 消息类型:标识“操作已完成”
|
|
|
|
type: 'warning',
|
|
|
|
data: {
|
|
|
|
message: '付款计划总金额与合同总金额不相等'
|
|
|
|
status: 'success',
|
|
|
|
})
|
|
|
|
result: '合同签署成功',
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
editorContract({
|
|
|
|
// 2. 发送消息给父页面
|
|
|
|
id: this.contractId,
|
|
|
|
// 第一个参数:要传递的数据
|
|
|
|
number: this.form.number,
|
|
|
|
// 第二个参数:父页面的域名(必须准确,* 不安全,不推荐)
|
|
|
|
supply: this.form.supply,
|
|
|
|
parent.postMessage(message, 'http://192.168.60.18:8001');
|
|
|
|
has_continue: this.form.has_continue,
|
|
|
|
// 例如父页面是 http://192.168.60.99:8080,则填这个地址
|
|
|
|
carry_department: this.form.carryDepartment,
|
|
|
|
},
|
|
|
|
money: this.form.money,
|
|
|
|
async getContractSignList() {
|
|
|
|
status: 2,
|
|
|
|
const res = await getContractSign({
|
|
|
|
guarantee_money: this.form.guaranteeMoney,
|
|
|
|
contract_id: this.contractId,
|
|
|
|
guarantee_year: this.form.guaranteeYear,
|
|
|
|
page: 1,
|
|
|
|
start_date: this.form.time[0],
|
|
|
|
page_size: 999
|
|
|
|
end_date: this.form.time[1],
|
|
|
|
|
|
|
|
date: this.form.date,
|
|
|
|
|
|
|
|
is_assurance: this.form.is_assurance,
|
|
|
|
|
|
|
|
assurance_money: this.form.assurance_money,
|
|
|
|
|
|
|
|
assurance_expire: this.form.assurance_expire
|
|
|
|
|
|
|
|
}).then(res => {
|
|
|
|
|
|
|
|
this.isShow = false
|
|
|
|
|
|
|
|
Message({
|
|
|
|
|
|
|
|
type: 'success',
|
|
|
|
|
|
|
|
message: '操作成功'
|
|
|
|
|
|
|
|
})
|
|
|
|
})
|
|
|
|
this.$emit('signSuccess')
|
|
|
|
this.signList = res.data
|
|
|
|
})
|
|
|
|
},
|
|
|
|
},
|
|
|
|
async getContract() {
|
|
|
|
|
|
|
|
const res = await detailContract({
|
|
|
|
async getContractSignList() {
|
|
|
|
id: this.contractId
|
|
|
|
const res = await getContractSign({
|
|
|
|
|
|
|
|
contract_id: this.contractId,
|
|
|
|
|
|
|
|
page: 1,
|
|
|
|
|
|
|
|
page_size: 999
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
this.signList = res.data
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
async getContract() {
|
|
|
|
|
|
|
|
const res = await detailContract({
|
|
|
|
|
|
|
|
id: this.contractId
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
this.contract = res
|
|
|
|
|
|
|
|
Object.assign(this.form, res)
|
|
|
|
|
|
|
|
if (res.start_date && res.end_date) {
|
|
|
|
|
|
|
|
this.form.time = [res.start_date, res.end_date]
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
this.form.time = []
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
this.form.carryDepartment = res.carry_department
|
|
|
|
|
|
|
|
this.form.guaranteeMoney = res.guarantee_money
|
|
|
|
|
|
|
|
this.form.guaranteeYear = res.guarantee_year
|
|
|
|
|
|
|
|
this.form.is_assurance = res.is_assurance === 1
|
|
|
|
|
|
|
|
this.form.assurance_expire = res.assurance_expire
|
|
|
|
|
|
|
|
this.form.assurance_money = res.assurance_money
|
|
|
|
|
|
|
|
// 动态设置质保金和质保期校验规则
|
|
|
|
|
|
|
|
if (res.contract_type !== 160) {
|
|
|
|
|
|
|
|
this.rules.guaranteeMoney = [{ required: true, message: '必填' }]
|
|
|
|
|
|
|
|
this.rules.guaranteeYear = [{ required: true, message: '必填' }]
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
this.rules.guaranteeMoney = []
|
|
|
|
|
|
|
|
this.rules.guaranteeYear = []
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
console.log(this.form)
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
deleteContractSign(row) {
|
|
|
|
|
|
|
|
delContractSign({
|
|
|
|
|
|
|
|
id: row.id
|
|
|
|
|
|
|
|
}).then(res => {
|
|
|
|
|
|
|
|
this.getContractSignList()
|
|
|
|
|
|
|
|
Message({
|
|
|
|
|
|
|
|
type: 'success',
|
|
|
|
|
|
|
|
message: '操作成功'
|
|
|
|
|
|
|
|
})
|
|
|
|
})
|
|
|
|
})
|
|
|
|
this.contract = res
|
|
|
|
},
|
|
|
|
Object.assign(this.form, res)
|
|
|
|
submit() {
|
|
|
|
if (res.start_date && res.end_date) {
|
|
|
|
console.log(this.planForm)
|
|
|
|
this.form.time = [res.start_date, res.end_date]
|
|
|
|
|
|
|
|
} else {
|
|
|
|
addContractSign({
|
|
|
|
this.form.time = []
|
|
|
|
contract_id: this.contract.id,
|
|
|
|
}
|
|
|
|
date: `${new Date(this.planForm.date).getFullYear()}-${new Date(this.planForm.date).getMonth() + 1}-${new Date(this.planForm.date).getDate()}`,
|
|
|
|
this.form.carryDepartment = res.carry_department
|
|
|
|
content: this.planForm.content,
|
|
|
|
this.form.guaranteeMoney = res.guarantee_money
|
|
|
|
money: this.planForm.money,
|
|
|
|
this.form.guaranteeYear = res.guarantee_year
|
|
|
|
remark: this.planForm.remark
|
|
|
|
this.form.is_assurance = res.is_assurance === 1
|
|
|
|
}).then(res => {
|
|
|
|
this.form.assurance_expire = res.assurance_expire
|
|
|
|
this.isShowAddPlan = false
|
|
|
|
this.form.assurance_money = res.assurance_money
|
|
|
|
this.getContractSignList()
|
|
|
|
// 动态设置质保金和质保期校验规则
|
|
|
|
console.log(res)
|
|
|
|
if (res.contract_type !== 160) {
|
|
|
|
Message({
|
|
|
|
this.rules.guaranteeMoney = [{
|
|
|
|
type: 'success',
|
|
|
|
required: true,
|
|
|
|
message: '操作成功'
|
|
|
|
message: '必填'
|
|
|
|
|
|
|
|
}]
|
|
|
|
|
|
|
|
this.rules.guaranteeYear = [{
|
|
|
|
|
|
|
|
required: true,
|
|
|
|
|
|
|
|
message: '必填'
|
|
|
|
|
|
|
|
}]
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
this.rules.guaranteeMoney = []
|
|
|
|
|
|
|
|
this.rules.guaranteeYear = []
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
console.log(this.form)
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
deleteContractSign(row) {
|
|
|
|
|
|
|
|
delContractSign({
|
|
|
|
|
|
|
|
id: row.id
|
|
|
|
|
|
|
|
}).then(res => {
|
|
|
|
|
|
|
|
this.getContractSignList()
|
|
|
|
|
|
|
|
Message({
|
|
|
|
|
|
|
|
type: 'success',
|
|
|
|
|
|
|
|
message: '操作成功'
|
|
|
|
|
|
|
|
})
|
|
|
|
})
|
|
|
|
})
|
|
|
|
})
|
|
|
|
},
|
|
|
|
},
|
|
|
|
submit() {
|
|
|
|
|
|
|
|
console.log(this.planForm)
|
|
|
|
|
|
|
|
|
|
|
|
manyCreate() {
|
|
|
|
addContractSign({
|
|
|
|
Promise.all(this.manyForm.map(i => {
|
|
|
|
|
|
|
|
return addContractSign({
|
|
|
|
|
|
|
|
contract_id: this.contract.id,
|
|
|
|
contract_id: this.contract.id,
|
|
|
|
date: i.date,
|
|
|
|
date: `${new Date(this.planForm.date).getFullYear()}-${new Date(this.planForm.date).getMonth() + 1}-${new Date(this.planForm.date).getDate()}`,
|
|
|
|
content: '',
|
|
|
|
content: this.planForm.content,
|
|
|
|
money: i.money,
|
|
|
|
money: this.planForm.money,
|
|
|
|
remark: ''
|
|
|
|
remark: this.planForm.remark
|
|
|
|
|
|
|
|
}).then(res => {
|
|
|
|
|
|
|
|
this.isShowAddPlan = false
|
|
|
|
|
|
|
|
this.getContractSignList()
|
|
|
|
|
|
|
|
console.log(res)
|
|
|
|
|
|
|
|
Message({
|
|
|
|
|
|
|
|
type: 'success',
|
|
|
|
|
|
|
|
message: '操作成功'
|
|
|
|
|
|
|
|
})
|
|
|
|
})
|
|
|
|
})
|
|
|
|
})).then(res => {
|
|
|
|
},
|
|
|
|
this.getContractSignList()
|
|
|
|
|
|
|
|
Message({
|
|
|
|
manyCreate() {
|
|
|
|
type: 'success',
|
|
|
|
Promise.all(this.manyForm.map(i => {
|
|
|
|
message: '操作成功'
|
|
|
|
return addContractSign({
|
|
|
|
|
|
|
|
contract_id: this.contract.id,
|
|
|
|
|
|
|
|
date: i.date,
|
|
|
|
|
|
|
|
content: '',
|
|
|
|
|
|
|
|
money: i.money,
|
|
|
|
|
|
|
|
remark: ''
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
})).then(res => {
|
|
|
|
|
|
|
|
this.getContractSignList()
|
|
|
|
|
|
|
|
Message({
|
|
|
|
|
|
|
|
type: 'success',
|
|
|
|
|
|
|
|
message: '操作成功'
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
this.isShowAddManyPlan = false
|
|
|
|
})
|
|
|
|
})
|
|
|
|
this.isShowAddManyPlan = false
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取oa合同信息
|
|
|
|
// 获取oa合同信息
|
|
|
|
async getOaContractInfo() {
|
|
|
|
async getOaContractInfo() {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
const resToken = await getOatoken()
|
|
|
|
const resToken = await getOatoken()
|
|
|
|
const ourl = `/oa/admin/flow/view/${this.contract.join_last_flow_id}?oatoken=${resToken.oatoken}&get_raw=1`
|
|
|
|
const ourl = `/oa/admin/flow/view/${this.contract.join_last_flow_id}?oatoken=${resToken.oatoken}&get_raw=1`
|
|
|
|
|
|
|
|
|
|
|
|
console.log(ourl)
|
|
|
|
console.log(ourl)
|
|
|
|
const url =
|
|
|
|
const url =
|
|
|
|
`${process.env.VUE_APP_OUT_URL}/admin/flow/view/${this.contract.join_last_flow_id}`
|
|
|
|
`${process.env.VUE_APP_OUT_URL}/admin/flow/view/${this.contract.join_last_flow_id}`
|
|
|
|
// ?oatoken=${res.oatoken}&get_raw=1
|
|
|
|
// ?oatoken=${res.oatoken}&get_raw=1
|
|
|
|
const paras = { oatoken: resToken.oatoken, get_raw: 1 }
|
|
|
|
const paras = {
|
|
|
|
const res = await httpCurl(paras, true, '/Api/flowDetail', 'GET', url)
|
|
|
|
oatoken: resToken.oatoken,
|
|
|
|
console.log(res)
|
|
|
|
get_raw: 1
|
|
|
|
this.form.money = Number(res.flow['合同金额(元)'])
|
|
|
|
}
|
|
|
|
this.form.number = res.flow['合同编号']
|
|
|
|
const res = await httpCurl(paras, true, '/Api/flowDetail', 'GET', url)
|
|
|
|
this.form.supply = res.flow['承包商\\供应商']
|
|
|
|
console.log(res)
|
|
|
|
this.form.carryDepartment = res.flow['执行部门']
|
|
|
|
this.form.money = Number(res.flow['合同金额(元)'])
|
|
|
|
|
|
|
|
this.form.number = res.flow['合同编号']
|
|
|
|
// let res = await getOatoken()
|
|
|
|
this.form.supply = res.flow['承包商\\供应商']
|
|
|
|
// let url =
|
|
|
|
this.form.carryDepartment = res.flow['执行部门']
|
|
|
|
// `/oa/admin/flow/view/${this.contract.join_last_flow_id}?oatoken=${res.oatoken}&get_raw=1`
|
|
|
|
|
|
|
|
// const oaInfo = await axios.get(url)
|
|
|
|
// let res = await getOatoken()
|
|
|
|
// this.form.money = Number(oaInfo.data.flow['合同金额(元)'])
|
|
|
|
// let url =
|
|
|
|
// this.form.number = oaInfo.data.flow['合同编号']
|
|
|
|
// `/oa/admin/flow/view/${this.contract.join_last_flow_id}?oatoken=${res.oatoken}&get_raw=1`
|
|
|
|
// this.form.supply = oaInfo.data.flow['承包商\\供应商']
|
|
|
|
// const oaInfo = await axios.get(url)
|
|
|
|
// this.form.carryDepartment = oaInfo.data.flow['执行部门']
|
|
|
|
// this.form.money = Number(oaInfo.data.flow['合同金额(元)'])
|
|
|
|
} catch {
|
|
|
|
// this.form.number = oaInfo.data.flow['合同编号']
|
|
|
|
|
|
|
|
// this.form.supply = oaInfo.data.flow['承包商\\供应商']
|
|
|
|
|
|
|
|
// this.form.carryDepartment = oaInfo.data.flow['执行部门']
|
|
|
|
|
|
|
|
} catch {
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
planMonthLists() {
|
|
|
|
planMonthLists() {
|
|
|
|
const [startDate, endDate] = this.form.time
|
|
|
|
const [startDate, endDate] = this.form.time
|
|
|
|
const actStartDate = this.manySetting.startMonth
|
|
|
|
const actStartDate = this.manySetting.startMonth
|
|
|
|
const actStartYear = new Date(actStartDate).getFullYear()
|
|
|
|
const actStartYear = new Date(actStartDate).getFullYear()
|
|
|
|
const actStartMonth = new Date(actStartDate).getMonth()
|
|
|
|
const actStartMonth = new Date(actStartDate).getMonth()
|
|
|
|
const dates = []
|
|
|
|
const dates = []
|
|
|
|
if (actStartDate && this.manySetting.day) {
|
|
|
|
if (actStartDate && this.manySetting.day) {
|
|
|
|
let index = 0
|
|
|
|
let index = 0
|
|
|
|
let nowDate = this.$moment(new Date(actStartYear, actStartMonth, this.manySetting.day)).add(index, 'months')
|
|
|
|
let nowDate = this.$moment(new Date(actStartYear, actStartMonth, this.manySetting.day)).add(index, 'months')
|
|
|
|
|
|
|
|
|
|
|
|
while ((nowDate.valueOf() <= this.$moment(endDate).valueOf())) {
|
|
|
|
while ((nowDate.valueOf() <= this.$moment(endDate).valueOf())) {
|
|
|
|
if (nowDate.valueOf() >= this.$moment(actStartDate).valueOf()) {
|
|
|
|
if (nowDate.valueOf() >= this.$moment(actStartDate).valueOf()) {
|
|
|
|
dates.push(nowDate.format('YYYY-MM-DD'))
|
|
|
|
dates.push(nowDate.format('YYYY-MM-DD'))
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
index++
|
|
|
|
|
|
|
|
nowDate = this.$moment(new Date(actStartYear, actStartMonth, this.manySetting.day)).add(index, 'months')
|
|
|
|
}
|
|
|
|
}
|
|
|
|
index++
|
|
|
|
|
|
|
|
nowDate = this.$moment(new Date(actStartYear, actStartMonth, this.manySetting.day)).add(index, 'months')
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const returnRes = dates.slice(0, this.manySetting.lastMonth)
|
|
|
|
const returnRes = dates.slice(0, this.manySetting.lastMonth)
|
|
|
|
this.manyForm = returnRes.map(i => ({
|
|
|
|
this.manyForm = returnRes.map(i => ({
|
|
|
|
money: (Number(this.form.money || 0) / returnRes.length).toFixed(2),
|
|
|
|
money: (Number(this.form.money || 0) / returnRes.length).toFixed(2),
|
|
|
|
date: i,
|
|
|
|
date: i,
|
|
|
|
content: ''
|
|
|
|
content: ''
|
|
|
|
}))
|
|
|
|
}))
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
</script>
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
<style scoped lang="scss">
|
|
|
|
@ -655,12 +693,14 @@ export default {
|
|
|
|
display: flex;
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
|
|
|
|
margin-bottom: 20px;
|
|
|
|
margin-bottom: 20px;
|
|
|
|
& > p {
|
|
|
|
|
|
|
|
|
|
|
|
&>p {
|
|
|
|
flex-basis: 30%;
|
|
|
|
flex-basis: 30%;
|
|
|
|
flex-shrink: 0;
|
|
|
|
flex-shrink: 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.base-info {
|
|
|
|
.base-info {
|
|
|
|
|
|
|
|
|
|
|
|
&-title {
|
|
|
|
&-title {
|
|
|
|
|