看了view专业版里面的表单,发现要money才能查看代码,自己写吧。。。。。
业务中需要裴姐调个样式
<Row>
<Table :columns="TableColumns" :data="groupData" @on-selection-change="handleSelect"></Table>
</Row>
<div v-show="enterpriseType !== '10'">
<Button class="btn-add" type="dashed" style="margin-right:8px" @click="groupAdd">新增 </Button>
</div>
<Modal v-model="ModalAddEnterprise" title="新增企业" :width="1120">
<div>
<EnterpriseAdd
ref="enterpriseAdd"
:companyType="enterpriseType"
@SubmitSuccess="handleSubmitSuccess('addEnterprise')"
@SubmitCancel="handleSubmitCancel('addEnterprise')"
></EnterpriseAdd>
</div>
<div slot="footer"></div>
</Modal>
<Modal v-model="ModalEditEnterprise" title="编辑企业" :width="1120">
<div>
<EnterpriseAdd
ref="enterpriseEdit"
:companyType="enterpriseType"
@SubmitSuccess="handleSubmitSuccess('editEnterprise')"
@SubmitCancel="handleSubmitCancel('editEnterprise')"
></EnterpriseAdd>
</div>
<div slot="footer"></div>
</Modal>
<Modal v-model="ModalAddPeople" title="新增人员" :width="1120">
<div>
<PeopleAdd
ref="peopleAdd"
:comId="comId"
@SubmitSuccess="handleSubmitSuccess('addPeople')"
@SubmitCancel="handleSubmitCancel('addPeople')"
></PeopleAdd>
</div>
<div slot="footer"></div>
</Modal>
<Modal v-model="ModalEditPeople" title="编辑人员" :width="1120">
<div>
<PeopleAdd
ref="peopleEdit"
:comId="comId"
@SubmitSuccess="handleSubmitSuccess('editPeople')"
@SubmitCancel="handleSubmitCancel('editPeople')"
></PeopleAdd>
</div>
<div slot="footer"></div>
</Modal>
import EnterpriseAdd from "../../enterprise-management/enterprise-add";
import PeopleAdd from "../../people-management/people-add";
export default {
name: "select-enterprise",
data() {
return {
TableColumns: [
{
title: "企业名称",
key: "enterpriseId",
align: "center",
render: (h, params) => {
return h("div", [
h(
"Select",
{
style: {
},
props: {
value: this.groupData[params.index].enterpriseId,
filterable: true,
clearable: true,
allowCreate: true
},
on: {
"on-change": event => {
this.groupData[params.index].enterpriseId = event;
params.row.enterpriseId = event;
this.ShowCompanyInfo(params.row, params.index);
},
"on-create": event => {
this.addEnterprise(event);
}
}
},
this.enterpriseList.map((item, itemIndex) => {
return h(
"Option",
{
props: {
value: item.id,
key: item.id
}
},
item.name
);
})
)
]);
}
},
{
title: "企业法人",
key: "legalPerson",
align: "center"
},
{
title: "法人电话",
key: "tel",
align: "center"
},
{
title: "社会信用代码",
key: "creditCode",
align: "center"
},
{
title: "项目负责人",
key: "projectLeaderId",
align: "center",
render: (h, params) => {
return h("div", [
h(
"Select",
{
style: {
width: "100%"
},
props: {
value: this.groupData[params.index].projectLeaderId,
filterable: true,
clearable: true,
allowCreate: true
},
on: {
"on-open-change": event => {
this.openPeople(params.row, params.index);
},
"on-change": event => {
params.row.projectLeaderId = event;
this.groupData[params.index].projectLeaderId = event;
this.ShowPeopleInfo(params.row, params.index);
},
"on-create": event => {
this.enterAddPeople(event);
}
}
},
params.row.projectLeaderList.map((item, itemIndex) => {
return h(
"Option",
{
props: {
value: item.id,
key: item.id
}
},
item.name
);
})
)
]);
}
},
{
title: "职位",
key: "post",
align: "center"
},
{
title: "联系方式",
key: "peoTel",
align: "center"
},
{
title: "操作",
key: "action",
align: "center",
wdith: 250,
render: (h, params) => {
return h("div", [
params.row.enterpriseId
? h(
"Tooltip",
{
props: {
placement: "top",
transfer: true,
content: "编辑企业"
},
on: {
click: () => {}
}
},
[
h("Icon", {
props: {
type: "ios-create"
},
style: {
fontSize: "20px",
color: "#c6ccd3",
marginRight: "10px",
marginTop: "3px"
},
on: {
click: () => {
this.editEnterprise(
params.row.enterpriseId,
params.index
);
}
}
})
]
)
: "",
params.row.projectLeaderId
? h(
"Tooltip",
{
props: {
placement: "top",
transfer: true,
content: "编辑人员"
},
on: {
click: () => {}
}
},
[
h("Icon", {
props: {
type: "ios-create-outline"
},
style: {
fontSize: "20px",
color: "#c6ccd3",
marginRight: "10px",
marginTop: "3px"
},
on: {
click: () => {
this.editPeople(params.row, params.index);
}
}
})
]
)
: "",
this.groupData.length > 1
? h(
"Tooltip",
{
props: {
placement: "top",
transfer: true,
content: "删除"
},
on: {
click: () => {}
}
},
[
h("Icon", {
props: {
type: "md-trash"
},
style: {
fontSize: "20px",
color: "#c6ccd3",
marginRight: "10px",
marginTop: "3px"
},
on: {
click: () => {
this.groupDel(params.row, params.index);
}
}
})
]
)
: ""
]);
}
}
],
TableData: [],
TotalCount: 0,
PageIndex: 1,
groupData: [
{
projectLeaderList: [],
enterpriseId: "", // 企业Id
legalPerson: "",
creditCode: "",
tel: "",
projectLeaderId: "", // 项目负责人Id
post: "",
peoTel: "",
editEnterpriseFlag: false, // 是否显示修改企业按钮
editPeopleFlag: false // 是否显示修改人员按钮
}
],
enterpriseList: [], // 企业待选数据
projectLeaderList: [], // 项目负责人待选数据
/**
* 控制新增企业模态框
*/
ModalAddEnterprise: false,
/**
* 控制编辑企业模态框
*/
ModalEditEnterprise: false,
/**
* 控制新增人员模态框
*/
ModalAddPeople: false,
/**
* 控制编辑人员模态框
*/
ModalEditPeople: false,
/**
* 新增人员传给子组件的企业Id
*/
comId: "",
peopleLeaderIndex: 0,
/**
* 为了人员回车新增把名字带到子组件,需要定义变量存储已选的企业信息
*/
groupItem: {},
groupIndex: 0
};
},
props: {
enterpriseType: {
type: String,
required: true
}
},
methods: {
handleSelect() {},
handlePageChange() {},
getGroupData(data) {
if (data.length) {
this.groupData = data;
} else {
this.groupData = [
{
projectLeaderList: [],
enterpriseId: "", // 企业Id
legalPerson: "",
creditCode: "",
tel: "",
projectLeaderId: "", // 项目负责人Id
post: "",
peoTel: ""
}
];
}
this.getEnterpriseList();
this.groupData.forEach((item, index) => {
this.getProjectLeaderList(item.enterpriseId, index);
this.enterpriseList.forEach((ele, eleIndex) => {
if (item.enterpriseId == ele.id) {
this.$set(this.enterpriseList[eleIndex], "disabled", true);
} else {
this.$set(this.enterpriseList[eleIndex], "disabled", false);
}
});
});
},
getEnterpriseList() {
let params = {
parameter: "companyType",
operators: "1",
queryValue: `${this.enterpriseType}`,
queryType: "string",
PageSize: -1
};
this.enterpriseList = [];
this.$api.Enterprise.Page(params).then(res => {
res.data.result.items.forEach((item, index) => {
item.disabled = false;
this.enterpriseList.push(item);
});
this.groupData.forEach((item, index) => {
if (item.enterpriseId) {
this.enterpriseList.forEach((ele, eleIndex) => {
if (item.enterpriseId == ele.id) {
this.groupData[index].legalPerson = ele.legalPerson;
this.groupData[index].creditCode = ele.creditCode;
this.groupData[index].tel = ele.tel;
this.$set(this.enterpriseList[eleIndex], "disabled", true);
}
});
}
});
});
},
ShowCompanyInfo(item, index) {
if (item.enterpriseId == undefined) {
this.groupData[index].legalPerson = "";
this.groupData[index].creditCode = "";
this.groupData[index].tel = "";
this.groupData[index].projectLeaderId = "";
this.groupData[index].post = "";
this.groupData[index].peoTel = "";
this.groupData[index].editEnterpriseFlag = false;
this.groupData[index].editPeopleFlag = false;
} else {
this.enterpriseList.forEach((params, paramsIndex) => {
if (params.id == item.enterpriseId) {
this.groupData[index].legalPerson = params.legalPerson;
this.groupData[index].creditCode = params.creditCode;
this.groupData[index].tel = params.tel;
this.groupData[index].editEnterpriseFlag = true;
}
});
}
// 所有企业先置为可选
this.enterpriseList.forEach((enterpriseItem, enterpriseIndex) => {
this.$set(this.enterpriseList[enterpriseIndex], "disabled", false);
});
// 去掉已经被选中的企业
this.groupData.forEach((ele, eleIndex) => {
if (ele.enterpriseId) {
let selectIndex = this.enterpriseList.findIndex(
obj => obj.id == ele.enterpriseId
);
this.$set(this.enterpriseList[selectIndex], "disabled", true);
}
});
this.getProjectLeaderList(item.enterpriseId, index);
this.$set(this, "groupData", this.groupData);
},
getProjectLeaderList(enterpriseId, index) {
this.groupData[index].post = "";
this.groupData[index].peoTel = "";
let params = {
parameter: "enterprise",
operators: "1",
queryValue: `${enterpriseId}`,
queryType: "string",
globalSearchValue: "",
globalSearchType: 0,
pageSize: -1,
orderBy: "",
orderByType: ""
};
this.$api.People.Page(params).then(res => {
this.groupData[index].projectLeaderList = res.data.result.items;
if (this.groupData[index].projectLeaderId) {
this.groupData[index].projectLeaderList.forEach(ele => {
if (this.groupData[index].projectLeaderId == ele.id) {
this.groupData[index].post = ele.post;
this.groupData[index].peoTel = ele.tel;
}
});
}
});
},
openPeople(item, index) {
if (!item.enterpriseId) {
this.$Message.warning("请先选择企业!");
return;
}
this.groupItem = item;
this.groupIndex = index;
},
ShowPeopleInfo(item, index) {
if (item.projectLeaderId) {
this.groupData[index].projectLeaderList.forEach(ele => {
if (item.id == ele.projectLeaderId) {
this.groupData[index].post = ele.post;
this.groupData[index].peoTel = ele.tel;
this.groupData[index].editPeopleFlag = true;
}
});
} else {
this.groupData[index].post = "";
this.groupData[index].peoTel = "";
this.groupData[index].editPeopleFlag = false;
}
},
groupAdd() {
let group = {};
group.projectLeaderList = [];
group.enterpriseId = "";
group.projectLeaderId = "";
group.legalPerson = "";
group.creditCode = "";
group.tel = "";
group.post = "";
group.peoTel = "";
group.editEnterpriseFlag = false;
group.editPeopleFlag = false;
this.groupData.push(group);
},
groupDel(item, index) {
if (this.groupData.length == 1) {
this.$Message.warning("至少要有一条企业信息!");
return;
}
this.groupData.splice(index, 1);
},
submitData() {
// let flag = true;
// this.groupData.forEach(item => {
// if (!item.enterpriseId || !item.projectLeaderId) {
// flag = false;
// this.$Message.warning("企业名称和项目负责人必填,请核对信息!");
// return;
// }
// });
// if (flag) {
this.$emit("submit-handle", this.groupData, this.enterpriseType);
// }
},
resetData() {
this.groupData = [
{
projectLeaderList: [],
enterpriseId: "", // 企业Id
legalPerson: "",
creditCode: "",
tel: "",
projectLeaderId: "", // 项目负责人Id
post: "",
peoTel: "",
editEnterpriseFlag: false,
editPeopleFlag: false
}
];
this.enterpriseList = [];
this.projectLeaderList = [];
},
/**
* 新增企业
*/
addEnterprise(query) {
this.$refs.enterpriseAdd.getDetail("", false);
this.$refs.enterpriseAdd.getEnterpriseName(query);
this.ModalAddEnterprise = true;
},
/**
* 编辑选中的企业
*/
editEnterprise(enterpriseId, index) {
this.$refs.enterpriseEdit.getDetail(enterpriseId, false);
this.ModalEditEnterprise = true;
},
/**
* 回车调用新增人员方法
*/
enterAddPeople(query) {
this.addPeople(this.groupItem, this.groupIndex, query);
},
/**
* 新增人员
*/
addPeople(item, index, query) {
if (!item.enterpriseId) {
this.$Message.warning("请先选择企业!");
return;
}
this.comId = item.enterpriseId;
this.peopleLeaderIndex = index;
this.$refs.peopleAdd.getPeopleName(query);
this.ModalAddPeople = true;
},
/**
* 编辑选中的人员
*/
editPeople(item, index) {
this.comId = item.enterpriseId;
this.peopleLeaderIndex = index;
this.$refs.peopleEdit.getDetail(
item.enterpriseId,
item.projectLeaderId,
false
);
this.ModalEditPeople = true;
},
handleSubmitSuccess(type) {
switch (type) {
case "addEnterprise":
this.ModalAddEnterprise = false;
this.getEnterpriseList();
break;
case "editEnterprise":
this.ModalEditEnterprise = false;
this.getEnterpriseList();
break;
case "addPeople":
this.ModalAddPeople = false;
this.getProjectLeaderList(this.comId, this.peopleLeaderIndex);
break;
case "editPeople":
this.ModalEditPeople = false;
this.getProjectLeaderList(this.comId, this.peopleLeaderIndex);
break;
default:
this.ModalAddEnterprise = false;
this.ModalAddPeople = false;
this.ModalEditEnterprise = false;
this.ModalEditPeople = false;
}
},
handleSubmitCancel(type) {
switch (type) {
case "addEnterprise":
this.ModalAddEnterprise = false;
break;
case "editEnterprise":
this.ModalEditEnterprise = false;
break;
case "addPeople":
this.ModalAddPeople = false;
break;
case "editPeople":
this.ModalEditPeople = false;
default:
this.ModalAddEnterprise = false;
this.ModalEditEnterprise = false;
this.ModalAddPeople = false;
this.ModalEditPeople = false;
}
}
},
created() {
},
mounted() {}
};
| 修改日期 | 修改人 | 备注 |
| 2020-06-30 18:19:33[当前版本] | 徐文斌 | iview专业版功能实现(高级表单一) |
| 2020-06-30 18:12:46 | 徐文斌 | iview专业版功能实现(高级表单一) |
| 附件类型 |
|
|
|
|
||