|
|
@@ -17,7 +17,6 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div style="margin-top: 60px">
|
|
|
- {{paymentTerm}}
|
|
|
<containerTitle title="基础信息"></containerTitle>
|
|
|
<basic-container>
|
|
|
<el-form :model="form" ref="form" label-width="100px" class="demo-ruleForm">
|
|
|
@@ -26,12 +25,16 @@
|
|
|
<el-form-item :label="item.label" :prop="item.prop" :rules="item.rules">
|
|
|
<el-date-picker v-if="item.type === 'datetime'" style="width: 100%;" v-model="form[item.prop]" size="small" type="datetime" :disabled="item.disabled?true:false" placeholder="选择日期" value-format="yyyy-MM-dd HH:mm:ss"/>
|
|
|
<el-date-picker v-else-if="item.type === 'date'" style="width: 100%;" v-model="form[item.prop]" size="small" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"/>
|
|
|
- <el-select v-else-if="item.prop === 'paymentType'" style="width: 100%" size="small" placeholder="请选择" clearable filterable @change="selectBD">
|
|
|
+ <el-select v-else-if="item.prop === 'paymentType'" style="width: 100%" v-model="form[item.prop]" size="small" placeholder="请选择" clearable filterable>
|
|
|
<el-option v-for="(item,index) in paymentTerm" :key="index" :label="item.dictValue" :value="item.dictValue"></el-option>
|
|
|
</el-select>
|
|
|
<selectComponent v-else-if="item.prop === 'corpId'" v-model="form[item.prop]" :configuration="configuration"/>
|
|
|
- <el-input type="age" v-else v-model="form[item.prop]" :disabled="item.disabled?true:false" size="small" autocomplete="off" placeholder="请输入">
|
|
|
- <template v-if="item.prop === 'debitAmount'|| item.prop === 'advanceAmount'||item.prop === 'settlmentAmount'||item.prop === 'balanceAmount'" slot="append">元</template>
|
|
|
+ <el-input type="textarea" v-else-if="(item.prop === 'remark')" v-model="form[item.prop]" size="small" autocomplete="off" placeholder="请输入"></el-input>
|
|
|
+ <el-input type="age" v-else-if="item.prop === 'debitAmount'" v-model="form[item.prop]" @change="debitChange" :disabled="item.disabled?true:false" size="small" autocomplete="off" placeholder="请输入">
|
|
|
+ <template slot="append">元</template>
|
|
|
+ </el-input>
|
|
|
+ <el-input type="age" v-else v-model="form[item.prop]" :disabled="item.disabled?true:false" size="small" value="0" autocomplete="off" placeholder="请输入">
|
|
|
+ <template v-if="item.prop === 'debitAmount'|| item.prop === 'advanceAmount'||item.prop === 'settlmentAmount'||item.prop === 'balanceAmount'" slot="append">元</template>
|
|
|
</el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
@@ -200,8 +203,9 @@
|
|
|
import userOption from "./configuration/userList.json";
|
|
|
import { getList } from "@/api/system/user";
|
|
|
import { getDeptLazyTree} from "@/api/system/dept";
|
|
|
- import type from "../service-items/type";
|
|
|
- import data from "../../util/data";
|
|
|
+
|
|
|
+ //上传附件删除
|
|
|
+ import { corpsbank } from "@/api/basicData/configuration"
|
|
|
|
|
|
export default {
|
|
|
data() {
|
|
|
@@ -218,9 +222,10 @@
|
|
|
//客户组件配置控制
|
|
|
configuration:{
|
|
|
multipleChoices:false,
|
|
|
- multiple:true,
|
|
|
- searchShow:true,
|
|
|
- collapseTags:true,
|
|
|
+ multiple:false,
|
|
|
+ disabled:false,
|
|
|
+ searchShow:false,
|
|
|
+ collapseTags:false,
|
|
|
placeholder:'请点击右边按钮选择',
|
|
|
dicData:[]
|
|
|
},
|
|
|
@@ -267,13 +272,18 @@
|
|
|
]
|
|
|
}, {
|
|
|
label: '客户名称',
|
|
|
- prop: 'corpId'
|
|
|
+ prop: 'corpId',
|
|
|
},{
|
|
|
label: '合同金额',
|
|
|
prop: 'debitAmount',
|
|
|
rules: [
|
|
|
{
|
|
|
- pattern: /^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/,
|
|
|
+ pattern: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
|
|
|
+ message: ' ',
|
|
|
+ trigger: 'blur'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
message: ' ',
|
|
|
trigger: 'blur'
|
|
|
}
|
|
|
@@ -284,7 +294,7 @@
|
|
|
prop: 'advanceAmount',
|
|
|
rules: [
|
|
|
{
|
|
|
- pattern: /^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/,
|
|
|
+ pattern: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
|
|
|
message: ' ',
|
|
|
trigger: 'blur'
|
|
|
}
|
|
|
@@ -296,7 +306,7 @@
|
|
|
disabled: true,
|
|
|
rules: [
|
|
|
{
|
|
|
- pattern: /^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/,
|
|
|
+ pattern: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
|
|
|
message: ' ',
|
|
|
trigger: 'blur'
|
|
|
}
|
|
|
@@ -308,7 +318,7 @@
|
|
|
disabled: true,
|
|
|
rules: [
|
|
|
{
|
|
|
- pattern: /^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/,
|
|
|
+ pattern:/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
|
|
|
message: ' ',
|
|
|
trigger: 'blur'
|
|
|
}
|
|
|
@@ -329,6 +339,8 @@
|
|
|
label: '制单日期',
|
|
|
prop: 'createTime',
|
|
|
type: 'datetime',
|
|
|
+ valueFormat:"yyyy-MM-dd HH:mm:ss",
|
|
|
+ format:"yyyy-MM-dd",
|
|
|
disabled: true
|
|
|
},
|
|
|
{
|
|
|
@@ -350,11 +362,15 @@
|
|
|
{
|
|
|
label: '开始日期',
|
|
|
prop: 'beginTime',
|
|
|
+ valueFormat:"yyyy-MM-dd HH:mm:ss",
|
|
|
+ format:"yyyy-MM-dd",
|
|
|
type:'datetime',
|
|
|
},
|
|
|
{
|
|
|
label: '结束日期',
|
|
|
prop: 'endTime',
|
|
|
+ valueFormat:"yyyy-MM-dd HH:mm:ss",
|
|
|
+ format:"yyyy-MM-dd",
|
|
|
type:'datetime',
|
|
|
},
|
|
|
{
|
|
|
@@ -449,13 +465,17 @@
|
|
|
created() {
|
|
|
// 表格行编辑 输入框change事件
|
|
|
//单价
|
|
|
- this.optionTable.column[4].change = function (val) {
|
|
|
+ this.optionTable.column[5].change = function (val) {
|
|
|
val.row.amount = val.row.quantity*val.value;
|
|
|
}
|
|
|
//数量
|
|
|
- this.optionTable.column[6].change = function (val) {
|
|
|
+ this.optionTable.column[7].change = function (val) {
|
|
|
val.row.amount = val.row.price*val.value;
|
|
|
}
|
|
|
+ this.$set(this.form,"debitAmount",0)
|
|
|
+ this.$set(this.form,"advanceAmount",0)
|
|
|
+ this.$set(this.form,"settlmentAmount",0)
|
|
|
+ this.$set(this.form,"balanceAmount",0)
|
|
|
this.id = BigInt(this.$route.query.id);//字符串转数字 超长用BigInt
|
|
|
this.getProjectDetail();
|
|
|
const params = {
|
|
|
@@ -474,8 +494,22 @@
|
|
|
if(this.id){
|
|
|
projectDetail(this.id,"0,1,2,3,4,5").then(res =>{
|
|
|
this.form = res.data.data;
|
|
|
+ this.upLoadData =res.data.data.filesList
|
|
|
if(res.data.data.itemList){
|
|
|
this.data = res.data.data.itemList;
|
|
|
+ let status = [];
|
|
|
+ this.data.forEach(item =>{
|
|
|
+ item.status == 0 ? status.push(true) : status.push(false)
|
|
|
+ })
|
|
|
+ //如果 明细列表存在 请核之后的状态 禁止编辑一些输入框
|
|
|
+ if(status.findIndex(item => item == false) == 0){
|
|
|
+ this.basicData.column.forEach(item =>{
|
|
|
+ if(item.prop == "code" || item.prop == "cname" || item.prop == "corpId" || item.prop == "debitAmount"){
|
|
|
+ item.disabled = true
|
|
|
+ this.configuration.disabled = true
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
if(pleaseCheck === 10086){
|
|
|
this.pleaseCheck();
|
|
|
}
|
|
|
@@ -486,7 +520,9 @@
|
|
|
}else{
|
|
|
getSysNo().then(res =>{
|
|
|
this.$set(this.form,"sysNo", res.data.data)
|
|
|
- this.$set(this.form,"createTime", new Date())
|
|
|
+ let date = new Date();
|
|
|
+ let strDate = date.getFullYear() + "-" + date.getMonth() + 1 + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
|
|
|
+ this.$set(this.form,"createTime",strDate)
|
|
|
});
|
|
|
getUserInfo().then(res =>{
|
|
|
this.$set(this.form,"createUserName", res.data.data.name)
|
|
|
@@ -501,17 +537,17 @@
|
|
|
type: "warning"
|
|
|
}).then(() => {
|
|
|
this.data.splice(index,0)
|
|
|
- this.$message({
|
|
|
- type: "success",
|
|
|
- message: "操作成功!"
|
|
|
- });
|
|
|
// 数据回调进行刷新
|
|
|
done(row);
|
|
|
});
|
|
|
},
|
|
|
- //slelect 强制赋值
|
|
|
- selectBD(){
|
|
|
- this.$forceUpdate();
|
|
|
+ // 合同金额
|
|
|
+ debitChange(val){
|
|
|
+ if(val){
|
|
|
+ if(!this.form.settlmentAmount){
|
|
|
+ this.$set(this.form,"balanceAmount",val)
|
|
|
+ }
|
|
|
+ }
|
|
|
},
|
|
|
//点击修改或保存时触发
|
|
|
rowCellTwo(row,index){
|
|
|
@@ -550,17 +586,7 @@
|
|
|
cancelButtonText: "取消",
|
|
|
type: "warning"
|
|
|
}).then(()=>{
|
|
|
- this.$refs["form"].validate((valid) => {
|
|
|
- if(valid){
|
|
|
- this.$router.push({
|
|
|
- path: "/mainItems_detailsPage",
|
|
|
- query: {id: ''},
|
|
|
- });
|
|
|
- this.form = {}
|
|
|
- this.data = []
|
|
|
- this.id = ''
|
|
|
- }
|
|
|
- });
|
|
|
+ this.editMainProject(10010);
|
|
|
})
|
|
|
},
|
|
|
//请核
|
|
|
@@ -568,14 +594,19 @@
|
|
|
if(this.crudSelection.length!=0){
|
|
|
let result = [];
|
|
|
this.crudSelection.forEach(item=>{
|
|
|
- //新录入状态下 才可提交审核
|
|
|
- // if(item.status === 0){
|
|
|
- // result.push("true")
|
|
|
- // }else{
|
|
|
- // result.push("false")
|
|
|
- // }
|
|
|
- this.editMainProject(10086);
|
|
|
+ // 新录入状态下 才可提交审核
|
|
|
+ item.status == 0 ? result.push(true) : result.push(false)
|
|
|
})
|
|
|
+ //如果数组内有一个 为false 则为false
|
|
|
+ if(result.findIndex(item => item != true) == -1){
|
|
|
+ this.editMainProject(10086);
|
|
|
+ }else{
|
|
|
+ this.$message({
|
|
|
+ type: "error",
|
|
|
+ message: "请核数据中存在已请核数据!"
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
}else{
|
|
|
this.$message({
|
|
|
type: "error",
|
|
|
@@ -593,7 +624,7 @@
|
|
|
});
|
|
|
//刷新列表
|
|
|
this.loading = true;
|
|
|
- projectDetail(this.id,0).then(res =>{
|
|
|
+ projectDetail(this.id,"0,1,2,3,4,5").then(res =>{
|
|
|
if(res.data.data.itemList){
|
|
|
this.data = res.data.data.itemList;
|
|
|
}else{
|
|
|
@@ -609,27 +640,40 @@
|
|
|
editMainProject(pleaseCheck){
|
|
|
this.$refs["form"].validate((valid) => {
|
|
|
//校验明细列表
|
|
|
- let user = true;
|
|
|
- this.data.forEach((item,index) =>{
|
|
|
- if(!item.userid && !item.deptid && user){
|
|
|
- this.$message({
|
|
|
- type: "warning",
|
|
|
- message: "请检查明细列表第"+(index+1)+"行必填数据数据"
|
|
|
- });
|
|
|
- user = false;
|
|
|
- }
|
|
|
- })
|
|
|
- if(valid && user){
|
|
|
+ let valids = true;
|
|
|
+ if(this.crudSelection.length != 0 ){
|
|
|
+ this.crudSelection.forEach((item) =>{
|
|
|
+ if((item.userid =="" || !item.deptid) && valids){
|
|
|
+ this.$message({
|
|
|
+ type: "warning",
|
|
|
+ message: "请检查明细列表第 "+(item.$index +1 )+" 行必填项"
|
|
|
+ });
|
|
|
+ valids = false;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if(valid && valids){
|
|
|
const params = {
|
|
|
...this.form,
|
|
|
itemList:this.data,
|
|
|
+ filesList:this.upLoadData
|
|
|
}
|
|
|
editMianProject(params).then(res =>{
|
|
|
- if(pleaseCheck !== 10086){
|
|
|
+ if(pleaseCheck !== 10086 && pleaseCheck !== 10010){
|
|
|
this.$message({
|
|
|
type: "success",
|
|
|
message: "操作成功!"
|
|
|
});
|
|
|
+ this.getProjectDetail()
|
|
|
+ }else if(pleaseCheck === 10010){ //新单
|
|
|
+ this.$router.push({
|
|
|
+ path: "/mainItems_detailsPage",
|
|
|
+ query: {id: ''},
|
|
|
+ });
|
|
|
+ this.form = {}
|
|
|
+ this.data = []
|
|
|
+ this.upLoadData = []
|
|
|
+ this.id = ''
|
|
|
}else{
|
|
|
this.getProjectDetail(pleaseCheck);
|
|
|
}
|
|
|
@@ -663,11 +707,13 @@
|
|
|
}).then(() => {
|
|
|
if (row.id){
|
|
|
corpsbank(row.id).then(res=>{
|
|
|
- this.$message({
|
|
|
- type: "success",
|
|
|
- message: "操作成功!"
|
|
|
- });
|
|
|
- this.bankOfDepositData.splice(index, 1);
|
|
|
+ if(res.data.success){
|
|
|
+ this.$message({
|
|
|
+ type: "success",
|
|
|
+ message: "操作成功!"
|
|
|
+ });
|
|
|
+ this.bankOfDepositData.splice(index, 1);
|
|
|
+ }
|
|
|
})
|
|
|
}else {
|
|
|
this.$message({
|
|
|
@@ -705,6 +751,7 @@
|
|
|
if(this.serviceSelectList.length != 0){
|
|
|
this.serviceSelectList.forEach((item)=>{
|
|
|
const params = {
|
|
|
+ strStatus:"录入",
|
|
|
pname:item.cname,
|
|
|
remarks:item.remarks,
|
|
|
price:item.price,
|
|
|
@@ -756,8 +803,7 @@
|
|
|
userConfirm(){
|
|
|
if(this.userSelection){
|
|
|
this.data[this.detailsSelect].userid = this.userSelection[0].id;
|
|
|
- this.data[this.detailsSelect].userName = this.userSelection[0].realName;
|
|
|
- // this.$set(this.data[this.detailsSelect],'userName',this.userSelection[0].realName)
|
|
|
+ this.$set(this.data[this.detailsSelect],'userName',this.userSelection[0].realName)
|
|
|
this.userDialog = !this.userDialog
|
|
|
}
|
|
|
}
|