|
|
@ -55,13 +55,25 @@ |
|
|
|
<el-table-column label="ID" align="center" prop="id" /> |
|
|
|
<el-table-column label="ID" align="center" prop="id" /> |
|
|
|
<el-table-column label="项目名" align="center" prop="name" /> |
|
|
|
<el-table-column label="项目名" align="center" prop="name" /> |
|
|
|
<el-table-column label="项目内容" align="center" prop="content" /> |
|
|
|
<el-table-column label="项目内容" align="center" prop="content" /> |
|
|
|
<el-table-column label="区域名" align="center" prop="areas"/> |
|
|
|
<!-- <el-table-column label="区域名" align="center" prop="areas"/> --> |
|
|
|
|
|
|
|
<el-table-column label="区域名" align="center" prop="areas" width="80" > |
|
|
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
|
|
|
<span>{{areasConvert(scope.row.areas)}}</span> |
|
|
|
|
|
|
|
</template> |
|
|
|
|
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="作物名" align="center" prop="cropId" > |
|
|
|
<el-table-column label="作物名" align="center" prop="cropId" > |
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<span> {{cropList.find(t=>t.id == scope.row.cropId ).name}} </span> |
|
|
|
<span> {{cropList.find(t=>t.id == scope.row.cropId ).name}} </span> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="项目成员" align="center" prop="members"/> |
|
|
|
<!-- <el-table-column label="项目成员" align="center" prop="members"/> --> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<el-table-column label="项目成员" align="center" prop="members"> |
|
|
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
|
|
|
<span>{{membersConvert(scope.row.members)}}</span> |
|
|
|
|
|
|
|
</template> |
|
|
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<el-table-column label="图片" align="center" prop="images"> |
|
|
|
<el-table-column label="图片" align="center" prop="images"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
@ -108,34 +120,20 @@ |
|
|
|
<el-form-item label="项目内容" prop="content"> |
|
|
|
<el-form-item label="项目内容" prop="content"> |
|
|
|
<editor v-model="form.content" :min-height="192"/> |
|
|
|
<editor v-model="form.content" :min-height="192"/> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item label="区域选择" prop="areas"> |
|
|
|
<!-- <el-form-item label="区域选择" prop="assemAreaList"> |
|
|
|
|
|
|
|
<el-cascader |
|
|
|
|
|
|
|
:options="assemAreaList" |
|
|
|
|
|
|
|
:props="props" |
|
|
|
|
|
|
|
clearable |
|
|
|
|
|
|
|
ref="chooseA" |
|
|
|
|
|
|
|
@change="changeArea" |
|
|
|
|
|
|
|
v-model="form.areas"> |
|
|
|
|
|
|
|
</el-cascader> |
|
|
|
|
|
|
|
</el-form-item> --> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<el-form-item label="区域选择" prop="selectAreasList"> |
|
|
|
|
|
|
|
<el-select v-model="form.areas" multiple placeholder="请选择"> |
|
|
|
<el-select v-model="form.areas" multiple placeholder="请选择"> |
|
|
|
<el-option v-for="item in areasList" :key="item.id" :label="item.name" :value="item.id"> {{item.name}} |
|
|
|
<el-option v-for="item in areasList" :key="item.id" :label="item.name" :value="item.id"> {{item.name}} |
|
|
|
</el-option> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<el-form-item label="作物选择" prop="cropId"> |
|
|
|
<el-form-item label="作物选择" prop="cropId"> |
|
|
|
<el-select v-model="form.cropId" placeholder="请选择"> |
|
|
|
<el-select v-model="form.cropId" placeholder="请选择"> |
|
|
|
<el-option v-for="item in cropList" :key="item.id" :label="item.name" :value="item.id"> {{item.name}} |
|
|
|
<el-option v-for="item in cropList" :key="item.id" :label="item.name" :value="item.id"> {{item.name}} |
|
|
|
</el-option> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="成员选择" prop="selectMembersList"> |
|
|
|
<el-form-item label="成员选择" prop="members"> |
|
|
|
<el-select v-model="selectMembersList" multiple placeholder="请选择"> |
|
|
|
<el-select v-model="form.members" multiple placeholder="请选择"> |
|
|
|
<el-option v-for="item in membersList" :key="item.id" :label="item.name" :value="item.id"> {{item.name}} |
|
|
|
<el-option v-for="item in membersList" :key="item.id" :label="item.name" :value="item.id"> {{item.name}} |
|
|
|
</el-option> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
@ -213,32 +211,41 @@ export default { |
|
|
|
// 表单校验 |
|
|
|
// 表单校验 |
|
|
|
rules: { |
|
|
|
rules: { |
|
|
|
name: [{ required: true, message: "不能为空", trigger: "blur" }], |
|
|
|
name: [{ required: true, message: "不能为空", trigger: "blur" }], |
|
|
|
// content: [{ required: true, message: "不能为空", trigger: "blur" }], |
|
|
|
|
|
|
|
// selectAreasList: [{ required: true, message: "不能为空", trigger: "blur" }], |
|
|
|
|
|
|
|
// cropId: [{ required: true, message: "不能为空", trigger: "blur" }], |
|
|
|
|
|
|
|
// selectMembersList: [{ required: true, message: "不能为空", trigger: "blur" }], |
|
|
|
|
|
|
|
planStartTime: [{ required: true, message: "不能为空", trigger: "blur" }], |
|
|
|
planStartTime: [{ required: true, message: "不能为空", trigger: "blur" }], |
|
|
|
planEndTime: [{ required: true, message: "不能为空", trigger: "blur" }], |
|
|
|
planEndTime: [{ required: true, message: "不能为空", trigger: "blur" }], |
|
|
|
weight: [{ required: true, message: "不能为空", trigger: "blur" }], |
|
|
|
weight: [{ required: true, message: "不能为空", trigger: "blur" }], |
|
|
|
}, |
|
|
|
}, |
|
|
|
props: { multiple: true }, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
areasList:[], |
|
|
|
areasList:[], |
|
|
|
assemAreaList:[], |
|
|
|
|
|
|
|
areasParentList:[], |
|
|
|
|
|
|
|
areasSonList:[], |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
selectAreasList:[], |
|
|
|
|
|
|
|
cropList:[], |
|
|
|
cropList:[], |
|
|
|
membersList:[], |
|
|
|
membersList:[], |
|
|
|
selectMembersList:[] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}; |
|
|
|
}; |
|
|
|
}, |
|
|
|
}, |
|
|
|
created() { |
|
|
|
created() { |
|
|
|
this.getList(); |
|
|
|
this.getList(); |
|
|
|
}, |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
methods: { |
|
|
|
|
|
|
|
membersConvert(members){ |
|
|
|
|
|
|
|
let membersName = ""; |
|
|
|
|
|
|
|
this.membersList.forEach(item =>{ |
|
|
|
|
|
|
|
members.forEach(memberId =>{ |
|
|
|
|
|
|
|
if (memberId == item.id) { |
|
|
|
|
|
|
|
membersName += item.name +"\n"; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
return membersName; |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
areasConvert(areas){ |
|
|
|
|
|
|
|
let areasName = ""; |
|
|
|
|
|
|
|
this.areasList.forEach(item => { |
|
|
|
|
|
|
|
areas.forEach( pArea =>{ |
|
|
|
|
|
|
|
if (pArea == item.id) { |
|
|
|
|
|
|
|
areasName += item.name + "\n"; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
return areasName; |
|
|
|
|
|
|
|
}, |
|
|
|
getCropList(){ |
|
|
|
getCropList(){ |
|
|
|
getCropPage({ |
|
|
|
getCropPage({ |
|
|
|
pageNo: 1, |
|
|
|
pageNo: 1, |
|
|
@ -269,7 +276,7 @@ export default { |
|
|
|
this.getAreasList(); |
|
|
|
this.getAreasList(); |
|
|
|
this.getCropList(); |
|
|
|
this.getCropList(); |
|
|
|
this.getCpUserList(); |
|
|
|
this.getCpUserList(); |
|
|
|
this.assemArea(); |
|
|
|
// this.assemArea(); |
|
|
|
this.loading = true; |
|
|
|
this.loading = true; |
|
|
|
// 处理查询参数 |
|
|
|
// 处理查询参数 |
|
|
|
let params = {...this.queryParams}; |
|
|
|
let params = {...this.queryParams}; |
|
|
@ -278,30 +285,6 @@ export default { |
|
|
|
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime'); |
|
|
|
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime'); |
|
|
|
// 执行查询 |
|
|
|
// 执行查询 |
|
|
|
getProjectPage(params).then(response => { |
|
|
|
getProjectPage(params).then(response => { |
|
|
|
response.data.list.forEach(element => { |
|
|
|
|
|
|
|
element.areas = JSON.parse(element.areas); |
|
|
|
|
|
|
|
let areaName = ""; |
|
|
|
|
|
|
|
element.areas.forEach(a=>{ |
|
|
|
|
|
|
|
this.areasList.filter(t=>t.id == a)[0].name; |
|
|
|
|
|
|
|
areaName += this.areasList.filter(t=>t.id == a)[0].name +"、\n"; |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
element.areas = areaName; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
element.members = JSON.parse(element.members); |
|
|
|
|
|
|
|
if(element.members != null){ |
|
|
|
|
|
|
|
let memberName = ''; |
|
|
|
|
|
|
|
element.members.forEach((mem) =>{ |
|
|
|
|
|
|
|
this.membersList.forEach((sel) =>{ |
|
|
|
|
|
|
|
if(mem == sel.id){ |
|
|
|
|
|
|
|
memberName += (sel.name + "、\n"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
element.members = memberName; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.list = response.data.list; |
|
|
|
this.list = response.data.list; |
|
|
|
this.total = response.data.total; |
|
|
|
this.total = response.data.total; |
|
|
|
this.loading = false; |
|
|
|
this.loading = false; |
|
|
@ -373,25 +356,15 @@ export default { |
|
|
|
handleAdd() { |
|
|
|
handleAdd() { |
|
|
|
this.reset(); |
|
|
|
this.reset(); |
|
|
|
this.getCpUserList(); |
|
|
|
this.getCpUserList(); |
|
|
|
this.assemArea(); |
|
|
|
|
|
|
|
this.open = true; |
|
|
|
this.open = true; |
|
|
|
this.title = "添加农场项目"; |
|
|
|
this.title = "添加农场项目"; |
|
|
|
}, |
|
|
|
}, |
|
|
|
/** 修改按钮操作 */ |
|
|
|
/** 修改按钮操作 */ |
|
|
|
handleUpdate(row) { |
|
|
|
handleUpdate(row) { |
|
|
|
this.assemArea(); |
|
|
|
|
|
|
|
this.reset(); |
|
|
|
this.reset(); |
|
|
|
const id = row.id; |
|
|
|
const id = row.id; |
|
|
|
getProject(id).then(response => { |
|
|
|
getProject(id).then(response => { |
|
|
|
this.form = response.data; |
|
|
|
this.form = response.data; |
|
|
|
let areasArray = JSON.parse(response.data.areas); |
|
|
|
|
|
|
|
this.form.areas = areasArray; |
|
|
|
|
|
|
|
this.selectAreasList = areasArray; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let membersArray = JSON.parse(response.data.members); |
|
|
|
|
|
|
|
this.form.members = membersArray; |
|
|
|
|
|
|
|
this.selectMembersList = membersArray; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.open = true; |
|
|
|
this.open = true; |
|
|
|
this.title = "修改农场项目"; |
|
|
|
this.title = "修改农场项目"; |
|
|
|
}); |
|
|
|
}); |
|
|
@ -403,8 +376,6 @@ export default { |
|
|
|
if (!valid) { |
|
|
|
if (!valid) { |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
this.form.members = JSON.stringify(this.selectMembersList); |
|
|
|
|
|
|
|
this.form.areas = JSON.stringify(this.form.areas); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 修改的提交 |
|
|
|
// 修改的提交 |
|
|
|
if (this.form.id != null) { |
|
|
|
if (this.form.id != null) { |
|
|
@ -417,8 +388,6 @@ export default { |
|
|
|
} |
|
|
|
} |
|
|
|
// 添加的提交 |
|
|
|
// 添加的提交 |
|
|
|
createProject(this.form).then(response => { |
|
|
|
createProject(this.form).then(response => { |
|
|
|
this.form.areas = JSON.stringify(this.form.areas); |
|
|
|
|
|
|
|
this.form.members = JSON.stringify(this.form.members); |
|
|
|
|
|
|
|
this.$modal.msgSuccess("新增成功"); |
|
|
|
this.$modal.msgSuccess("新增成功"); |
|
|
|
this.open = false; |
|
|
|
this.open = false; |
|
|
|
this.getList(); |
|
|
|
this.getList(); |
|
|
@ -452,30 +421,7 @@ export default { |
|
|
|
this.$download.excel(response, '${table.classComment}.xls'); |
|
|
|
this.$download.excel(response, '${table.classComment}.xls'); |
|
|
|
this.exportLoading = false; |
|
|
|
this.exportLoading = false; |
|
|
|
}).catch(() => {}); |
|
|
|
}).catch(() => {}); |
|
|
|
}, |
|
|
|
|
|
|
|
assemArea(){ |
|
|
|
|
|
|
|
let parentLsit = this.areasList.filter(t => t.parentId == 0); |
|
|
|
|
|
|
|
let sonList = this.areasList.filter(s => s.parentId != 0); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let firstList = []; |
|
|
|
|
|
|
|
parentLsit.forEach(p => { |
|
|
|
|
|
|
|
this.areasParentList.push(p); |
|
|
|
|
|
|
|
let secondList = []; |
|
|
|
|
|
|
|
sonList.forEach(s => { |
|
|
|
|
|
|
|
if (p.id == s.parentId) { |
|
|
|
|
|
|
|
this.areasSonList.push(s); |
|
|
|
|
|
|
|
secondList.push({value:s.id, label:s.name}); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
firstList.push({value: p.id, label:p.name, children: secondList}) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
this.assemAreaList = firstList; |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
changeArea(){ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
}; |
|
|
|
</script> |
|
|
|
</script> |
|
|
|