emis-frontend/src/views/emis/emisMonthpayAccount/emisMonthpayAccountForm.vue
2024-05-07 12:53:57 +08:00

500 lines
19 KiB
Vue

<template>
<div >
<el-row :gutter="0">
<el-form ref="form" size="mini" :model="form" :rules="rules" label-width="80px">
<el-col :span="8">
<el-form-item label="月结账号" prop="custNo">
<el-input v-model="form.custNo" placeholder="规则是TAN+区号+顺序号" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="客户名称" prop="custName">
<el-input v-model="form.custName" placeholder="请输入客户名称" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="客户英文" prop="custNameEn">
<el-input v-model="form.custNameEn" placeholder="请输入客户英文" />
</el-form-item>
</el-col>
<!-- <el-col :span="24">
<el-form-item label="账号持有人编码" prop="customerCode">
<el-input v-model="form.customerCode" placeholder="请输入账号持有人编码" />
</el-form-item>
</el-col> -->
<!-- <el-col :span="24">
<el-form-item label="客户类型" prop="userType">
<el-input v-model="form.userType" placeholder="请输入客户类型" />
</el-form-item>
</el-col> -->
<el-col :span="8">
<el-form-item label="公司名称" prop="company">
<el-input v-model="form.company" placeholder="请输入公司名称" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="营业执照号" prop="licNo" label-width="110px">
<el-input v-model="form.licNo" placeholder="" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="客户联系人" prop="contact" label-width="110px">
<el-input v-model="form.contact" placeholder="请输入业务联系人" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="联系电话" prop="phone">
<el-input v-model="form.phone" placeholder="请输入联系电话" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="email" prop="email">
<el-input v-model="form.email" placeholder="请输入email" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="客户等级" prop="custLevel">
<el-select v-model="form.custLevel" placeholder="客户等级" clearable filterable style="width:100%">
<el-option
v-for="dict in dict.type.emis_customer_level"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="国家" prop="country" label-width="60px">
<CountryPicker :placeholder="$t('国家')" v-model="form.country" ></CountryPicker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="省份" prop="province" label-width="60px">
<ProvincePicker :placeholder="$t('省')" v-model="form.province" :countryCode="form.country" ></ProvincePicker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="地级市" prop="city" label-width="60px">
<CityPicker :placeholder="$t('市')" v-model="form.city" :parentCode="form.province" ></CityPicker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="区县" prop="county" label-width="60px">
<DistrictPicker :placeholder="$t('区县')" v-model="form.county" :parentCode="form.city" ></DistrictPicker>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="地址" prop="address" label-width="60px">
<el-input v-model="form.address" type="textarea" placeholder="请输入地址" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="业务情况" prop="bizInfo">
<el-input v-model="form.bizInfo" type="textarea" placeholder="请输入业务情况" />
</el-form-item>
</el-col>
<!-- 分隔 -->
<el-col :span="24">
<el-divider content-position="left"></el-divider>
</el-col>
<el-col :span="8">
<el-form-item label="归属网点" prop="ownerSite" >
<EmisSiteSimplePicker :placeholder="$t('归属网点')" v-model="form.ownerSite" isInitiated="true"></EmisSiteSimplePicker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="回款联系人" prop="payee" label-width="90px">
<EmisUserSimplePicker0 v-model="form.payee" postCode="0" ></EmisUserSimplePicker0>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="销售联系人" prop="salesmen" label-width="90px">
<EmisUserSimplePicker1 v-model="form.salesmen" postCode="0"></EmisUserSimplePicker1>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="所属业务员" prop="marketMan" label-width="90px">
<EmisUserSimplePicker2 v-model="form.marketMan" postCode="0" ></EmisUserSimplePicker2>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="启用状态" prop="status">
<el-radio-group v-model="form.status">
<el-radio :label="1">是</el-radio>
<el-radio :label="0">否</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<!-- 分隔 -->
<el-col :span="24">
<el-divider content-position="left"></el-divider>
</el-col>
<!--
<el-col :span="24">
<el-form-item label="邀请人" prop="invitationInfo">
<el-input v-model="form.invitationInfo" placeholder="请输入邀请人" />
</el-form-item>
</el-col> -->
<!-- <el-col :span="8">
<el-form-item label="合同类型" prop="contractType">
<el-input v-model="form.contractType" placeholder="请输入合同类型" />
</el-form-item>
</el-col> -->
<!-- <el-col :span="24">
<el-form-item label="排序" prop="orderNum">
<el-input v-model="form.orderNum" placeholder="请输入排序" />
</el-form-item>
</el-col> -->
<!-- <el-col :span="24">
<el-form-item label="合同内容" prop="contractContent">
<el-input v-model="form.contractContent" placeholder="请输入合同内容" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="改动内容" prop="contractChangeContent">
<el-input v-model="form.contractChangeContent" placeholder="请输入改动内容" />
</el-form-item>
</el-col> -->
<el-col :span="8">
<el-form-item label="合同开始日" prop="contractStartdate" label-width="90px">
<el-date-picker
style="width:100%"
clearable
v-model="form.contractStartdate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择合同开始日">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合同结束日" prop="contractEnddate" label-width="90px">
<el-date-picker
style="width:100%"
clearable
v-model="form.contractEnddate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择合同结束日">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合同签署日" prop="contractSigndate" label-width="90px">
<el-date-picker
style="width:100%"
clearable
v-model="form.contractSigndate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择合同签署日">
</el-date-picker>
</el-form-item>
</el-col>
<!-- <el-col :span="8">
<el-form-item label="合同寄出日" prop="contractSenddate">
<el-date-picker clearable
v-model="form.contractSenddate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择合同寄出日">
</el-date-picker>
</el-form-item>
</el-col> -->
<!-- <el-col :span="8">
<el-form-item label="合同收到日" prop="contractRecievedate">
<el-date-picker clearable
v-model="form.contractRecievedate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择合同收到日">
</el-date-picker>
</el-form-item>
</el-col> -->
<!-- <el-col :span="24">
<el-form-item label="快递公司" prop="expressName">
<el-input v-model="form.expressName" placeholder="请输入快递公司" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="快递单号" prop="expressBillcode">
<el-input v-model="form.expressBillcode" placeholder="请输入快递单号" />
</el-form-item>
</el-col> -->
<!-- <el-col :span="8">
<el-form-item label="开户行" prop="bank">
<el-input v-model="form.bank" placeholder="请输入开户行" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="开户账号" prop="accountNo">
<el-input v-model="form.accountNo" placeholder="请输入开户账号" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="发票地址" prop="invoiceAddress">
<el-input v-model="form.invoiceAddress" placeholder="请输入发票地址" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="财务联系人" prop="financialContact">
<el-input v-model="form.financialContact" placeholder="请输入财务联系人" />
</el-form-item>
</el-col> -->
<!-- <el-col :span="24">
<el-form-item label="寄件人" prop="sender">
<el-input v-model="form.sender" placeholder="请输入寄件人" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="寄件地址" prop="sendAddress">
<el-input v-model="form.sendAddress" placeholder="请输入寄件地址" />
</el-form-item>
</el-col> -->
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-form>
</el-row>
<div style="text-align: center;margin-bottom: 10px;">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
<el-dialog title="选择网点" :visible.sync="openSiteSelectTreeForm" width="40%" :destroy-on-close="true" v-dialogDrag append-to-body>
<EmisSiteSelectTreePicker :areaId="form.areaId" :selectSiteCode="form.areaSiteCode" @on-changed="onSelectSiteTreeCheckChange" @on-cancel="onCancelSelectSiteTreeForm"></EmisSiteSelectTreePicker>
</el-dialog>
</div>
</template>
<script>
import { listEmisMonthpayAccount, getEmisMonthpayAccount, delEmisMonthpayAccount, addEmisMonthpayAccount, updateEmisMonthpayAccount } from "@/api/emis/emisMonthpayAccount";
import CountryPicker from '@/views/emis/EmisBaseTools/CountryPicker.vue';
import EmisSiteSimplePicker from '@/views/emis/EmisBaseTools/EmisSiteSimplePicker.vue';
import ProvincePicker from '@/views/emis/EmisBaseTools/ProvincePicker.vue';
import CityPicker from '@/views/emis/EmisBaseTools/CityPicker.vue';
import DistrictPicker from '@/views/emis/EmisBaseTools/DistrictPicker.vue';
import EmisUserSimplePicker0 from '@/views/emis/EmisBaseTools/EmisUserSimplePicker.vue';
import EmisUserSimplePicker1 from '@/views/emis/EmisBaseTools/EmisUserSimplePicker.vue';
import EmisUserSimplePicker2 from '@/views/emis/EmisBaseTools/EmisUserSimplePicker.vue';
import EmisSiteSelectTreePicker from '@/views/emis/EmisBaseTools/EmisSiteSelectTreePicker.vue';
export default {
name: "emisMonthpayAccountForm",
props:{
id:{
type:Number
}
},
components: { EmisSiteSelectTreePicker,EmisUserSimplePicker0,EmisUserSimplePicker1,EmisUserSimplePicker2,CountryPicker,EmisSiteSimplePicker,ProvincePicker,CityPicker,DistrictPicker },
dicts: ['emis_customer_level'],
data() {
return {
emisMonthpayAccountOptions: [],
// 遮罩层
loading: true,
// 表单参数
form: {},
// 表单校验
rules: {
id: [
{ required: true, message: "id不能为空", trigger: "blur" }
],
custNo: [
{ required: true, message: "月结编号不能为空", trigger: "blur" }
],
custName: [
{ required: true, message: "客户名称不能为空", trigger: "blur" }
],
custNameEn: [
{ required: true, message: "客户英文不能为空", trigger: "blur" }
],
userType: [
{ required: true, message: "客户类型不能为空", trigger: "blur" }
],
company: [
{ required: true, message: "公司名称不能为空", trigger: "blur" }
],
country: [
{ required: true, message: "国家不能为空", trigger: "blur" }
],
province: [
{ required: true, message: "省份不能为空", trigger: "blur" }
],
city: [
{ required: true, message: "地级市不能为空", trigger: "blur" }
],
ownerSite: [
{ required: true, message: "归属站点不能为空", trigger: "blur" }
],
contact: [
{ required: true, message: "业务联系人不能为空", trigger: "blur" }
],
phone: [
{ required: true, message: "联系电话不能为空", trigger: "blur" }
],
email: [
{ required: true, message: "email不能为空", trigger: "blur" }
],
payee: [
{ required: true, message: "回款联系人不能为空", trigger: "blur" }
],
salesmen: [
{ required: true, message: "销售联系人不能为空", trigger: "blur" }
],
marketMan: [
{ required: true, message: "所属业务员不能为空", trigger: "blur" }
],
}
};
},
watch: {
"id": {
handler (newValue, oldValue) {
this.id = newValue;
this.initData();
},
deep: true
}
},
created() {
this.initData();
},
methods: {
initData() {
if(this.id !=null) {
this.loading = true;
getEmisMonthpayAccount(this.id).then(response => {
this.form = response.data;
this.loading = false;
});
}else{
this.reset();
}
// this.getTreeselect();
},
// 取消按钮
cancel() {
this.reset();
this.$emit("on-cancel");
},
// 表单重置
reset() {
this.form = {
id: null,
custNo: null,
custName: null,
custNameEn: null,
customerCode: null,
userType: null,
company: null,
licNo: null,
bizInfo: null,
custLevel: null,
country: null,
province: null,
city: null,
county: null,
address: null,
sex: null,
ownerSite: null,
contact: null,
phone: null,
email: null,
status: null,
payee: null,
salesmen: null,
marketMan: null,
invitationInfo: null,
contractType: null,
orderNum: null,
contractContent: null,
contractChangeContent: null,
contractStartdate: null,
contractEnddate: null,
contractSigndate: null,
contractSenddate: null,
contractRecievedate: null,
expressName: null,
expressBillcode: null,
bank: null,
accountNo: null,
invoiceAddress: null,
financialContact: null,
sender: null,
sendAddress: null,
remark: null,
delFlag: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
createSite: null,
updateSite: null
};
this.resetForm("form");
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateEmisMonthpayAccount(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.$emit("on-changed");
});
} else {
addEmisMonthpayAccount(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.$emit("on-changed");
});
}
}
});
},
// /** 转换菜单数据结构 */
// normalizer(node) {
// if (node.children && !node.children.length) {
// delete node.children;
// }
// return {
// id: node.id,
// label: node.idName,
// children: node.children
// };
// },
// /** 查询菜单下拉树结构 */
// getTreeselect() {
// const queryParams = {}
// listEmisMonthpayAccount(queryParams).then(response => {
// this.emisMonthpayAccountOptions = [];
// const rootItem = { idId: 0, emisMonthpayAccountName: '-', children: [] };
// rootItem.children = this.handleTree(response.data, "id");
// this.emisMonthpayAccountOptions.push(rootItem);
// if(this.parentId != undefined) {
// this.form.parentId = this.parentId;
// }
// });
// },
}
};
</script>