|
|
@ -15,12 +15,12 @@ |
|
|
|
<el-input v-model="queryParams.resources" placeholder="请输入" clearable @keyup.enter.native="handleQuery" /> |
|
|
|
<el-input v-model="queryParams.resources" placeholder="请输入" clearable @keyup.enter.native="handleQuery" /> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="开始时间"> |
|
|
|
<el-form-item label="开始时间"> |
|
|
|
<el-date-picker v-model="dateRangePlanStartTime" style="width: 240px" value-format="yyyy-MM-dd" |
|
|
|
<el-date-picker v-model="dateRangePlanStartTime" style="width: 240px" value-format="yyyy-MM-dd" type="daterange" |
|
|
|
type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" /> |
|
|
|
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" /> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="结束时间"> |
|
|
|
<el-form-item label="结束时间"> |
|
|
|
<el-date-picker v-model="dateRangePlanEndTime" style="width: 240px" value-format="yyyy-MM-dd" |
|
|
|
<el-date-picker v-model="dateRangePlanEndTime" style="width: 240px" value-format="yyyy-MM-dd" type="daterange" |
|
|
|
type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" /> |
|
|
|
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" /> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="优先级" prop="weight"> |
|
|
|
<el-form-item label="优先级" prop="weight"> |
|
|
|
<el-input v-model="queryParams.weight" placeholder="请输入优先级" clearable @keyup.enter.native="handleQuery" /> |
|
|
|
<el-input v-model="queryParams.weight" placeholder="请输入优先级" clearable @keyup.enter.native="handleQuery" /> |
|
|
@ -38,8 +38,8 @@ |
|
|
|
v-hasPermi="['farm:task:create']">新增</el-button> |
|
|
|
v-hasPermi="['farm:task:create']">新增</el-button> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="1.5"> |
|
|
|
<el-col :span="1.5"> |
|
|
|
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading" |
|
|
|
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" |
|
|
|
v-hasPermi="['farm:task:export']">导出</el-button> |
|
|
|
:loading="exportLoading" v-hasPermi="['farm:task:export']">导出</el-button> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
|
|
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
|
|
|
</el-row> |
|
|
|
</el-row> |
|
|
@ -76,15 +76,16 @@ |
|
|
|
<span> {{ cateTwoList.find(t => t.id == scope.row.taskCateName).name }} </span> |
|
|
|
<span> {{ cateTwoList.find(t => t.id == scope.row.taskCateName).name }} </span> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="需要的资源" align="center" prop="resources" /> |
|
|
|
<el-table-column label="需要的资源" align="center" prop="resources"> |
|
|
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
|
|
|
<span>{{resouceConvert(scope.row.resources)}}</span> |
|
|
|
|
|
|
|
</template> |
|
|
|
|
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="工时" align="center" prop="workingHours" /> |
|
|
|
<el-table-column label="工时" align="center" prop="workingHours" /> |
|
|
|
|
|
|
|
|
|
|
|
<el-table-column label="图片" align="center" prop="images"> |
|
|
|
<el-table-column label="图片" align="center" prop="images"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-image |
|
|
|
<el-image v-if="scope.row.images[0] != null" style="" :src="scope.row.images[0]" |
|
|
|
v-if="scope.row.images[0] != null" |
|
|
|
|
|
|
|
style="" |
|
|
|
|
|
|
|
:src="scope.row.images[0]" |
|
|
|
|
|
|
|
:preview-src-list="scope.row.images"> |
|
|
|
:preview-src-list="scope.row.images"> |
|
|
|
</el-image> |
|
|
|
</el-image> |
|
|
|
</template> |
|
|
|
</template> |
|
|
@ -124,11 +125,7 @@ |
|
|
|
|
|
|
|
|
|
|
|
<el-form-item label="项目选择" prop="projectId"> |
|
|
|
<el-form-item label="项目选择" prop="projectId"> |
|
|
|
<el-select v-model="form.projectId" placeholder="请选择" @change="changeProject"> |
|
|
|
<el-select v-model="form.projectId" placeholder="请选择" @change="changeProject"> |
|
|
|
<el-option |
|
|
|
<el-option v-for="item in projectList" :key="item.id" :label="item.name" :value="item.id"> |
|
|
|
v-for="item in projectList" |
|
|
|
|
|
|
|
:key="item.id" |
|
|
|
|
|
|
|
:label="item.name" |
|
|
|
|
|
|
|
:value="item.id"> |
|
|
|
|
|
|
|
{{ item.name }} |
|
|
|
{{ item.name }} |
|
|
|
</el-option> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
@ -136,11 +133,7 @@ |
|
|
|
|
|
|
|
|
|
|
|
<el-form-item label="负责人" prop="mainPerson"> |
|
|
|
<el-form-item label="负责人" prop="mainPerson"> |
|
|
|
<el-select v-model="form.mainPerson" placeholder="请选择"> |
|
|
|
<el-select v-model="form.mainPerson" placeholder="请选择"> |
|
|
|
<el-option |
|
|
|
<el-option v-for="item in cpUserList" :key="item.id" :label="item.name" :value="item.id"> |
|
|
|
v-for="item in cpUserList" |
|
|
|
|
|
|
|
:key="item.id" |
|
|
|
|
|
|
|
:label="item.name" |
|
|
|
|
|
|
|
:value="item.id"> |
|
|
|
|
|
|
|
{{ item.name }} |
|
|
|
{{ item.name }} |
|
|
|
</el-option> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
@ -148,33 +141,20 @@ |
|
|
|
|
|
|
|
|
|
|
|
<el-form-item label="执行人" prop="executorPerson"> |
|
|
|
<el-form-item label="执行人" prop="executorPerson"> |
|
|
|
<el-select v-model="executorPerson" multiple placeholder="请选择"> |
|
|
|
<el-select v-model="executorPerson" multiple placeholder="请选择"> |
|
|
|
<el-option |
|
|
|
<el-option v-for="item in cpUserList" :key="item.id" :label="item.name" :value="item.id"> |
|
|
|
v-for="item in cpUserList" |
|
|
|
|
|
|
|
:key="item.id" |
|
|
|
|
|
|
|
:label="item.name" |
|
|
|
|
|
|
|
:value="item.id"> |
|
|
|
|
|
|
|
{{ item.name }} |
|
|
|
{{ item.name }} |
|
|
|
</el-option> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
|
|
<el-form-item label="区域选择" prop="assemAreaList"> |
|
|
|
<el-form-item label="区域选择" prop="assemAreaList"> |
|
|
|
<el-cascader |
|
|
|
<el-cascader :options="assemAreaList" :props="props" clearable ref="chooseA" v-model="form.areas"> |
|
|
|
:options="assemAreaList" |
|
|
|
|
|
|
|
:props="props" |
|
|
|
|
|
|
|
clearable |
|
|
|
|
|
|
|
ref="chooseA" |
|
|
|
|
|
|
|
v-model="form.areas"> |
|
|
|
|
|
|
|
</el-cascader> |
|
|
|
</el-cascader> |
|
|
|
</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 |
|
|
|
<el-option v-for="item in cropList" :key="item.id" :label="item.name" :value="item.id"> |
|
|
|
v-for="item in cropList" |
|
|
|
|
|
|
|
:key="item.id" |
|
|
|
|
|
|
|
:label="item.name" |
|
|
|
|
|
|
|
:value="item.id"> |
|
|
|
|
|
|
|
{{ item.name }} |
|
|
|
{{ item.name }} |
|
|
|
</el-option> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
@ -186,11 +166,7 @@ |
|
|
|
|
|
|
|
|
|
|
|
<el-form-item label="任务类型" prop="taskCateId"> |
|
|
|
<el-form-item label="任务类型" prop="taskCateId"> |
|
|
|
<el-select v-model="form.taskCateId" placeholder="请选择" @change="changeCateOne"> |
|
|
|
<el-select v-model="form.taskCateId" placeholder="请选择" @change="changeCateOne"> |
|
|
|
<el-option |
|
|
|
<el-option v-for="item in cateOneList" :key="item.id" :label="item.name" :value="item.id"> |
|
|
|
v-for="item in cateOneList" |
|
|
|
|
|
|
|
:key="item.id" |
|
|
|
|
|
|
|
:label="item.name" |
|
|
|
|
|
|
|
:value="item.id"> |
|
|
|
|
|
|
|
{{ item.name }} |
|
|
|
{{ item.name }} |
|
|
|
</el-option> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
@ -198,52 +174,20 @@ |
|
|
|
|
|
|
|
|
|
|
|
<el-form-item label="任务内容" prop="taskCateName"> |
|
|
|
<el-form-item label="任务内容" prop="taskCateName"> |
|
|
|
<el-select v-model="form.taskCateName" placeholder="请选择"> |
|
|
|
<el-select v-model="form.taskCateName" placeholder="请选择"> |
|
|
|
<el-option |
|
|
|
<el-option v-for="item in cateTwoList" :key="item.id" :label="item.name" :value="item.id"> |
|
|
|
v-for="item in cateTwoList" |
|
|
|
|
|
|
|
:key="item.id" |
|
|
|
|
|
|
|
:label="item.name" |
|
|
|
|
|
|
|
:value="item.id"> |
|
|
|
|
|
|
|
{{ item.name }} |
|
|
|
{{ item.name }} |
|
|
|
</el-option> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
|
|
<el-form-item label="资源选择" prop="resources"> |
|
|
|
<el-button type="primary" @click="addResource">主要按钮</el-button> |
|
|
|
<el-cascader |
|
|
|
|
|
|
|
:options="twoList" |
|
|
|
<el-form-item label="资源选择" v-for="(item,index) in form.resources" :key="index"> |
|
|
|
:props="props" |
|
|
|
<el-cascader :options="twoList" clearable v-model="item.resourceId" @change="(obj)=>ziyuanxuanze(item,index,obj)"> |
|
|
|
clearable |
|
|
|
|
|
|
|
ref="chooseR" |
|
|
|
|
|
|
|
@change="changeResources" |
|
|
|
|
|
|
|
v-model="form.resources"> |
|
|
|
|
|
|
|
</el-cascader> |
|
|
|
</el-cascader> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- <el-form-item label="填写数量" prop="resources"> |
|
|
|
<el-input v-model="item.num"/> |
|
|
|
<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-item> |
|
|
|
</el-form> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -255,10 +199,12 @@ |
|
|
|
<imageUpload v-model="form.images" /> |
|
|
|
<imageUpload v-model="form.images" /> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="任务开始时间" prop="planStartTime"> |
|
|
|
<el-form-item label="任务开始时间" prop="planStartTime"> |
|
|
|
<el-date-picker clearable v-model="form.planStartTime" type="datetime" value-format="timestamp" placeholder="选择" /> |
|
|
|
<el-date-picker clearable v-model="form.planStartTime" type="datetime" value-format="timestamp" |
|
|
|
|
|
|
|
placeholder="选择" /> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="任务结束时间" prop="planEndTime"> |
|
|
|
<el-form-item label="任务结束时间" prop="planEndTime"> |
|
|
|
<el-date-picker clearable v-model="form.planEndTime" type="datetime" value-format="timestamp" placeholder="选择" /> |
|
|
|
<el-date-picker clearable v-model="form.planEndTime" type="datetime" value-format="timestamp" |
|
|
|
|
|
|
|
placeholder="选择" /> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="优先级" prop="weight"> |
|
|
|
<el-form-item label="优先级" prop="weight"> |
|
|
|
<el-input v-model="form.weight" placeholder="请输入优先级" /> |
|
|
|
<el-input v-model="form.weight" placeholder="请输入优先级" /> |
|
|
@ -326,7 +272,8 @@ export default { |
|
|
|
workingHours: null |
|
|
|
workingHours: null |
|
|
|
}, |
|
|
|
}, |
|
|
|
// 表单参数 |
|
|
|
// 表单参数 |
|
|
|
form: {}, |
|
|
|
form: { |
|
|
|
|
|
|
|
}, |
|
|
|
// 表单校验 |
|
|
|
// 表单校验 |
|
|
|
rules: { |
|
|
|
rules: { |
|
|
|
projectId: [{ required: true, message: "不能为空", trigger: "blur" }], |
|
|
|
projectId: [{ required: true, message: "不能为空", trigger: "blur" }], |
|
|
@ -365,7 +312,6 @@ export default { |
|
|
|
assemAreaList: [], |
|
|
|
assemAreaList: [], |
|
|
|
areasParentList: [], |
|
|
|
areasParentList: [], |
|
|
|
areasSonList: [], |
|
|
|
areasSonList: [], |
|
|
|
|
|
|
|
|
|
|
|
}; |
|
|
|
}; |
|
|
|
}, |
|
|
|
}, |
|
|
|
created() { |
|
|
|
created() { |
|
|
@ -378,6 +324,26 @@ export default { |
|
|
|
this.getAreasList(); |
|
|
|
this.getAreasList(); |
|
|
|
}, |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
methods: { |
|
|
|
|
|
|
|
resouceConvert(resources){ |
|
|
|
|
|
|
|
let rnameArr = this.resourceList.filter(s=>{ |
|
|
|
|
|
|
|
if (resources.length > 0){ |
|
|
|
|
|
|
|
return resources[0].resourceId.indexOf(s.id)>= 0; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} ); |
|
|
|
|
|
|
|
let rname = ""; |
|
|
|
|
|
|
|
rnameArr.forEach(s=>{ |
|
|
|
|
|
|
|
rname += s.name + "-"; |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
return rname; |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
ziyuanxuanze(item,index,obj){ |
|
|
|
|
|
|
|
this.form.resource[index].reource = obj[1]; |
|
|
|
|
|
|
|
console.log(this.form.resource); |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
addResource(){ |
|
|
|
|
|
|
|
let resourceTmp = {reource:0,num:1} |
|
|
|
|
|
|
|
this.form.resources = this.form.resources.concat(resourceTmp) |
|
|
|
|
|
|
|
}, |
|
|
|
getAreasList() { |
|
|
|
getAreasList() { |
|
|
|
getAreaPage({ |
|
|
|
getAreaPage({ |
|
|
|
pageNo: 1, |
|
|
|
pageNo: 1, |
|
|
@ -473,19 +439,7 @@ export default { |
|
|
|
//无图片给个空 |
|
|
|
//无图片给个空 |
|
|
|
element.images = []; |
|
|
|
element.images = []; |
|
|
|
} |
|
|
|
} |
|
|
|
//2 循环每个list对象的resource |
|
|
|
|
|
|
|
element.resources = JSON.parse(element.resources); |
|
|
|
|
|
|
|
let resourceName = ''; |
|
|
|
|
|
|
|
element.resources.forEach((inn) =>{ |
|
|
|
|
|
|
|
//3 每个resouce循环比较 resourceList,取得名字 |
|
|
|
|
|
|
|
this.resourceList.forEach((resource) =>{ |
|
|
|
|
|
|
|
if(inn == resource.id){ |
|
|
|
|
|
|
|
resourceName += (resource.name + "、\n"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
element.resources = resourceName; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
element.executorPerson = JSON.parse(element.executorPerson); |
|
|
|
element.executorPerson = JSON.parse(element.executorPerson); |
|
|
|
let executorName = ''; |
|
|
|
let executorName = ''; |
|
|
@ -560,7 +514,7 @@ export default { |
|
|
|
id: undefined, |
|
|
|
id: undefined, |
|
|
|
taskCateId: undefined, |
|
|
|
taskCateId: undefined, |
|
|
|
taskCateName: undefined, |
|
|
|
taskCateName: undefined, |
|
|
|
resources: undefined, |
|
|
|
resources: [], |
|
|
|
images: undefined, |
|
|
|
images: undefined, |
|
|
|
planStartTime: undefined, |
|
|
|
planStartTime: undefined, |
|
|
|
planEndTime: undefined, |
|
|
|
planEndTime: undefined, |
|
|
@ -570,7 +524,7 @@ export default { |
|
|
|
cropNum: undefined, |
|
|
|
cropNum: undefined, |
|
|
|
mainPerson: undefined, |
|
|
|
mainPerson: undefined, |
|
|
|
executorPerson: undefined, |
|
|
|
executorPerson: undefined, |
|
|
|
workingHours: undefined |
|
|
|
workingHours: undefined, |
|
|
|
}; |
|
|
|
}; |
|
|
|
this.resetForm("form"); |
|
|
|
this.resetForm("form"); |
|
|
|
}, |
|
|
|
}, |
|
|
@ -637,7 +591,6 @@ export default { |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
//资源转json |
|
|
|
//资源转json |
|
|
|
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); |
|
|
|
this.form.areas = JSON.stringify(this.form.areas); |
|
|
|
//图片转json |
|
|
|
//图片转json |
|
|
@ -713,33 +666,7 @@ export default { |
|
|
|
this.cateTwoList = this.taskCateAllList.filter(t => t.parentId == 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); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
assemArea() { |
|
|
|
assemArea() { |
|
|
|
let parentLsit = this.areasList.filter(t => t.parentId == 0); |
|
|
|
let parentLsit = this.areasList.filter(t => t.parentId == 0); |
|
|
|
let sonList = this.areasList.filter(s => s.parentId != 0); |
|
|
|
let sonList = this.areasList.filter(s => s.parentId != 0); |
|
|
|