Commit 70782e64 authored by cx49085's avatar cx49085
Browse files

bug修复

parent 17929662
...@@ -37,6 +37,15 @@ export function updateContractType(data) { ...@@ -37,6 +37,15 @@ export function updateContractType(data) {
}) })
} }
// 更新合同类型状态
export function updateContractTypeState(data) {
return request({
url: '/contractType/updateBystate',
method: 'post',
data
})
}
/************* 合同管理 ************/ /************* 合同管理 ************/
// 获取合同列表 // 获取合同列表
......
...@@ -97,7 +97,11 @@ ...@@ -97,7 +97,11 @@
.el-range-separator { .el-range-separator {
box-sizing: content-box; box-sizing: content-box;
} }
.contract-form{
.el-form-item {
margin-bottom: 12px;
}
}
.contract-description-form { .contract-description-form {
.required { .required {
&::after{ &::after{
...@@ -105,6 +109,9 @@ ...@@ -105,6 +109,9 @@
color: red; color: red;
} }
} }
.el-descriptions-item__cell{
padding-bottom: 10px;
}
} }
.petty-data-simple{ .petty-data-simple{
.el-badge__content.is-fixed{ .el-badge__content.is-fixed{
......
...@@ -89,6 +89,7 @@ export function bankAccountValid (rule, value, callback) { ...@@ -89,6 +89,7 @@ export function bankAccountValid (rule, value, callback) {
// 电话号码验证 // 电话号码验证
export function checkPhone (rule, value, callback) { export function checkPhone (rule, value, callback) {
if (!value) { if (!value) {
console.log(1)
return callback(new Error('手机号不能为空')); return callback(new Error('手机号不能为空'));
} else { } else {
const reg = /(^1\d{10}$)|(^[0-9]\d{7}$)/ const reg = /(^1\d{10}$)|(^[0-9]\d{7}$)/
...@@ -116,7 +117,9 @@ export function pathValid (rule, value, callback) { ...@@ -116,7 +117,9 @@ export function pathValid (rule, value, callback) {
//定义金额校验 //定义金额校验
export function money(rule, value, callback) { export function money(rule, value, callback) {
let RegExp = /^(([1-9]{1}\d*)|(0{1}))(\.\d{1,2})?$/; let RegExp = /^(([1-9]{1}\d*)|(0{1}))(\.\d{1,2})?$/;
if (RegExp.test(value)) { if(value.toString() === '') {
callback(new Error('金额不能为空'))
}else if (RegExp.test(value)) {
callback(); callback();
} else { } else {
callback(new Error("金额格式错误")); callback(new Error("金额格式错误"));
...@@ -126,9 +129,23 @@ export function money(rule, value, callback) { ...@@ -126,9 +129,23 @@ export function money(rule, value, callback) {
//校验账号密码,只允许数字和字母 //校验账号密码,只允许数字和字母
export function account_password_valid(rule, value, callback){ export function account_password_valid(rule, value, callback){
let reg = /^[a-zA-Z0-9]*$/ let reg = /^[a-zA-Z0-9]*$/
if (reg.test(value)) { if(value.toString() === '') {
callback(new Error('不能为空'))
}else if (reg.test(value)) {
callback(); callback();
} else { } else {
callback(new Error("格式错误,只允许输入数字和字母")); callback(new Error("格式错误,只允许输入数字和字母"));
} }
}
//只允许数字
export function number_valid(rule, value, callback){
let reg = /^[0-9]*$/
if(value.toString() === '') {
return callback(new Error('不能为空'))
}else if (reg.test(value)) {
callback();
} else {
callback(new Error("只允许输入数字"));
}
} }
\ No newline at end of file
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<!-- <i class="el-icon-close" @click="closeDrawer"></i> --> <!-- <i class="el-icon-close" @click="closeDrawer"></i> -->
</div> </div>
<div class="container"> <div class="container">
<el-form v-model="formData" :rules="addFormValidRules" ref="form"> <el-form :model="formData" :rules="addFormValidRules" ref="form" class="contract-form">
<el-descriptions :column="3" border class="contract-description-form"> <el-descriptions :column="3" border class="contract-description-form">
<el-descriptions-item label="母合同名称" :span="3" v-if="parseInt(formData.contractNature) === 2"> <el-descriptions-item label="母合同名称" :span="3" v-if="parseInt(formData.contractNature) === 2">
<el-form-item prop="contractParent"> <el-form-item prop="contractParent">
...@@ -86,7 +86,8 @@ ...@@ -86,7 +86,8 @@
<el-descriptions-item label="合同金额" labelClassName="required"> <el-descriptions-item label="合同金额" labelClassName="required">
<el-form-item prop="contractMoney"> <el-form-item prop="contractMoney">
<el-input placeholder="请输入合同金额" type="number" v-model="formData.contractMoney" step=“0.01”> <el-input placeholder="请输入合同金额" type="number" v-model="formData.contractMoney" step=“0.01”
:min="0">
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
...@@ -100,7 +101,7 @@ ...@@ -100,7 +101,7 @@
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="税点" labelClassName="required"> <el-descriptions-item label="税点" labelClassName="required">
<el-form-item prop="taxPoint"> <el-form-item prop="taxPoint">
<el-input placeholder="请输入税点" type="number" v-model="formData.taxPoint" min=“0.00” <el-input placeholder="请输入税点" type="number" v-model="formData.taxPoint" min=“0.00” :min="0"
step=“0.01”> step=“0.01”>
</el-input> </el-input>
</el-form-item> </el-form-item>
...@@ -172,6 +173,7 @@ ...@@ -172,6 +173,7 @@
<br /> <br />
<el-form-item> <el-form-item>
<el-button type="primary" @click="addContract">{{ !isEdit ? '立即创建' : '修改' }}</el-button> <el-button type="primary" @click="addContract">{{ !isEdit ? '立即创建' : '修改' }}</el-button>
<el-button @click="$router.back();">返回</el-button>
<!-- <el-button @click="closeDrawer">取消</el-button> --> <!-- <el-button @click="closeDrawer">取消</el-button> -->
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -182,10 +184,10 @@ ...@@ -182,10 +184,10 @@
<script> <script>
import { selectAllContractTypeList, selectAllContractList, addContract, getContractById, updateContract, selectContractFiles, deleteContract } from '@/api/contract' import { selectAllContractTypeList, selectAllContractList, addContract, getContractById, updateContract, selectContractFiles, deleteContract } from '@/api/contract'
import { deepClone } from '@/utils' import { deepClone } from '@/utils'
import { contractNatures } from '../contractStaticData' import { contractNatures, addFormValidRules } from '../contractStaticData'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { downloadPDFFile } from '@/utils/download' import { downloadPDFFile } from '@/utils/download'
import { checkPhone } from '@/utils/myValidate' // import { checkPhone } from '@/utils/myValidate'
export default { export default {
// props: ['drawerVisible'], // props: ['drawerVisible'],
data() { data() {
...@@ -219,6 +221,7 @@ export default { ...@@ -219,6 +221,7 @@ export default {
contractParentList: [], contractParentList: [],
contractNatures: deepClone(contractNatures), contractNatures: deepClone(contractNatures),
isEdit: false, isEdit: false,
addFormValidRules,
action: '', action: '',
uploadChange: false uploadChange: false
} }
...@@ -273,46 +276,50 @@ export default { ...@@ -273,46 +276,50 @@ export default {
}) })
}, },
addContract() { addContract() {
let validRes = this.validFormData() // let validRes = this.validFormData()
if (validRes.length) { // if (validRes.length) {
this.$message.warning("带 * 号必填,请正确填写信息") // this.$message.warning("带 * 号必填,请正确填写信息")
return // return
} // }
const params = {
companyId: this.companyId || this.$store.getters.companyId, this.$refs.form.validate((valid) => {
...this.formData if (valid) {
} const params = {
// const toNumberKeys = ['contractNature','contractParent','contractMoney'] companyId: this.companyId || this.$store.getters.companyId,
// toNumberKeys.forEach(key => { ...this.formData
// params[key] = Number(params[key])
// })
!this.formData.contarctRemarks && (params.contarctRemarks = ' ')
if (!this.isEdit) {
addContract(params).then(res => {
if (res.success) {
this.$message.success("成功添加合同")
this.addContractFile(res.data)
setTimeout(() => {
this.$router.push({ path: '/contractList' })
}, 1000);
} else {
this.$message.warning("添加合同失败")
} }
}) // const toNumberKeys = ['contractNature','contractParent','contractMoney']
} else { // toNumberKeys.forEach(key => {
this.addContractFile(this.formData.contractId) // params[key] = Number(params[key])
updateContract(params).then(res => { // })
if (res.success) { !this.formData.contarctRemarks && (params.contarctRemarks = ' ')
this.$message.success("成功修改合同") if (!this.isEdit) {
setTimeout(() => { addContract(params).then(res => {
this.$router.push({ path: '/contractList' }) if (res.success) {
}, 1000); this.$message.success("成功添加合同")
this.addContractFile(res.data)
setTimeout(() => {
this.$router.push({ path: '/contractList' })
}, 1000);
} else {
this.$message.warning("添加合同失败")
}
})
} else { } else {
this.$message.warning("添加修改失败") this.addContractFile(this.formData.contractId)
updateContract(params).then(res => {
if (res.success) {
this.$message.success("成功修改合同")
setTimeout(() => {
this.$router.push({ path: '/contractList' })
}, 1000);
} else {
this.$message.warning("添加修改失败")
}
})
} }
}) }
} });
}, },
uploadOnchange(file, fileList) { uploadOnchange(file, fileList) {
this.uploadChange = true this.uploadChange = true
......
import { checkPhone } from "@/utils/myValidate" import { checkPhone, money as contractMoneyValid, number_valid } from "@/utils/myValidate"
export const contractNatures = ['普通合同', '框架合同', '补充协议', '其它合同'] export const contractNatures = ['普通合同', '框架合同', '补充协议', '其它合同']
// firstParty: '',
// contractName: '',
// contractNature: this.$route.query.checkedContractNature,
// contarctRemarks: ' ',
// contractStartTime: '',
// contractFirstParty: '',
// contractMoney: "0",
// contractNumber: '',
// contractPaetyb: '',
// contractEndTime: '',
// signingTime: '',
// partybName: '',
// taxPoint: '',
// tax: '0',
// typeId: '',
// safekeeping: '',
// firstPartyAddress: '',
// preparedBy: '',
// contractParent: ''
export const addFormValidRules = { export const addFormValidRules = {
firstParty: [{required: true, message: '甲方签订人不能为空', trigger: 'blur'}],
contractName: [{required: true, message: '合同名称不能为空', trigger: 'blur'}],
// contractNature: this.$route.query.checkedContractNature,
// contarctRemarks: [{required: true, message: '不能为空', trigger: 'blur'}],
contractStartTime: [{required: true, message: '合同开始日期不能为空', trigger: 'blur'}],
contractFirstParty: [{required: true, message: '客户名称(甲方)不能为空', trigger: 'blur'}],
contractMoney: [{required: true, message: '合同金额不能为空', trigger: 'blur'}],
contractNumber: [{required: true,validator: number_valid, trigger: ['change','blur']}],
contractPaetyb: [{required: true, message: '合同乙方不能为空', trigger: 'blur'}],
contractEndTime: [{required: true, message: '合同结束日期不能为空', trigger: 'blur'}],
signingTime: [{required: true, message: '合同签订时间不能为空', trigger: 'blur'}],
partybName: [{required: true, message: '乙方签订人不能为空', trigger: 'blur'}],
tax: [{required: true, message: '是否含税不能为空', trigger: 'blur'}],
taxPoint: [{required: true, validator: function(rule, value, callback){
if(value === null || value === undefined || value === ''){
callback(new Error('税点不能为空'))
}else if(Number(value) === NaN || Number(value) < 0){
callback(new Error('请输入正确格式'))
}else{
callback()
}
}, trigger: 'blur'}],
typeId: [{required: true, message: '合同类型不能为空', trigger: 'blur'}],
safekeeping: [{required: true, message: '合同保管人不能为空', trigger: 'blur'}],
firstPartyAddress: [{required: true, message: '客户联系地址不能为空', trigger: 'blur'}],
preparedBy: [{required: true, message: '合同制定人不能为空', trigger: 'blur'}],
contractParent: [{required: true, message: '母合同名称不能为空', trigger: 'blur'}],
firstPartyPhone: [ firstPartyPhone: [
{ required: true, validator: checkPhone, trigger: ['blur', 'change'] }, { required: true, validator: checkPhone, trigger: ['change','blur'] },
], ],
contractMoney: [
{
validator: contractMoneyValid, trigger: ['blur']
}
]
} }
\ No newline at end of file
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
<el-table-column prop="state" label="启用状态" width="100px"> <el-table-column prop="state" label="启用状态" width="100px">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch v-model="scope.row.state" <el-switch v-model="scope.row.state"
@change="update({ ...scope.row, state: Math.abs(scope.row.state - 1) })" @change="updateState({ ...scope.row, state: Math.abs(scope.row.state - 1) })"
active-color="#13ce66" inactive-color="#ff4949"> active-color="#13ce66" inactive-color="#ff4949">
</el-switch> </el-switch>
</template> </template>
...@@ -67,7 +67,8 @@ ...@@ -67,7 +67,8 @@
import { import {
selectContractTypeList, selectContractTypeList,
addContractType as insert, addContractType as insert,
updateContractType updateContractType,
updateContractTypeState
} from '@/api/contract' } from '@/api/contract'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
...@@ -124,7 +125,7 @@ export default { ...@@ -124,7 +125,7 @@ export default {
}) })
}, },
update(data) { update(data) {
function updateCore() { if (this.$refs.form) {
const params = { const params = {
companyId: this.companyId || this.$store.getters.companyId, companyId: this.companyId || this.$store.getters.companyId,
...data ...data
...@@ -137,17 +138,21 @@ export default { ...@@ -137,17 +138,21 @@ export default {
this.getContractTypeList() this.getContractTypeList()
} }
}) })
}
},
updateState(data){
const params = {
companyId: this.companyId || this.$store.getters.companyId,
...data
} }
if (this.$refs.form) { !Number.isInteger(data.state) && (params.state = Number(!data.state))
this.$refs.form.validate((valida) => { updateContractTypeState(params).then(res => {
if (valida) { if (res.success) {
updateCore.call(this) this.$message.success("修改成功")
// this.dialogFormVisible && (this.dialogFormVisible = false)
this.getContractTypeList()
} }
}) })
} else {
updateCore.call(this)
}
}, },
addContractType() { addContractType() {
this.$refs.form.validate((valida) => { this.$refs.form.validate((valida) => {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment