|
|
@ -58,6 +58,7 @@ |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="执行人" align="center" prop="executorPerson"/> |
|
|
|
<el-table-column label="执行人" align="center" prop="executorPerson"/> |
|
|
|
|
|
|
|
<el-table-column label="区域" align="center" prop="areas" width="180"/> |
|
|
|
|
|
|
|
|
|
|
|
<el-table-column label="作物名" align="center" prop="cropName" > |
|
|
|
<el-table-column label="作物名" align="center" prop="cropName" > |
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
@ -122,7 +123,7 @@ |
|
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
|
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
|
|
|
|
|
|
|
|
|
|
|
<el-form-item label="项目选择" prop="projectId"> |
|
|
|
<el-form-item label="项目选择" prop="projectId"> |
|
|
|
<el-select v-model="form.projectId" placeholder="请选择"> |
|
|
|
<el-select v-model="form.projectId" placeholder="请选择" @change="changeProject"> |
|
|
|
<el-option |
|
|
|
<el-option |
|
|
|
v-for="item in projectList" |
|
|
|
v-for="item in projectList" |
|
|
|
:key="item.id" |
|
|
|
:key="item.id" |
|
|
@ -157,6 +158,16 @@ |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<el-form-item label="区域选择" prop="assemAreaList"> |
|
|
|
|
|
|
|
<el-cascader |
|
|
|
|
|
|
|
:options="assemAreaList" |
|
|
|
|
|
|
|
:props="props" |
|
|
|
|
|
|
|
clearable |
|
|
|
|
|
|
|
ref="chooseA" |
|
|
|
|
|
|
|
v-model="form.areas"> |
|
|
|
|
|
|
|
</el-cascader> |
|
|
|
|
|
|
|
</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 |
|
|
|
<el-option |
|
|
@ -197,19 +208,44 @@ |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
|
|
<div v-for="(item,index) in resourceTypeList" :key="index"> |
|
|
|
<el-form-item label="资源选择" prop="resources"> |
|
|
|
<el-form-item label="资源选择"> |
|
|
|
|
|
|
|
<el-cascader |
|
|
|
<el-cascader |
|
|
|
:options="twoList" |
|
|
|
:options="twoList" |
|
|
|
:props="props" |
|
|
|
:props="props" |
|
|
|
collapse-tags |
|
|
|
|
|
|
|
clearable |
|
|
|
clearable |
|
|
|
|
|
|
|
ref="chooseR" |
|
|
|
|
|
|
|
@change="changeResources" |
|
|
|
v-model="form.resources"> |
|
|
|
v-model="form.resources"> |
|
|
|
</el-cascader> |
|
|
|
</el-cascader> |
|
|
|
<el-button @click="addR(index)">添加</el-button> |
|
|
|
</el-form-item> |
|
|
|
<el-button @click="delR(index)">删除</el-button> |
|
|
|
|
|
|
|
</el-form-item> |
|
|
|
<!-- <el-form-item label="填写数量" prop="resources"> |
|
|
|
|
|
|
|
<div v-for="(item, index) of resourceNumberList" :v-model="item.id" :key="index" > |
|
|
|
|
|
|
|
<el-col> |
|
|
|
|
|
|
|
<span>{{item.pValue}}/{{item.value}}</span> |
|
|
|
|
|
|
|
</el-col> |
|
|
|
|
|
|
|
<el-col :span="8"> |
|
|
|
|
|
|
|
<el-input placeholder="请输入数量" /> |
|
|
|
|
|
|
|
</el-col> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
</el-form-item> --> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<el-form ref="form" :model="formR" :rules="rules" label-width="80px"> |
|
|
|
|
|
|
|
<el-form-item label="填写数量" prop="resources"> |
|
|
|
|
|
|
|
<el-col > |
|
|
|
|
|
|
|
<span v-for="(item, index) of resourceNumberList" :key="index"> |
|
|
|
|
|
|
|
{{item.pValue}}/{{item.value}} |
|
|
|
|
|
|
|
</span> |
|
|
|
|
|
|
|
</el-col> |
|
|
|
|
|
|
|
<el-col :span="8"> |
|
|
|
|
|
|
|
<el-input v-for="(item, index) of resourceNumberList" v-model="item.id" :key="index" placeholder="请输入数量" /> |
|
|
|
|
|
|
|
</el-col> |
|
|
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
</el-form> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<el-form-item label="工时" prop="workingHours"> |
|
|
|
<el-form-item label="工时" prop="workingHours"> |
|
|
|
<el-input v-model="form.workingHours" placeholder="请输入工时" /> |
|
|
|
<el-input v-model="form.workingHours" placeholder="请输入工时" /> |
|
|
@ -244,8 +280,10 @@ import { getResourcePage } from "@/api/farm/resource"; |
|
|
|
import { getProjectPage} from "@/api/farm/project"; |
|
|
|
import { getProjectPage} from "@/api/farm/project"; |
|
|
|
import { getCropPage} from "@/api/farm/crop"; |
|
|
|
import { getCropPage} from "@/api/farm/crop"; |
|
|
|
import { getResourceTypePage} from "@/api/farm/resourceType"; |
|
|
|
import { getResourceTypePage} from "@/api/farm/resourceType"; |
|
|
|
import { getTaskCatePage} from "@/api/farm/taskCate" |
|
|
|
import { getTaskCatePage} from "@/api/farm/taskCate"; |
|
|
|
import { getCpUserPage} from "@/api/system/cpUser" |
|
|
|
import { getCpUserPage} from "@/api/system/cpUser"; |
|
|
|
|
|
|
|
import { getAreaPage} from "@/api/farm/area"; |
|
|
|
|
|
|
|
|
|
|
|
import { values } from 'min-dash'; |
|
|
|
import { values } from 'min-dash'; |
|
|
|
|
|
|
|
|
|
|
|
export default { |
|
|
|
export default { |
|
|
@ -308,23 +346,25 @@ export default { |
|
|
|
cropList:[], |
|
|
|
cropList:[], |
|
|
|
|
|
|
|
|
|
|
|
resourceTypeList:[], |
|
|
|
resourceTypeList:[], |
|
|
|
selectResourceTypeList:[], |
|
|
|
resourceNumberList:[], |
|
|
|
|
|
|
|
|
|
|
|
twoList:[], |
|
|
|
twoList:[], |
|
|
|
props: { multiple: true }, |
|
|
|
props: { multiple: true }, |
|
|
|
|
|
|
|
|
|
|
|
selectRList:[], |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cpUserList:[], |
|
|
|
cpUserList:[], |
|
|
|
selectExecutorPerson:[], |
|
|
|
|
|
|
|
executorPerson:[], |
|
|
|
executorPerson:[], |
|
|
|
|
|
|
|
|
|
|
|
taskCateAllList:[], //未组装的 |
|
|
|
taskCateAllList:[], //未组装的 |
|
|
|
taskCateList:[], //组装好的 |
|
|
|
taskCateList:[], //组装好的 |
|
|
|
selectTaskCateList: [],//选择的 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cateOneList:[], |
|
|
|
cateOneList:[], |
|
|
|
cateTwoList:[], |
|
|
|
cateTwoList:[], |
|
|
|
|
|
|
|
formR:{}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
areasList:[], |
|
|
|
|
|
|
|
assemAreaList:[], |
|
|
|
|
|
|
|
areasParentList:[], |
|
|
|
|
|
|
|
areasSonList:[], |
|
|
|
|
|
|
|
|
|
|
|
}; |
|
|
|
}; |
|
|
|
}, |
|
|
|
}, |
|
|
@ -335,8 +375,17 @@ export default { |
|
|
|
this.getCpUserList(); |
|
|
|
this.getCpUserList(); |
|
|
|
this.getCropList(); |
|
|
|
this.getCropList(); |
|
|
|
this.getTaskCateList(); |
|
|
|
this.getTaskCateList(); |
|
|
|
|
|
|
|
this.getAreasList(); |
|
|
|
}, |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
methods: { |
|
|
|
|
|
|
|
getAreasList(){ |
|
|
|
|
|
|
|
getAreaPage({ |
|
|
|
|
|
|
|
pageNo: 1, |
|
|
|
|
|
|
|
pageSize: 100 |
|
|
|
|
|
|
|
}).then(res =>{ |
|
|
|
|
|
|
|
this.areasList = res.data.list; |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
}, |
|
|
|
getTaskCateList(){ |
|
|
|
getTaskCateList(){ |
|
|
|
getTaskCatePage({ |
|
|
|
getTaskCatePage({ |
|
|
|
pageNo: 1, |
|
|
|
pageNo: 1, |
|
|
@ -406,6 +455,7 @@ export default { |
|
|
|
/** 查询任务列表 */ |
|
|
|
/** 查询任务列表 */ |
|
|
|
getList() { |
|
|
|
getList() { |
|
|
|
this.loading = true; |
|
|
|
this.loading = true; |
|
|
|
|
|
|
|
// this.assemArea(); |
|
|
|
// 处理查询参数 |
|
|
|
// 处理查询参数 |
|
|
|
let params = {...this.queryParams}; |
|
|
|
let params = {...this.queryParams}; |
|
|
|
this.addBeginAndEndTime(params, this.dateRangePlanStartTime, 'planStartTime'); |
|
|
|
this.addBeginAndEndTime(params, this.dateRangePlanStartTime, 'planStartTime'); |
|
|
@ -448,6 +498,16 @@ export default { |
|
|
|
}) |
|
|
|
}) |
|
|
|
element.executorPerson = executorName; |
|
|
|
element.executorPerson = executorName; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (element.areas != null) { |
|
|
|
|
|
|
|
element.areas = JSON.parse(element.areas); |
|
|
|
|
|
|
|
let areaName = ""; |
|
|
|
|
|
|
|
element.areas.forEach(item =>{ |
|
|
|
|
|
|
|
let p = this.areasList.filter(t => t.id == item[0])[0].name; |
|
|
|
|
|
|
|
let s = this.areasList.filter(t => t.id == item[1])[0].name; |
|
|
|
|
|
|
|
areaName += p +"/" + s +"、\n"; |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
element.areas = areaName; |
|
|
|
|
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
this.list = response.data.list; |
|
|
|
this.list = response.data.list; |
|
|
|
this.total = response.data.total; |
|
|
|
this.total = response.data.total; |
|
|
@ -531,12 +591,18 @@ export default { |
|
|
|
handleAdd() { |
|
|
|
handleAdd() { |
|
|
|
this.reset(); |
|
|
|
this.reset(); |
|
|
|
this.twoRescoure(); |
|
|
|
this.twoRescoure(); |
|
|
|
|
|
|
|
this.assemArea(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.resourceNumberList = []; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.open = true; |
|
|
|
this.open = true; |
|
|
|
this.title = "添加农场任务"; |
|
|
|
this.title = "添加农场任务"; |
|
|
|
}, |
|
|
|
}, |
|
|
|
/** 修改按钮操作 */ |
|
|
|
/** 修改按钮操作 */ |
|
|
|
handleUpdate(row) { |
|
|
|
handleUpdate(row) { |
|
|
|
this.reset(); |
|
|
|
this.reset(); |
|
|
|
|
|
|
|
this.assemArea(); |
|
|
|
const id = row.id; |
|
|
|
const id = row.id; |
|
|
|
getTask(id).then(response => { |
|
|
|
getTask(id).then(response => { |
|
|
|
this.form = response.data; |
|
|
|
this.form = response.data; |
|
|
@ -551,9 +617,14 @@ export default { |
|
|
|
this.form.images = imagesArr; |
|
|
|
this.form.images = imagesArr; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
let executorArr = JSON.parse(response.data.executorPerson); |
|
|
|
let executorArr = JSON.parse(response.data.executorPerson); |
|
|
|
this.form.executorPerson = executorArr; |
|
|
|
this.form.executorPerson = executorArr; |
|
|
|
this.executorPerson = executorArr; |
|
|
|
this.executorPerson = executorArr; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let areasArray = JSON.parse(response.data.areas); |
|
|
|
|
|
|
|
this.form.areas = areasArray; |
|
|
|
|
|
|
|
|
|
|
|
this.open = true; |
|
|
|
this.open = true; |
|
|
|
this.title = "修改农场任务"; |
|
|
|
this.title = "修改农场任务"; |
|
|
|
}); |
|
|
|
}); |
|
|
@ -568,6 +639,7 @@ export default { |
|
|
|
//资源转json |
|
|
|
//资源转json |
|
|
|
this.form.resources = JSON.stringify(this.selectResourceList); |
|
|
|
this.form.resources = JSON.stringify(this.selectResourceList); |
|
|
|
this.form.executorPerson = JSON.stringify(this.executorPerson); |
|
|
|
this.form.executorPerson = JSON.stringify(this.executorPerson); |
|
|
|
|
|
|
|
this.form.areas = JSON.stringify(this.form.areas); |
|
|
|
//图片转json |
|
|
|
//图片转json |
|
|
|
let im = this.form.images; |
|
|
|
let im = this.form.images; |
|
|
|
this.form.images = JSON.stringify(""); |
|
|
|
this.form.images = JSON.stringify(""); |
|
|
@ -589,6 +661,7 @@ export default { |
|
|
|
// 添加的提交 |
|
|
|
// 添加的提交 |
|
|
|
createTask(this.form).then(response => { |
|
|
|
createTask(this.form).then(response => { |
|
|
|
this.form.executorPerson = JSON.stringify(this.form.executorPerson); |
|
|
|
this.form.executorPerson = JSON.stringify(this.form.executorPerson); |
|
|
|
|
|
|
|
this.form.members = JSON.stringify(this.form.members); |
|
|
|
this.$modal.msgSuccess("新增成功"); |
|
|
|
this.$modal.msgSuccess("新增成功"); |
|
|
|
this.open = false; |
|
|
|
this.open = false; |
|
|
|
this.getList(); |
|
|
|
this.getList(); |
|
|
@ -636,23 +709,68 @@ export default { |
|
|
|
}) |
|
|
|
}) |
|
|
|
this.twoList = firstList; |
|
|
|
this.twoList = firstList; |
|
|
|
}, |
|
|
|
}, |
|
|
|
addR(row){ |
|
|
|
changeCateOne(row){ |
|
|
|
console.log("添加", row); |
|
|
|
this.cateTwoList = this.taskCateAllList.filter(t => t.parentId == row); |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
changeResources(row){ |
|
|
|
|
|
|
|
let selectROW = this.$refs['chooseR'].getCheckedNodes(); |
|
|
|
|
|
|
|
if (row.length == 0) { |
|
|
|
|
|
|
|
this.resourceNumberList = []; |
|
|
|
|
|
|
|
return ; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (selectROW.filter(t=>t.hasChildren).length == 0) { |
|
|
|
|
|
|
|
//节点数量为0 清除待填数据 |
|
|
|
|
|
|
|
this.resourceNumberList = []; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
selectROW.forEach(item =>{ |
|
|
|
|
|
|
|
if(!item.hasChildren){ |
|
|
|
|
|
|
|
//没有腹肌才算 |
|
|
|
|
|
|
|
let obj = { |
|
|
|
|
|
|
|
pId: item.parent.data.value, |
|
|
|
|
|
|
|
pValue: item.parent.data.label, |
|
|
|
|
|
|
|
id:item.data.value, |
|
|
|
|
|
|
|
value: item.data.label |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
var index = this.resourceNumberList.findIndex(item => item.id === obj.id); |
|
|
|
|
|
|
|
if(index == -1){ |
|
|
|
|
|
|
|
this.resourceNumberList.push(obj); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}) |
|
|
|
}, |
|
|
|
}, |
|
|
|
delR(row){ |
|
|
|
assemArea(){ |
|
|
|
console.log("删除", row); |
|
|
|
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; |
|
|
|
}, |
|
|
|
}, |
|
|
|
changeTaskCate(row){ |
|
|
|
changeProject(row){ |
|
|
|
let selectArr = row; |
|
|
|
this.form.areas = null; |
|
|
|
this.taskCateAllList.forEach(item =>{ |
|
|
|
this.assemArea(); |
|
|
|
selectArr.forEach(id =>{ |
|
|
|
let projectArea = JSON.parse(this.projectList.filter(project => project.id == row)[0].areas); |
|
|
|
if(item.value == id){ |
|
|
|
let filterArr = []; |
|
|
|
|
|
|
|
this.assemAreaList.forEach(t=>{ |
|
|
|
|
|
|
|
projectArea.forEach(a=>{ |
|
|
|
|
|
|
|
if (a == t.value) { |
|
|
|
|
|
|
|
filterArr.push(t); |
|
|
|
} |
|
|
|
} |
|
|
|
}) |
|
|
|
}) |
|
|
|
}) |
|
|
|
}) |
|
|
|
}, |
|
|
|
this.assemAreaList = filterArr; |
|
|
|
changeCateOne(row){ |
|
|
|
|
|
|
|
this.cateTwoList = this.taskCateAllList.filter(t => t.parentId == row); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
}; |
|
|
|