parent
41df3aaf82
commit
c35f630837
File diff suppressed because one or more lines are too long
@ -0,0 +1,24 @@
|
||||
package jnpf.model.contract;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class ContractRequest implements Serializable {
|
||||
|
||||
/**
|
||||
* 审核合同单据id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 审核合同目标状态
|
||||
*/
|
||||
private String contractStatus;
|
||||
|
||||
/**
|
||||
* 审核说明
|
||||
*/
|
||||
private String approveRemarks;
|
||||
}
|
@ -0,0 +1,269 @@
|
||||
<template>
|
||||
<transition name="el-zoom-in-center">
|
||||
<div class="JNPF-preview-main">
|
||||
<Detail v-if="detailVisible" ref="Detail" @close="detailVisible = false" />
|
||||
<div class="JNPF-common-page-header">
|
||||
<el-page-header @back="goBack"
|
||||
content="详情"/>
|
||||
<div class="options">
|
||||
<el-button @click="goBack">取 消</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<el-row :gutter="15" class=" main" :style="{margin: '0 auto',width: '100%'}">
|
||||
<el-form ref="formRef" :model="dataForm" size="small" label-width="100px" label-position="right" >
|
||||
<template v-if="!loading">
|
||||
<el-col :span="8" >
|
||||
<jnpf-form-tip-item label="合同编号"
|
||||
prop="contractNumber" >
|
||||
<p>{{dataForm.contractNumber}}</p>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<jnpf-form-tip-item label="合同名称"
|
||||
prop="contractName" >
|
||||
<p>{{dataForm.contractName}}</p>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<jnpf-form-tip-item label="计价方式"
|
||||
prop="pricingMethod" >
|
||||
<p>{{ dataForm.pricingMethod }} </p>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<jnpf-form-tip-item label="签订日期"
|
||||
prop="signingDate" >
|
||||
<p>{{dataForm.signingDate}}</p>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<jnpf-form-tip-item label="园区名称"
|
||||
prop="parkId" >
|
||||
<p>{{dataForm.parkId}}</p>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<jnpf-form-tip-item label="商户名称"
|
||||
prop="merchantName" >
|
||||
<p>{{dataForm.merchantName}}</p>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<jnpf-form-tip-item label="租金总价"
|
||||
prop="totalRentalPrice" >
|
||||
<p>{{dataForm.totalRentalPrice}}</p>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<jnpf-form-tip-item label="押金总计"
|
||||
prop="totalDeposit" >
|
||||
<p>{{dataForm.totalDeposit}}</p>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<jnpf-form-tip-item label="支付方式"
|
||||
prop="payDeposit" >
|
||||
<p>{{ dataForm.payDeposit }} </p>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<jnpf-form-tip-item label="退还方式"
|
||||
prop="returnDeposit" >
|
||||
<p>{{ dataForm.returnDeposit }} </p>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<jnpf-form-tip-item label="开始时间"
|
||||
prop="startTime" >
|
||||
<p>{{dataForm.startTime}}</p>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<jnpf-form-tip-item label="结束时间"
|
||||
prop="endTime" >
|
||||
<p>{{dataForm.endTime}}</p>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<jnpf-form-tip-item label="租期"
|
||||
prop="leaseTerm" >
|
||||
<p>{{dataForm.leaseTerm}}月</p>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<jnpf-form-tip-item label="联系人"
|
||||
prop="contacts" >
|
||||
<p>{{dataForm.contacts}}</p>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<jnpf-form-tip-item label="联系电话"
|
||||
prop="contactsPhone" >
|
||||
<p>{{dataForm.contactsPhone}}</p>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<jnpf-form-tip-item label="合同状态"
|
||||
prop="contractStatus" >
|
||||
<p>{{ dataForm.contractStatus }} </p>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="24" >
|
||||
<jnpf-form-tip-item label="合同说明"
|
||||
prop="contractExplain" >
|
||||
<p>{{dataForm.contractExplain}}</p>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="24" >
|
||||
<jnpf-form-tip-item label="合同附件"
|
||||
prop="contractEnclosure" >
|
||||
<JnpfUploadFile v-model="dataForm.contractEnclosure"
|
||||
disabled
|
||||
detailed :fileSize="10" sizeUnit="MB" :limit="9" pathType="defaultPath" :isAccount="0" buttonText="点击上传" >
|
||||
</JnpfUploadFile>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="24" >
|
||||
<jnpf-form-tip-item label-width="0">
|
||||
<div class="JNPF-common-title">
|
||||
<h2>空间列表</h2>
|
||||
</div>
|
||||
<el-table :data="dataForm.tableField130" size='mini' >
|
||||
<el-table-column type="index" width="50" label="序号" align="center" />
|
||||
<el-table-column prop="contractLineNumber" label="合同行号" >
|
||||
<template slot="header">
|
||||
合同行号
|
||||
<span slot="label">
|
||||
<el-tooltip placement="top" content='后台自动生成'>
|
||||
<a class='el-icon-question tooltip-question'></a>
|
||||
</el-tooltip>
|
||||
</span>
|
||||
</template>
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.contractLineNumber}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="spaceName" label="空间名称" >
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.spaceName}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="spaceArea" label="空间面积" >
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.spaceArea}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="totalRentalPrice" label="租金总价" >
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.totalRentalPrice}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
</template>
|
||||
</el-form>
|
||||
</el-row>
|
||||
</div>
|
||||
</transition>
|
||||
</template>
|
||||
<script>
|
||||
import request from '@/utils/request'
|
||||
|
||||
import { getConfigData } from '@/api/onlineDev/visualDev'
|
||||
import jnpf from '@/utils/jnpf'
|
||||
import Detail from '@/views/basic/dynamicModel/list/detail'
|
||||
import { thousandsFormat } from "@/components/Generator/utils/index"
|
||||
export default {
|
||||
components: { Detail},
|
||||
props: [],
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
detailVisible: false,
|
||||
loading: false,
|
||||
|
||||
dataForm: {
|
||||
id :'',
|
||||
contractNumber : '',
|
||||
contractName : '',
|
||||
pricingMethod : "",
|
||||
signingDate : '',
|
||||
parkId : "",
|
||||
merchantName : "",
|
||||
totalRentalPrice : "",
|
||||
totalDeposit : '',
|
||||
payDeposit : "",
|
||||
returnDeposit : "",
|
||||
startTime : '',
|
||||
endTime : '',
|
||||
leaseTerm : '',
|
||||
contacts : '',
|
||||
contactsPhone : '',
|
||||
contractStatus : "10",
|
||||
creationTime : "",
|
||||
contractExplain : '',
|
||||
contractEnclosure : [],
|
||||
spacecontractList:[],
|
||||
},
|
||||
pricingMethodOptions:[{"fullName":"月付","id":"1"},{"fullName":"季付","id":"2"},{"fullName":"年付","id":"3"}],
|
||||
pricingMethodProps:{"label":"fullName","value":"id" },
|
||||
parkIdProps:{"label":"park_name","value":"park_number" },
|
||||
merchantNameProps:{"label":"cmp_nm","value":"id" },
|
||||
payDepositOptions:[{"fullName":"选项1","id":"1"},{"fullName":"选项2","id":"2"}],
|
||||
payDepositProps:{"label":"fullName","value":"id" },
|
||||
returnDepositOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
|
||||
returnDepositProps:{"label":"fullName","value":"id" },
|
||||
contractStatusOptions:[{"fullName":"待确认","id":"10"},{"fullName":"已确认","id":"20"},{"fullName":"已结案","id":"30"},{"fullName":"待确认","id":"21"}],
|
||||
contractStatusProps:{"label":"fullName","value":"id" },
|
||||
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() {
|
||||
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
toDetail(defaultValue, modelId) {
|
||||
if (!defaultValue) return
|
||||
getConfigData(modelId).then(res => {
|
||||
if (!res.data || !res.data.formData) return
|
||||
let formData = JSON.parse(res.data.formData)
|
||||
formData.popupType = 'general'
|
||||
this.detailVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.Detail.init(formData, modelId, defaultValue)
|
||||
})
|
||||
})
|
||||
},
|
||||
dataInfo(dataAll){
|
||||
let _dataAll =dataAll
|
||||
this.dataForm = _dataAll
|
||||
},
|
||||
|
||||
goBack() {
|
||||
this.$emit('refresh')
|
||||
},
|
||||
init(id) {
|
||||
this.dataForm.id = id || 0;
|
||||
this.visible = true;
|
||||
this.$nextTick(() => {
|
||||
if(this.dataForm.id){
|
||||
this.loading = true
|
||||
request({
|
||||
url: '/api/example/Contract/detail/'+this.dataForm.id,
|
||||
method: 'get'
|
||||
}).then(res => {
|
||||
this.dataInfo(res.data)
|
||||
this.loading = false
|
||||
})
|
||||
}
|
||||
|
||||
})
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
</script>
|
@ -0,0 +1,62 @@
|
||||
<template>
|
||||
<el-dialog title="合同确认" :visible.sync="showDialog" width="30%" @close="handleDialogClose">
|
||||
<el-form ref="form" :model="form" label-width="120px">
|
||||
<el-form-item label="审核意见">
|
||||
<el-input v-model="form.adjustComm" placeholder="请输入审核意见"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="handleSubmit">确 定</el-button>
|
||||
<el-button type="danger" @click="rollback">驳 回</el-button>
|
||||
<el-button @click="showDialog = false">取 消</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
showDialog: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
selectedRows: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
},
|
||||
onSubmit: {
|
||||
type: Function,
|
||||
default: () => { },
|
||||
},
|
||||
onRollback: {
|
||||
type: Function,
|
||||
default: () => { },
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
form: {
|
||||
approveRemarks: '',
|
||||
},
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
handleDialogClose() {
|
||||
this.form.approveRemarks = ''; // 清空输入框内容
|
||||
this.$emit('update:showDialog', false); // 通知父组件更新 showDialog
|
||||
},
|
||||
handleSubmit() {
|
||||
this.onSubmit({
|
||||
approveRemarks: this.form.approveRemarks,
|
||||
});
|
||||
this.handleDialogClose(); // 关闭弹窗
|
||||
},
|
||||
rollback() {
|
||||
this.onRollback({
|
||||
approveRemarks: this.form.approveRemarks,
|
||||
});
|
||||
this.handleDialogClose(); // 关闭弹窗
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
@ -0,0 +1,51 @@
|
||||
<template>
|
||||
<el-dialog title="合同结束" :visible.sync="showEndDialog" width="30%" @close="handleDialogClose">
|
||||
<el-form ref="form" :model="form" label-width="120px">
|
||||
<el-form-item label="备注说明">
|
||||
<el-input v-model="form.adjustComm" placeholder="请输入备注说明"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="handleEndSubmit">确 定</el-button>
|
||||
<el-button @click="showEndDialog = false">取 消</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
showEndDialog: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
selectedRows: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
},
|
||||
onEndSubmit: {
|
||||
type: Function,
|
||||
default: () => { },
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
form: {
|
||||
approveRemarks: '同意',
|
||||
},
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
handleDialogClose() {
|
||||
this.form.approveRemarks = ''; // 清空输入框内容
|
||||
this.$emit('update:showEndDialog', false); // 通知父组件更新 showDialog
|
||||
},
|
||||
handleEndSubmit() {
|
||||
this.onEndSubmit({
|
||||
approveRemarks: this.form.approveRemarks,
|
||||
});
|
||||
this.handleDialogClose(); // 关闭弹窗
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,935 @@
|
||||
<template>
|
||||
<transition name="el-zoom-in-center">
|
||||
<div class="JNPF-preview-main">
|
||||
<div class="JNPF-common-page-header">
|
||||
<el-page-header @back="goBack" :content="!dataForm.id ? '新建' : '编辑'" />
|
||||
<div class="options">
|
||||
<el-dropdown class="dropdown" placement="bottom">
|
||||
<el-button style="width:70px">
|
||||
更 多<i class="el-icon-arrow-down el-icon--right"></i>
|
||||
</el-button>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<template v-if="dataForm.id">
|
||||
<el-dropdown-item @click.native="prev" :disabled='prevDis'>
|
||||
{{ '上一条' }}
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="next" :disabled='nextDis'>
|
||||
{{ '下一条' }}
|
||||
</el-dropdown-item>
|
||||
</template>
|
||||
<el-dropdown-item type="primary" @click.native="dataFormSubmit(2)"
|
||||
:loading="continueBtnLoading" :disabled='btnLoading'>
|
||||
{{ !dataForm.id ? '确定并新增' : '确定并继续' }}</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
<el-button type="primary" @click="dataFormSubmit()" :loading="btnLoading"
|
||||
:disabled='continueBtnLoading'> 保
|
||||
存</el-button>
|
||||
<el-button @click="goBack"> 取 消</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<el-row :gutter="15" class=" main" :style="{ margin: '0 auto', width: '100%' }">
|
||||
<el-form ref="formRef" :model="dataForm" :rules="dataRule" size="small" label-width="100px"
|
||||
label-position="right">
|
||||
<template v-if="!loading">
|
||||
<!-- 具体表单 -->
|
||||
<el-col :span="8">
|
||||
<jnpf-form-tip-item label="合同编号" prop="contractNumber">
|
||||
<JnpfInput v-model="dataForm.contractNumber" @change="changeData('contractNumber', -1)"
|
||||
placeholder="自动生成" disabled :style='{ "width": "100%" }'>
|
||||
</JnpfInput>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<jnpf-form-tip-item label="合同名称" prop="contractName">
|
||||
<JnpfInput v-model="dataForm.contractName" @change="changeData('contractName', -1)"
|
||||
placeholder="请输入合同名称" clearable :style='{ "width": "100%" }'>
|
||||
</JnpfInput>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<jnpf-form-tip-item label="计价方式" prop="pricingMethod">
|
||||
<JnpfSelect v-model="dataForm.pricingMethod" @change="changeData('pricingMethod', -1)"
|
||||
placeholder="请选择计价方式" clearable :style='{ "width": "100%" }'
|
||||
:options="pricingMethodOptions" :props="pricingMethodProps">
|
||||
</JnpfSelect>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<jnpf-form-tip-item label="签订日期" prop="signingDate">
|
||||
<JnpfDatePicker v-model="dataForm.signingDate" @change="changeData('signingDate', -1)"
|
||||
:startTime="dateTime(false, 1, 1, '', '')" :endTime="dateTime(false, 1, 1, '', '')"
|
||||
placeholder="请选择签订日期" clearable :style='{ "width": "100%" }' type="date"
|
||||
format="yyyy-MM-dd">
|
||||
</JnpfDatePicker>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<jnpf-form-tip-item label="园区名称" prop="parkId">
|
||||
<JnpfSelect v-model="dataForm.parkId" @change="changeData('parkId', -1)"
|
||||
placeholder="请选择园区" clearable :style='{ "width": "100%" }' :options="parkIdOptions"
|
||||
:props="parkIdProps">
|
||||
</JnpfSelect>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<jnpf-form-tip-item label="商户名称" prop="merchantName">
|
||||
<JnpfSelect v-model="dataForm.merchantName" @change="changeData('merchantName', -1)"
|
||||
placeholder="请选择" clearable :style='{ "width": "100%" }' filterable
|
||||
:options="merchantNameOptions" :props="merchantNameProps">
|
||||
</JnpfSelect>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<jnpf-form-tip-item label="租金总价" prop="totalRentalPrice">
|
||||
<JnpfInput v-model="dataForm.totalRentalPrice"
|
||||
@change="changeData('totalRentalPrice', -1)" placeholder="请输入租金总价" clearable
|
||||
:style='{ "width": "100%" }'>
|
||||
</JnpfInput>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<jnpf-form-tip-item label="押金总计" prop="totalDeposit">
|
||||
<JnpfInput v-model="dataForm.totalDeposit" @change="changeData('totalDeposit', -1)"
|
||||
placeholder="请输入押金总计" clearable :style='{ "width": "100%" }'>
|
||||
</JnpfInput>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<jnpf-form-tip-item label="支付方式" prop="payDeposit">
|
||||
<JnpfSelect v-model="dataForm.payDeposit" @change="changeData('payDeposit', -1)"
|
||||
placeholder="请选择押金支付方式" clearable :style='{ "width": "100%" }'
|
||||
:options="payDepositOptions" :props="payDepositProps">
|
||||
</JnpfSelect>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<jnpf-form-tip-item label="退还方式" prop="returnDeposit">
|
||||
<JnpfSelect v-model="dataForm.returnDeposit" @change="changeData('returnDeposit', -1)"
|
||||
placeholder="请选择押金退还方式" clearable :style='{ "width": "100%" }'
|
||||
:options="returnDepositOptions" :props="returnDepositProps">
|
||||
</JnpfSelect>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<jnpf-form-tip-item label="开始时间" prop="startTime">
|
||||
<JnpfDatePicker v-model="dataForm.startTime" @change="changeData('startTime', -1)"
|
||||
:startTime="dateTime(false, 1, 1, '', '')" :endTime="dateTime(false, 1, 1, '', '')"
|
||||
placeholder="请选择开始时间" clearable :style='{ "width": "100%" }' type="date"
|
||||
format="yyyy-MM-dd">
|
||||
</JnpfDatePicker>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<jnpf-form-tip-item label="结束时间" prop="endTime">
|
||||
<JnpfDatePicker v-model="dataForm.endTime" @change="changeData('endTime', -1)"
|
||||
:startTime="dateTime(false, 1, 1, '', '')" :endTime="dateTime(false, 1, 1, '', '')"
|
||||
placeholder="请选择结束时间" clearable :style='{ "width": "100%" }' type="date"
|
||||
format="yyyy-MM-dd">
|
||||
</JnpfDatePicker>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<jnpf-form-tip-item label="租期" prop="leaseTerm">
|
||||
<JnpfInput v-model="dataForm.leaseTerm" @change="changeData('leaseTerm', -1)"
|
||||
placeholder="自动生成" disabled addonAfter="月" clearable :style='{ "width": "100%" }'>
|
||||
</JnpfInput>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<jnpf-form-tip-item label="联系人" prop="contacts">
|
||||
<JnpfInput v-model="dataForm.contacts" @change="changeData('contacts', -1)"
|
||||
placeholder="请输入联系人" clearable :style='{ "width": "100%" }'>
|
||||
</JnpfInput>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<jnpf-form-tip-item label="联系电话" prop="contactsPhone">
|
||||
<JnpfInput v-model="dataForm.contactsPhone" @change="changeData('contactsPhone', -1)"
|
||||
placeholder="请输入联系电话" clearable :style='{ "width": "100%" }'>
|
||||
</JnpfInput>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<jnpf-form-tip-item label="合同状态" prop="contractStatus">
|
||||
<JnpfSelect v-model="dataForm.contractStatus" @change="changeData('contractStatus', -1)"
|
||||
placeholder="请选择" disabled clearable :style='{ "width": "100%" }'
|
||||
:options="contractStatusOptions" :props="contractStatusProps">
|
||||
</JnpfSelect>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<jnpf-form-tip-item label="合同说明" prop="contractExplain">
|
||||
<JnpfTextarea v-model="dataForm.contractExplain"
|
||||
@change="changeData('contractExplain', -1)" placeholder="请输入合同说明"
|
||||
:style='{ "width": "100%" }' true type="textarea"
|
||||
:autosize='{ "minRows": 4, "maxRows": 4 }'>
|
||||
</JnpfTextarea>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<jnpf-form-tip-item label="合同附件" prop="contractEnclosure">
|
||||
<JnpfUploadFile v-model="dataForm.contractEnclosure"
|
||||
@change="changeData('contractEnclosure', -1)" :fileSize="10" sizeUnit="MB"
|
||||
:limit="9" pathType="defaultPath" :isAccount="0" buttonText="点击上传">
|
||||
</JnpfUploadFile>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<jnpf-form-tip-item label-width="0">
|
||||
<div class="JNPF-common-title">
|
||||
<h2>空间列表</h2>
|
||||
</div>
|
||||
<el-table :data="dataForm.spacecontractList" size='mini'>
|
||||
<el-table-column type="index" width="50" label="序号" align="center" />
|
||||
<el-table-column label="合同行号" tipLabel="后台自动生成" prop="contractLineNumber">
|
||||
<template slot="header" v-if="false">
|
||||
<span class="required-sign">*</span>合同行号
|
||||
<span slot="label">
|
||||
<el-tooltip placement="top" content='后台自动生成'>
|
||||
<a class='el-icon-question tooltip-question'></a>
|
||||
</el-tooltip>
|
||||
</span>
|
||||
</template>
|
||||
<template slot-scope="scope">
|
||||
<JnpfInput v-model="scope.row.contractLineNumber"
|
||||
@change="changeData('spacecontract-contractLineNumber', scope.$index)"
|
||||
placeholder="合同行号" disabled clearable :style='{ "width": "100%" }'>
|
||||
</JnpfInput>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="空间名称" prop="spaceName">
|
||||
<template slot="header" v-if="false">
|
||||
<span class="required-sign">*</span>空间名称
|
||||
</template>
|
||||
<template slot-scope="scope">
|
||||
<JnpfPopupSelect v-model="scope.row.spaceName"
|
||||
@change="changeData('spacecontract-spaceName', scope.$index)"
|
||||
:rowIndex="scope.$index" :formData="dataForm"
|
||||
:templateJson="interfaceRes.spacecontractspaceName" placeholder="请选择"
|
||||
propsValue="id" popupWidth="800px" popupTitle="选择数据" popupType="dialog"
|
||||
relationField='name' :field="'spaceName' + scope.$index"
|
||||
interfaceId="582491427901014533" :pageSize="20"
|
||||
:columnOptions="spacecontractspaceNamecolumnOptions" clearable
|
||||
:style='{ "width": "100%" }'>
|
||||
</JnpfPopupSelect>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="空间面积" prop="spaceArea">
|
||||
<template slot="header" v-if="false">
|
||||
<span class="required-sign">*</span>空间面积
|
||||
</template>
|
||||
<template slot-scope="scope">
|
||||
<JnpfInput v-model="scope.row.spaceArea"
|
||||
@change="changeData('spacecontract-spaceArea', scope.$index)"
|
||||
placeholder="请输入空间面积" disabled clearable :style='{ "width": "100%" }'>
|
||||
</JnpfInput>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="租金总价" prop="totalRentalPrice">
|
||||
<template slot="header" v-if="false">
|
||||
<span class="required-sign">*</span>租金总价
|
||||
</template>
|
||||
<template slot-scope="scope">
|
||||
<JnpfInput v-model="scope.row.totalRentalPrice"
|
||||
@change="changeData('spacecontract-totalRentalPrice', scope.$index)"
|
||||
placeholder="请输入租金总价" clearable :style='{ "width": "100%" }'>
|
||||
</JnpfInput>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="50">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" class="JNPF-table-delBtn"
|
||||
@click="delspacecontractList(scope.$index)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="table-actions" @click="addspacecontractList()">
|
||||
<el-button type="text" icon="el-icon-plus">添加</el-button>
|
||||
</div>
|
||||
</jnpf-form-tip-item>
|
||||
</el-col>
|
||||
<!-- 表单结束 -->
|
||||
</template>
|
||||
</el-form>
|
||||
<SelectDialog v-if="selectDialogVisible" :config="currTableConf" :formData="dataForm" ref="selectDialog"
|
||||
@select="addForSelect" @close="selectDialogVisible = false" />
|
||||
</el-row>
|
||||
</div>
|
||||
</transition>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
import request from '@/utils/request'
|
||||
import { mapGetters } from "vuex";
|
||||
import { getDataInterfaceRes } from '@/api/systemData/dataInterface'
|
||||
import { getDictionaryDataSelector } from '@/api/systemData/dictionary'
|
||||
import { getDefaultCurrentValueUserId } from '@/api/permission/user'
|
||||
import { getDefaultCurrentValueDepartmentId } from '@/api/permission/organize'
|
||||
import { getDateDay, getLaterData, getBeforeData, getBeforeTime, getLaterTime } from '@/components/Generator/utils/index.js'
|
||||
import { thousandsFormat } from "@/components/Generator/utils/index"
|
||||
export default {
|
||||
components: {},
|
||||
props: [],
|
||||
data() {
|
||||
return {
|
||||
dataFormSubmitType: 0,
|
||||
continueBtnLoading: false,
|
||||
index: 0,
|
||||
prevDis: false,
|
||||
nextDis: false,
|
||||
allList: [],
|
||||
visible: false,
|
||||
loading: false,
|
||||
btnLoading: false,
|
||||
formRef: 'formRef',
|
||||
setting: {},
|
||||
eventType: '',
|
||||
userBoxVisible: false,
|
||||
selectDialogVisible: false,
|
||||
currTableConf: {},
|
||||
dataValueAll: {},
|
||||
addTableConf: {
|
||||
spacecontractList: { "popupType": "dialog", "hasPage": true, "popupTitle": "选择数据", "pageSize": 20, "columnOptions": [], "interfaceId": "", "interfaceName": "", "relationOptions": [], "templateJson": [], "popupWidth": "800px" },
|
||||
},
|
||||
//可选范围默认值
|
||||
ableAll: {
|
||||
},
|
||||
tableRows: {
|
||||
spacecontractList: {
|
||||
contractLineNumber: '',
|
||||
contractLineNumberOptions: [],
|
||||
spaceName: '',
|
||||
spaceNameOptions: [],
|
||||
spaceArea: '',
|
||||
spaceAreaOptions: [],
|
||||
totalRentalPrice: '',
|
||||
totalRentalPriceOptions: [],
|
||||
enabledmark: undefined
|
||||
},
|
||||
},
|
||||
Vmodel: "",
|
||||
currVmodel: "",
|
||||
dataForm: {
|
||||
contractNumber: undefined,
|
||||
contractName: undefined,
|
||||
pricingMethod: undefined,
|
||||
signingDate: undefined,
|
||||
parkId: undefined,
|
||||
merchantName: undefined,
|
||||
totalRentalPrice: undefined,
|
||||
totalDeposit: undefined,
|
||||
payDeposit: undefined,
|
||||
returnDeposit: undefined,
|
||||
startTime: undefined,
|
||||
endTime: undefined,
|
||||
leaseTerm: undefined,
|
||||
contacts: undefined,
|
||||
contactsPhone: undefined,
|
||||
contractStatus: "10",
|
||||
creationTime: undefined,
|
||||
contractExplain: undefined,
|
||||
contractEnclosure: [],
|
||||
spacecontractList: [],
|
||||
version: 0,
|
||||
},
|
||||
tableRequiredData: {},
|
||||
dataRule:
|
||||
{
|
||||
contractName: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入合同名称',
|
||||
trigger: 'blur'
|
||||
},
|
||||
],
|
||||
pricingMethod: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择计价方式',
|
||||
trigger: 'change'
|
||||
},
|
||||
],
|
||||
signingDate: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择签订日期',
|
||||
trigger: 'change'
|
||||
},
|
||||
],
|
||||
parkId: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择园区',
|
||||
trigger: 'change'
|
||||
},
|
||||
],
|
||||
merchantName: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择',
|
||||
trigger: 'change'
|
||||
},
|
||||
],
|
||||
totalRentalPrice: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入租金总价',
|
||||
trigger: 'blur'
|
||||
},
|
||||
{
|
||||
pattern: /^([1-9][\d]*|0)(\.[\d]+)?$/,
|
||||
message: '请输入正确的金额',
|
||||
trigger: 'blur'
|
||||
},
|
||||
],
|
||||
totalDeposit: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入押金总计',
|
||||
trigger: 'blur'
|
||||
},
|
||||
{
|
||||
pattern: /^([1-9][\d]*|0)(\.[\d]+)?$/,
|
||||
message: '请输入正确的金额',
|
||||
trigger: 'blur'
|
||||
},
|
||||
],
|
||||
payDeposit: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择押金支付方式',
|
||||
trigger: 'change'
|
||||
},
|
||||
],
|
||||
returnDeposit: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择押金退还方式',
|
||||
trigger: 'change'
|
||||
},
|
||||
],
|
||||
startTime: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择',
|
||||
trigger: 'change'
|
||||
},
|
||||
],
|
||||
endTime: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择',
|
||||
trigger: 'change'
|
||||
},
|
||||
],
|
||||
leaseTerm: [
|
||||
{
|
||||
required: true,
|
||||
message: '自动生成',
|
||||
trigger: 'blur'
|
||||
},
|
||||
],
|
||||
contacts: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入联系人',
|
||||
trigger: 'blur'
|
||||
},
|
||||
],
|
||||
contactsPhone: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入联系电话',
|
||||
trigger: 'blur'
|
||||
},
|
||||
],
|
||||
contractStatus: [
|
||||
{
|
||||
required: true,
|
||||
message: '请至少选择一个',
|
||||
trigger: 'change'
|
||||
},
|
||||
],
|
||||
contractEnclosure: [
|
||||
{
|
||||
required: true,
|
||||
message: '请至少选择一个',
|
||||
trigger: 'change'
|
||||
},
|
||||
],
|
||||
},
|
||||
pricingMethodOptions: [{ "fullName": "月付", "id": "1" }, { "fullName": "季付", "id": "2" }, { "fullName": "年付", "id": "3" }],
|
||||
pricingMethodProps: { "label": "fullName", "value": "id" },
|
||||
parkIdOptions: [],
|
||||
parkIdProps: { "label": "park_name", "value": "park_number" },
|
||||
merchantNameOptions: [],
|
||||
merchantNameProps: { "label": "cmp_nm", "value": "id" },
|
||||
payDepositOptions: [{ "fullName": "选项1", "id": "1" }, { "fullName": "选项2", "id": "2" }],
|
||||
payDepositProps: { "label": "fullName", "value": "id" },
|
||||
returnDepositOptions: [{ "fullName": "选项一", "id": "1" }, { "fullName": "选项二", "id": "2" }],
|
||||
returnDepositProps: { "label": "fullName", "value": "id" },
|
||||
contractStatusOptions: [{ "fullName": "待确认", "id": "10" }, { "fullName": "已确认", "id": "20" }, { "fullName": "已结案", "id": "30" }, { "fullName": "待确认", "id": "21" }],
|
||||
contractStatusProps: { "label": "fullName", "value": "id" },
|
||||
spacecontractspaceNamecolumnOptions: [{ "label": "园区编码", "value": "code" }, { "label": "园区名称", "value": "name" },],
|
||||
childIndex: -1,
|
||||
isEdit: false,
|
||||
interfaceRes: {
|
||||
contractNumber: [],
|
||||
contractName: [],
|
||||
pricingMethod: [],
|
||||
signingDate: [],
|
||||
parkId: [],
|
||||
merchantName: [],
|
||||
totalRentalPrice: [],
|
||||
totalDeposit: [],
|
||||
payDeposit: [],
|
||||
returnDeposit: [],
|
||||
startTime: [],
|
||||
endTime: [],
|
||||
leaseTerm: [],
|
||||
contacts: [],
|
||||
contactsPhone: [],
|
||||
contractStatus: [],
|
||||
creationTime: [],
|
||||
contractExplain: [],
|
||||
contractEnclosure: [],
|
||||
spacecontractcontractLineNumber: [],
|
||||
spacecontractspaceName: [],
|
||||
spacecontractspaceArea: [],
|
||||
spacecontracttotalRentalPrice: [],
|
||||
},
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['userInfo'])
|
||||
},
|
||||
watch: {},
|
||||
created() {
|
||||
this.dataAll()
|
||||
this.initDefaultData()
|
||||
this.dataValueAll = JSON.parse(JSON.stringify(this.dataForm))
|
||||
},
|
||||
mounted() { },
|
||||
methods: {
|
||||
prev() {
|
||||
this.index--
|
||||
if (this.index === 0) {
|
||||
this.prevDis = true
|
||||
}
|
||||
this.nextDis = false
|
||||
for (let index = 0; index < this.allList.length; index++) {
|
||||
const element = this.allList[index];
|
||||
if (this.index == index) {
|
||||
this.getInfo(element.id)
|
||||
}
|
||||
}
|
||||
},
|
||||
next() {
|
||||
this.index++
|
||||
if (this.index === this.allList.length - 1) {
|
||||
this.nextDis = true
|
||||
}
|
||||
this.prevDis = false
|
||||
for (let index = 0; index < this.allList.length; index++) {
|
||||
const element = this.allList[index];
|
||||
if (this.index == index) {
|
||||
this.getInfo(element.id)
|
||||
}
|
||||
}
|
||||
},
|
||||
getInfo(id) {
|
||||
request({
|
||||
url: '/api/example/Contract/' + id,
|
||||
method: 'get'
|
||||
}).then(res => {
|
||||
this.dataInfo(res.data)
|
||||
});
|
||||
},
|
||||
goBack() {
|
||||
this.visible = false
|
||||
this.$emit('refreshDataList', true)
|
||||
},
|
||||
changeData(model, index) {
|
||||
if (model == 'startTime' && this.dataForm.endTime != undefined) {
|
||||
const date1 = new Date(this.dataForm.startTime);
|
||||
const date2 = new Date(this.dataForm.endTime);
|
||||
let yearsDiff = date2.getFullYear() - date1.getFullYear();
|
||||
let monthsDiff = date2.getMonth() - date1.getMonth();
|
||||
if (monthsDiff < 0) {
|
||||
monthsDiff += 12;
|
||||
yearsDiff--;
|
||||
}
|
||||
const daysDiff = date2.getDate() - date1.getDate();
|
||||
if (daysDiff > 0) {
|
||||
monthsDiff++;
|
||||
}
|
||||
this.dataForm.leaseTerm = yearsDiff * 12 + monthsDiff;
|
||||
}
|
||||
if (model == 'endTime' && this.dataForm.startTime != undefined) {
|
||||
const date1 = new Date(this.dataForm.startTime);
|
||||
const date2 = new Date(this.dataForm.endTime);
|
||||
let yearsDiff = date2.getFullYear() - date1.getFullYear();
|
||||
let monthsDiff = date2.getMonth() - date1.getMonth();
|
||||
if (monthsDiff < 0) {
|
||||
monthsDiff += 12;
|
||||
yearsDiff--;
|
||||
}
|
||||
const daysDiff = date2.getDate() - date1.getDate();
|
||||
if (daysDiff > 0) {
|
||||
monthsDiff++;
|
||||
}
|
||||
this.dataForm.leaseTerm = yearsDiff * 12 + monthsDiff;
|
||||
}
|
||||
this.isEdit = false
|
||||
this.childIndex = index
|
||||
let modelAll = model.split("-");
|
||||
let faceMode = "";
|
||||
for (let i = 0; i < modelAll.length; i++) {
|
||||
faceMode += modelAll[i];
|
||||
}
|
||||
for (let key in this.interfaceRes) {
|
||||
if (key != faceMode) {
|
||||
let faceReList = this.interfaceRes[key]
|
||||
for (let i = 0; i < faceReList.length; i++) {
|
||||
if (faceReList[i].relationField == model) {
|
||||
let options = 'get' + key + 'Options';
|
||||
if (this[options]) {
|
||||
this[options]()
|
||||
}
|
||||
this.changeData(key, index)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
changeDataFormData(type, data, model, index, defaultValue) {
|
||||
if (!this.isEdit) {
|
||||
if (type == 2) {
|
||||
for (let i = 0; i < this.dataForm[data].length; i++) {
|
||||
if (index == -1) {
|
||||
this.dataForm[data][i][model] = defaultValue
|
||||
} else if (index == i) {
|
||||
this.dataForm[data][i][model] = defaultValue
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.dataForm[data] = defaultValue
|
||||
}
|
||||
}
|
||||
},
|
||||
dataAll() {
|
||||
this.getparkIdOptions();
|
||||
this.getmerchantNameOptions();
|
||||
},
|
||||
spacecontractExist() {
|
||||
let isOk = true;
|
||||
for (let i = 0; i < this.dataForm.spacecontractList.length; i++) {
|
||||
const e = this.dataForm.spacecontractList[i];
|
||||
if (e.totalRentalPrice) {
|
||||
var regPos = [{ "pattern": "/^([1-9][\\d]*|0)(\\.[\\d]+)?$/", "message": "请输入正确的金额" }]
|
||||
for (let i = 0; i < regPos.length; i++) {
|
||||
const element = regPos[i];
|
||||
if (element.pattern && !eval(element.pattern).test(e.totalRentalPrice)) {
|
||||
this.$message({
|
||||
message: element.message,
|
||||
type: 'error',
|
||||
duration: 1000
|
||||
});
|
||||
isOk = false
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return isOk;
|
||||
},
|
||||
getparkIdOptions() {
|
||||
const index = this.childIndex
|
||||
let templateJsonList = JSON.parse(JSON.stringify(this.interfaceRes.parkId))
|
||||
for (let i = 0; i < templateJsonList.length; i++) {
|
||||
let json = templateJsonList[i];
|
||||
if (json.relationField) {
|
||||
let relationFieldAll = json.relationField.split("-");
|
||||
let val = json.defaultValue;
|
||||
if (relationFieldAll.length > 1 && index > -1) {
|
||||
val = this.dataForm[relationFieldAll[0] + 'List'] && this.dataForm[relationFieldAll[0] + 'List'].length ? this.dataForm[relationFieldAll[0] + 'List'][index][relationFieldAll[1]] : ''
|
||||
} else {
|
||||
val = this.dataForm[relationFieldAll]
|
||||
}
|
||||
json.defaultValue = val
|
||||
}
|
||||
}
|
||||
let template = {
|
||||
paramList: templateJsonList
|
||||
}
|
||||
getDataInterfaceRes('582491427901014533', template).then(res => {
|
||||
let data = res.data
|
||||
this.parkIdOptions = data
|
||||
this.changeDataFormData(1, 'parkId', 'parkId', index, '')
|
||||
})
|
||||
},
|
||||
getmerchantNameOptions() {
|
||||
const index = this.childIndex
|
||||
let templateJsonList = JSON.parse(JSON.stringify(this.interfaceRes.merchantName))
|
||||
for (let i = 0; i < templateJsonList.length; i++) {
|
||||
let json = templateJsonList[i];
|
||||
if (json.relationField) {
|
||||
let relationFieldAll = json.relationField.split("-");
|
||||
let val = json.defaultValue;
|
||||
if (relationFieldAll.length > 1 && index > -1) {
|
||||
val = this.dataForm[relationFieldAll[0] + 'List'] && this.dataForm[relationFieldAll[0] + 'List'].length ? this.dataForm[relationFieldAll[0] + 'List'][index][relationFieldAll[1]] : ''
|
||||
} else {
|
||||
val = this.dataForm[relationFieldAll]
|
||||
}
|
||||
json.defaultValue = val
|
||||
}
|
||||
}
|
||||
let template = {
|
||||
paramList: templateJsonList
|
||||
}
|
||||
getDataInterfaceRes('582842667524685829', template).then(res => {
|
||||
let data = res.data
|
||||
this.merchantNameOptions = data
|
||||
this.changeDataFormData(1, 'merchantName', 'merchantName', index, '')
|
||||
})
|
||||
},
|
||||
goBack() {
|
||||
this.$emit('refresh')
|
||||
},
|
||||
clearData() {
|
||||
this.dataForm = JSON.parse(JSON.stringify(this.dataValueAll))
|
||||
},
|
||||
init(id, isDetail, allList) {
|
||||
this.prevDis = false
|
||||
this.nextDis = false
|
||||
this.allList = allList || []
|
||||
if (allList.length) {
|
||||
this.index = this.allList.findIndex(item => item.id === id)
|
||||
if (this.index == 0) {
|
||||
this.prevDis = true
|
||||
}
|
||||
if (this.index == this.allList.length - 1) {
|
||||
this.nextDis = true
|
||||
}
|
||||
} else {
|
||||
this.prevDis = true
|
||||
this.nextDis = true
|
||||
}
|
||||
this.dataForm.id = id || 0;
|
||||
this.visible = true;
|
||||
this.$nextTick(() => {
|
||||
if (this.dataForm.id) {
|
||||
this.loading = true
|
||||
request({
|
||||
url: '/api/example/Contract/' + this.dataForm.id,
|
||||
method: 'get'
|
||||
}).then(res => {
|
||||
this.dataInfo(res.data)
|
||||
this.loading = false
|
||||
});
|
||||
} else {
|
||||
this.clearData()
|
||||
this.initDefaultData()
|
||||
}
|
||||
});
|
||||
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
|
||||
},
|
||||
//初始化默认数据
|
||||
initDefaultData() {
|
||||
|
||||
},
|
||||
// 表单提交
|
||||
dataFormSubmit(type) {
|
||||
this.dataFormSubmitType = type ? type : 0
|
||||
this.$refs['formRef'].validate((valid) => {
|
||||
if (valid) {
|
||||
if (!this.spacecontractExist()) return
|
||||
this.request()
|
||||
}
|
||||
})
|
||||
},
|
||||
request() {
|
||||
let _data = this.dataList()
|
||||
if (this.dataFormSubmitType == 2) {
|
||||
this.continueBtnLoading = true
|
||||
} else {
|
||||
this.btnLoading = true
|
||||
}
|
||||
if (!this.dataForm.id) {
|
||||
request({
|
||||
url: '/api/example/Contract',
|
||||
method: 'post',
|
||||
data: _data
|
||||
}).then((res) => {
|
||||
this.$message({
|
||||
message: res.msg,
|
||||
type: 'success',
|
||||
duration: 1000,
|
||||
onClose: () => {
|
||||
if (this.dataFormSubmitType == 2) {
|
||||
this.$nextTick(() => {
|
||||
this.clearData()
|
||||
this.initDefaultData()
|
||||
})
|
||||
this.continueBtnLoading = false
|
||||
return
|
||||
}
|
||||
this.visible = false
|
||||
this.btnLoading = false
|
||||
this.$emit('refresh', true)
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
this.btnLoading = false
|
||||
this.continueBtnLoading = false
|
||||
})
|
||||
} else {
|
||||
request({
|
||||
url: '/api/example/Contract/' + this.dataForm.id,
|
||||
method: 'PUT',
|
||||
data: _data
|
||||
}).then((res) => {
|
||||
this.$message({
|
||||
message: res.msg,
|
||||
type: 'success',
|
||||
duration: 1000,
|
||||
onClose: () => {
|
||||
if (this.dataFormSubmitType == 2) return this.continueBtnLoading = false
|
||||
this.visible = false
|
||||
this.btnLoading = false
|
||||
this.$emit('refresh', true)
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
this.btnLoading = false
|
||||
this.continueBtnLoading = false
|
||||
})
|
||||
}
|
||||
},
|
||||
addspacecontractList() {
|
||||
let item = {
|
||||
contractLineNumber: undefined,
|
||||
spaceName: '',
|
||||
spaceArea: undefined,
|
||||
totalRentalPrice: undefined,
|
||||
}
|
||||
this.getspacecontractList(item)
|
||||
},
|
||||
delspacecontractList(index) {
|
||||
this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.dataForm.spacecontractList.splice(index, 1);
|
||||
}).catch(() => {
|
||||
});
|
||||
},
|
||||
getspacecontractList(value) {
|
||||
let item = { ...this.tableRows.spacecontractList, ...value }
|
||||
this.dataForm.spacecontractList.push(item)
|
||||
this.childIndex = this.dataForm.spacecontractList.length - 1
|
||||
this.isEdit = true
|
||||
this.isEdit = false
|
||||
this.childIndex = -1
|
||||
},
|
||||
openSelectDialog(key) {
|
||||
this.currTableConf = this.addTableConf[key]
|
||||
this.currVmodel = key
|
||||
this.selectDialogVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.selectDialog.init()
|
||||
})
|
||||
},
|
||||
addForSelect(data) {
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
let t = data[i]
|
||||
if (this['get' + this.currVmodel]) {
|
||||
this['get' + this.currVmodel](t)
|
||||
}
|
||||
}
|
||||
},
|
||||
dateTime(timeRule, timeType, timeTarget, timeValueData, dataValue) {
|
||||
let timeDataValue = null;
|
||||
let timeValue = Number(timeValueData)
|
||||
if (timeRule) {
|
||||
if (timeType == 1) {
|
||||
timeDataValue = timeValue
|
||||
} else if (timeType == 2) {
|
||||
timeDataValue = dataValue
|
||||
} else if (timeType == 3) {
|
||||
timeDataValue = new Date().getTime()
|
||||
} else if (timeType == 4) {
|
||||
let previousDate = '';
|
||||
if (timeTarget == 1 || timeTarget == 2) {
|
||||
previousDate = getDateDay(timeTarget, timeType, timeValue)
|
||||
timeDataValue = new Date(previousDate).getTime()
|
||||
} else if (timeTarget == 3) {
|
||||
previousDate = getBeforeData(timeValue)
|
||||
timeDataValue = new Date(previousDate).getTime()
|
||||
} else {
|
||||
timeDataValue = getBeforeTime(timeTarget, timeValue).getTime()
|
||||
}
|
||||
} else if (timeType == 5) {
|
||||
let previousDate = '';
|
||||
if (timeTarget == 1 || timeTarget == 2) {
|
||||
previousDate = getDateDay(timeTarget, timeType, timeValue)
|
||||
timeDataValue = new Date(previousDate).getTime()
|
||||
} else if (timeTarget == 3) {
|
||||
previousDate = getLaterData(timeValue)
|
||||
timeDataValue = new Date(previousDate).getTime()
|
||||
} else {
|
||||
timeDataValue = getLaterTime(timeTarget, timeValue).getTime()
|
||||
}
|
||||
}
|
||||
}
|
||||
return timeDataValue;
|
||||
},
|
||||
time(timeRule, timeType, timeTarget, timeValue, formatType, dataValue) {
|
||||
let format = formatType == 'HH:mm' ? 'HH:mm:00' : formatType
|
||||
let timeDataValue = null
|
||||
if (timeRule) {
|
||||
if (timeType == 1) {
|
||||
timeDataValue = timeValue || '00:00:00'
|
||||
if (timeDataValue.split(':').length == 3) {
|
||||
timeDataValue = timeDataValue
|
||||
} else {
|
||||
timeDataValue = timeDataValue + ':00'
|
||||
}
|
||||
} else if (timeType == 2) {
|
||||
timeDataValue = dataValue
|
||||
} else if (timeType == 3) {
|
||||
timeDataValue = this.jnpf.toDate(new Date(), format)
|
||||
} else if (timeType == 4) {
|
||||
let previousDate = '';
|
||||
previousDate = getBeforeTime(timeTarget, timeValue)
|
||||
timeDataValue = this.jnpf.toDate(previousDate, format)
|
||||
} else if (timeType == 5) {
|
||||
let previousDate = '';
|
||||
previousDate = getLaterTime(timeTarget, timeValue)
|
||||
timeDataValue = this.jnpf.toDate(previousDate, format)
|
||||
}
|
||||
}
|
||||
return timeDataValue;
|
||||
},
|
||||
dataList() {
|
||||
var _data = this.dataForm;
|
||||
return _data;
|
||||
},
|
||||
dataInfo(dataAll) {
|
||||
let _dataAll = dataAll
|
||||
this.dataForm = _dataAll
|
||||
this.isEdit = true
|
||||
this.dataAll()
|
||||
for (let i = 0; i < _dataAll.spacecontractList.length; i++) {
|
||||
this.childIndex = i
|
||||
}
|
||||
this.childIndex = -1
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
</script>
|
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue