优化;项目、任务
This commit is contained in:
@@ -108,17 +108,26 @@
|
||||
<el-form-item label="项目内容" prop="content">
|
||||
<editor v-model="form.content" :min-height="192"/>
|
||||
</el-form-item>
|
||||
|
||||
<!-- <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="selectAreasList" multiple placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in areasList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
{{item.name}}
|
||||
<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>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="作物选择" prop="cropId">
|
||||
<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}}
|
||||
@@ -135,10 +144,10 @@
|
||||
<imageUpload v-model="form.images"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目开始时间" prop="planStartTime">
|
||||
<el-date-picker clearable v-model="form.planStartTime" type="date" value-format="timestamp" placeholder="选择" />
|
||||
<el-date-picker clearable v-model="form.planStartTime" type="datetime" value-format="timestamp" placeholder="选择" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目结束时间" prop="planEndTime">
|
||||
<el-date-picker clearable v-model="form.planEndTime" type="date" value-format="timestamp" placeholder="选择" />
|
||||
<el-date-picker clearable v-model="form.planEndTime" type="datetime" value-format="timestamp" placeholder="选择" />
|
||||
</el-form-item>
|
||||
<el-form-item label="优先级" prop="weight">
|
||||
<el-input v-model="form.weight" placeholder="请输入数字(1第一优先,99最后优先)" />
|
||||
@@ -156,7 +165,6 @@
|
||||
import { createProject, updateProject, deleteProject, getProject, getProjectPage, exportProjectExcel, getProjectSearchPage } from "@/api/farm/project";
|
||||
import ImageUpload from '@/components/ImageUpload';
|
||||
import Editor from '@/components/Editor';
|
||||
// import { getResourcePage } from "@/api/farm/resource";
|
||||
import { getAreaPage} from "@/api/farm/area";
|
||||
import { getCropPage} from "@/api/farm/crop";
|
||||
import { getCpUserPage} from "@/api/system/cpUser"
|
||||
@@ -213,7 +221,13 @@ export default {
|
||||
planEndTime: [{ required: true, message: "不能为空", trigger: "blur" }],
|
||||
weight: [{ required: true, message: "不能为空", trigger: "blur" }],
|
||||
},
|
||||
props: { multiple: true },
|
||||
|
||||
areasList:[],
|
||||
assemAreaList:[],
|
||||
areasParentList:[],
|
||||
areasSonList:[],
|
||||
|
||||
selectAreasList:[],
|
||||
cropList:[],
|
||||
membersList:[],
|
||||
@@ -222,7 +236,6 @@ export default {
|
||||
};
|
||||
},
|
||||
created() {
|
||||
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
@@ -237,7 +250,8 @@ export default {
|
||||
getAreasList(){
|
||||
getAreaPage({
|
||||
pageNo: 1,
|
||||
pageSize: 100
|
||||
pageSize: 100,
|
||||
parentId: 0
|
||||
}).then(res =>{
|
||||
this.areasList = res.data.list;
|
||||
})
|
||||
@@ -255,7 +269,7 @@ export default {
|
||||
this.getAreasList();
|
||||
this.getCropList();
|
||||
this.getCpUserList();
|
||||
|
||||
this.assemArea();
|
||||
this.loading = true;
|
||||
// 处理查询参数
|
||||
let params = {...this.queryParams};
|
||||
@@ -266,15 +280,12 @@ export default {
|
||||
getProjectPage(params).then(response => {
|
||||
response.data.list.forEach(element => {
|
||||
element.areas = JSON.parse(element.areas);
|
||||
let areasName = '';
|
||||
element.areas.forEach((inn) =>{
|
||||
this.areasList.forEach((ar) =>{
|
||||
if(inn == ar.id){
|
||||
areasName += (ar.name + "、\n");
|
||||
}
|
||||
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 = areasName;
|
||||
element.areas = areaName;
|
||||
|
||||
element.members = JSON.parse(element.members);
|
||||
if(element.members != null){
|
||||
@@ -291,7 +302,6 @@ export default {
|
||||
|
||||
});
|
||||
|
||||
|
||||
this.list = response.data.list;
|
||||
this.total = response.data.total;
|
||||
this.loading = false;
|
||||
@@ -363,11 +373,13 @@ export default {
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.getCpUserList();
|
||||
this.assemArea();
|
||||
this.open = true;
|
||||
this.title = "添加农场项目";
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.assemArea();
|
||||
this.reset();
|
||||
const id = row.id;
|
||||
getProject(id).then(response => {
|
||||
@@ -386,12 +398,13 @@ export default {
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
console.log("提交信息",this.form);
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (!valid) {
|
||||
return;
|
||||
}
|
||||
this.form.areas = JSON.stringify(this.selectAreasList);
|
||||
this.form.members = JSON.stringify(this.selectMembersList);
|
||||
this.form.areas = JSON.stringify(this.form.areas);
|
||||
|
||||
// 修改的提交
|
||||
if (this.form.id != null) {
|
||||
@@ -439,7 +452,29 @@ export default {
|
||||
this.$download.excel(response, '${table.classComment}.xls');
|
||||
this.exportLoading = false;
|
||||
}).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(){
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
+143
-25
@@ -58,6 +58,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<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" >
|
||||
<template slot-scope="scope">
|
||||
@@ -122,7 +123,7 @@
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
|
||||
<el-form-item label="项目选择" prop="projectId">
|
||||
<el-select v-model="form.projectId" placeholder="请选择">
|
||||
<el-select v-model="form.projectId" placeholder="请选择" @change="changeProject">
|
||||
<el-option
|
||||
v-for="item in projectList"
|
||||
:key="item.id"
|
||||
@@ -157,6 +158,16 @@
|
||||
</el-select>
|
||||
</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-select v-model="form.cropId" placeholder="请选择">
|
||||
<el-option
|
||||
@@ -197,19 +208,44 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<div v-for="(item,index) in resourceTypeList" :key="index">
|
||||
<el-form-item label="资源选择">
|
||||
<el-form-item label="资源选择" prop="resources">
|
||||
<el-cascader
|
||||
:options="twoList"
|
||||
:props="props"
|
||||
collapse-tags
|
||||
clearable
|
||||
ref="chooseR"
|
||||
@change="changeResources"
|
||||
v-model="form.resources">
|
||||
</el-cascader>
|
||||
<el-button @click="addR(index)">添加</el-button>
|
||||
<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>
|
||||
</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-input v-model="form.workingHours" placeholder="请输入工时" />
|
||||
@@ -244,8 +280,10 @@ import { getResourcePage } from "@/api/farm/resource";
|
||||
import { getProjectPage} from "@/api/farm/project";
|
||||
import { getCropPage} from "@/api/farm/crop";
|
||||
import { getResourceTypePage} from "@/api/farm/resourceType";
|
||||
import { getTaskCatePage} from "@/api/farm/taskCate"
|
||||
import { getCpUserPage} from "@/api/system/cpUser"
|
||||
import { getTaskCatePage} from "@/api/farm/taskCate";
|
||||
import { getCpUserPage} from "@/api/system/cpUser";
|
||||
import { getAreaPage} from "@/api/farm/area";
|
||||
|
||||
import { values } from 'min-dash';
|
||||
|
||||
export default {
|
||||
@@ -308,23 +346,25 @@ export default {
|
||||
cropList:[],
|
||||
|
||||
resourceTypeList:[],
|
||||
selectResourceTypeList:[],
|
||||
resourceNumberList:[],
|
||||
|
||||
twoList:[],
|
||||
props: { multiple: true },
|
||||
|
||||
selectRList:[],
|
||||
|
||||
cpUserList:[],
|
||||
selectExecutorPerson:[],
|
||||
executorPerson:[],
|
||||
|
||||
taskCateAllList:[], //未组装的
|
||||
taskCateList:[], //组装好的
|
||||
selectTaskCateList: [],//选择的
|
||||
|
||||
cateOneList:[],
|
||||
cateTwoList:[],
|
||||
formR:{},
|
||||
|
||||
areasList:[],
|
||||
assemAreaList:[],
|
||||
areasParentList:[],
|
||||
areasSonList:[],
|
||||
|
||||
};
|
||||
},
|
||||
@@ -335,8 +375,17 @@ export default {
|
||||
this.getCpUserList();
|
||||
this.getCropList();
|
||||
this.getTaskCateList();
|
||||
this.getAreasList();
|
||||
},
|
||||
methods: {
|
||||
getAreasList(){
|
||||
getAreaPage({
|
||||
pageNo: 1,
|
||||
pageSize: 100
|
||||
}).then(res =>{
|
||||
this.areasList = res.data.list;
|
||||
})
|
||||
},
|
||||
getTaskCateList(){
|
||||
getTaskCatePage({
|
||||
pageNo: 1,
|
||||
@@ -406,6 +455,7 @@ export default {
|
||||
/** 查询任务列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
// this.assemArea();
|
||||
// 处理查询参数
|
||||
let params = {...this.queryParams};
|
||||
this.addBeginAndEndTime(params, this.dateRangePlanStartTime, 'planStartTime');
|
||||
@@ -448,6 +498,16 @@ export default {
|
||||
})
|
||||
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.total = response.data.total;
|
||||
@@ -531,12 +591,18 @@ export default {
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.twoRescoure();
|
||||
this.assemArea();
|
||||
|
||||
this.resourceNumberList = [];
|
||||
|
||||
|
||||
this.open = true;
|
||||
this.title = "添加农场任务";
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
this.assemArea();
|
||||
const id = row.id;
|
||||
getTask(id).then(response => {
|
||||
this.form = response.data;
|
||||
@@ -554,6 +620,11 @@ export default {
|
||||
let executorArr = JSON.parse(response.data.executorPerson);
|
||||
this.form.executorPerson = executorArr;
|
||||
this.executorPerson = executorArr;
|
||||
|
||||
|
||||
let areasArray = JSON.parse(response.data.areas);
|
||||
this.form.areas = areasArray;
|
||||
|
||||
this.open = true;
|
||||
this.title = "修改农场任务";
|
||||
});
|
||||
@@ -568,6 +639,7 @@ export default {
|
||||
//资源转json
|
||||
this.form.resources = JSON.stringify(this.selectResourceList);
|
||||
this.form.executorPerson = JSON.stringify(this.executorPerson);
|
||||
this.form.areas = JSON.stringify(this.form.areas);
|
||||
//图片转json
|
||||
let im = this.form.images;
|
||||
this.form.images = JSON.stringify("");
|
||||
@@ -589,6 +661,7 @@ export default {
|
||||
// 添加的提交
|
||||
createTask(this.form).then(response => {
|
||||
this.form.executorPerson = JSON.stringify(this.form.executorPerson);
|
||||
this.form.members = JSON.stringify(this.form.members);
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
@@ -636,23 +709,68 @@ export default {
|
||||
})
|
||||
this.twoList = firstList;
|
||||
},
|
||||
addR(row){
|
||||
console.log("添加", row);
|
||||
changeCateOne(row){
|
||||
this.cateTwoList = this.taskCateAllList.filter(t => t.parentId == row);
|
||||
},
|
||||
delR(row){
|
||||
console.log("删除", 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);
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
changeTaskCate(row){
|
||||
let selectArr = row;
|
||||
this.taskCateAllList.forEach(item =>{
|
||||
selectArr.forEach(id =>{
|
||||
if(item.value == id){
|
||||
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;
|
||||
},
|
||||
changeProject(row){
|
||||
this.form.areas = null;
|
||||
this.assemArea();
|
||||
let projectArea = JSON.parse(this.projectList.filter(project => project.id == row)[0].areas);
|
||||
let filterArr = [];
|
||||
this.assemAreaList.forEach(t=>{
|
||||
projectArea.forEach(a=>{
|
||||
if (a == t.value) {
|
||||
filterArr.push(t);
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
changeCateOne(row){
|
||||
this.cateTwoList = this.taskCateAllList.filter(t => t.parentId == row);
|
||||
this.assemAreaList = filterArr;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user