|
|
|
@ -3,15 +3,24 @@ |
|
|
|
<div> |
|
|
|
<el-form :model="formData" ref="form" :rules="dataRule" :label-width="'120px'"> |
|
|
|
<el-form-item label="分类名称" prop="categoryName"> |
|
|
|
<el-input v-model="formData.categoryName" disabled class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input> |
|
|
|
<el-input v-model="formData.categoryName" :disabled="pageType == 'edit'" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item label="奖励积分" prop="awardPoint"> |
|
|
|
<el-input-number v-model="formData.awardPoint" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input-number> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="对应个性需求" prop="demandList"><el-cascader :options="demandOptions" :props="props" clearable></el-cascader></el-form-item> |
|
|
|
<el-form-item label="对应个性需求" prop="demandList"> |
|
|
|
<el-cascader ref="cascaderItem1" :options="demandOptions" :props="props1" v-model="formData.demandList1" @change="handleAreaChange1" clearable></el-cascader> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="对应公共服务" prop="commonServiceTypeList"> |
|
|
|
<el-cascader :options="commonServiceTypeOptions" :props="props" clearable></el-cascader> |
|
|
|
<el-cascader |
|
|
|
ref="cascaderItem2" |
|
|
|
:options="commonServiceTypeOptions" |
|
|
|
:props="props2" |
|
|
|
v-model="formData.commonServiceTypeList1" |
|
|
|
@change="handleAreaChange2" |
|
|
|
clearable |
|
|
|
></el-cascader> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
</div> |
|
|
|
@ -56,7 +65,13 @@ export default { |
|
|
|
|
|
|
|
data() { |
|
|
|
return { |
|
|
|
props: { multiple: true }, |
|
|
|
props1: { multiple: true, value: 'value', label: 'label', children: 'children' }, |
|
|
|
props2: { |
|
|
|
value: 'id', |
|
|
|
label: 'name', |
|
|
|
children: 'childList', |
|
|
|
multiple: true |
|
|
|
}, |
|
|
|
categoryCodeArr: {}, |
|
|
|
demandOptions: [], |
|
|
|
commonServiceTypeOptions: [], |
|
|
|
@ -71,9 +86,10 @@ export default { |
|
|
|
awardPoint: '', |
|
|
|
categoryId: '', |
|
|
|
categoryName: '', |
|
|
|
demandList: '', |
|
|
|
commonServiceTypeList: '', |
|
|
|
|
|
|
|
demandList1: [], |
|
|
|
commonServiceTypeList1: [], |
|
|
|
demandList: [], |
|
|
|
commonServiceTypeList: [] |
|
|
|
}, |
|
|
|
dataRule: { |
|
|
|
// name: [{ required: true, message: '场所名称不能为空', trigger: 'bulr' }], |
|
|
|
@ -90,7 +106,9 @@ export default { |
|
|
|
this.user = this.$store.state.user; |
|
|
|
this.agencyId = this.user.agencyId; |
|
|
|
this.startLoading(); |
|
|
|
this.getDetail(); |
|
|
|
if (this.pageType == 'edit') { |
|
|
|
this.getDetail(); |
|
|
|
} |
|
|
|
this.getDemandOptions(); |
|
|
|
this.getCommonServiceTypeOptions(); |
|
|
|
await this.endLoading(); |
|
|
|
@ -98,22 +116,38 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
methods: { |
|
|
|
// 服务类型下拉框选中事件 |
|
|
|
handleChangeServiceTypeLevel1() { |
|
|
|
this.formData.serviceTypeLevel2Id = ''; |
|
|
|
this.$http |
|
|
|
.get('/governance/commonServiceType/selectList/' + this.formData.serviceTypeLevel1Id) |
|
|
|
.then(({ data: res }) => { |
|
|
|
if (res.code !== 0) { |
|
|
|
return this.$message.error(res.msg); |
|
|
|
} else { |
|
|
|
this.serviceTypesLevel2 = res.data; |
|
|
|
} |
|
|
|
}) |
|
|
|
.catch(() => { |
|
|
|
return this.$message.error('网络错误'); |
|
|
|
}); |
|
|
|
handleAreaChange1(data) { |
|
|
|
let that = this; |
|
|
|
let demandList = []; |
|
|
|
const obj = this.$refs['cascaderItem1'].getCheckedNodes(); |
|
|
|
//标签上定义的 ref值 |
|
|
|
obj.forEach(item => { |
|
|
|
if (item.data.pvalue != '0') { |
|
|
|
let obj2 = { |
|
|
|
demandCategoryId: item.data.id, |
|
|
|
demandCategoryCode: item.data.value, |
|
|
|
demandParentCode: item.data.pvalue |
|
|
|
}; |
|
|
|
demandList.push(obj2); |
|
|
|
} |
|
|
|
}); |
|
|
|
that.formData.demandList = [...demandList]; |
|
|
|
}, |
|
|
|
handleAreaChange2(data) { |
|
|
|
let that = this; |
|
|
|
let commonServiceTypeList = []; |
|
|
|
const obj = this.$refs['cascaderItem2'].getCheckedNodes(); |
|
|
|
//标签上定义的 ref值 |
|
|
|
obj.forEach(item => { |
|
|
|
let obj2 = { |
|
|
|
commonServiceTypeId: item.data.id, |
|
|
|
commonServiceTypePid: item.data.pid |
|
|
|
}; |
|
|
|
commonServiceTypeList.push(obj2); |
|
|
|
}); |
|
|
|
that.formData.commonServiceTypeList = [...commonServiceTypeList]; |
|
|
|
}, |
|
|
|
|
|
|
|
getTreeData(data) { |
|
|
|
if (!Array.isArray(data)) return []; |
|
|
|
let arr = data.map(item => { |
|
|
|
@ -128,73 +162,14 @@ export default { |
|
|
|
}); |
|
|
|
return arr; |
|
|
|
}, |
|
|
|
getFlagData(data, flag) { |
|
|
|
if (!Array.isArray(data)) return []; |
|
|
|
let arr1 = data.filter(item => item[flag]); |
|
|
|
let arr2 = arr1.map(item => { |
|
|
|
if (item.children) return { ...item, children: this.getFlagData(item.children, flag) }; |
|
|
|
else return item; |
|
|
|
}); |
|
|
|
return arr2; |
|
|
|
}, |
|
|
|
// getTreeData(data) { |
|
|
|
// if (!Array.isArray(data)) return []; |
|
|
|
// let arr = data.map(item => { |
|
|
|
// let obj = {}; |
|
|
|
// if (item.children) |
|
|
|
// obj = { |
|
|
|
// label: item.label, |
|
|
|
// value: item.value, |
|
|
|
// children: this.getTreeData(item.children), |
|
|
|
// pid: item.pid |
|
|
|
// }; |
|
|
|
// else { |
|
|
|
// obj = { |
|
|
|
// label: item.label, |
|
|
|
// value: item.value, |
|
|
|
// pid: item.pid |
|
|
|
// }; |
|
|
|
// console.log('douzo ', obj.label); |
|
|
|
// } |
|
|
|
|
|
|
|
// return obj; |
|
|
|
// }); |
|
|
|
// return arr; |
|
|
|
// }, |
|
|
|
getTreeData2(data) { |
|
|
|
if (!Array.isArray(data)) return []; |
|
|
|
let arr = data.map(item => { |
|
|
|
let obj = {}; |
|
|
|
if (item.childrenList) |
|
|
|
obj = { |
|
|
|
label: item.name, |
|
|
|
value: item.id, |
|
|
|
children: this.getTreeData2(item.childrenList), |
|
|
|
pid: item.pid |
|
|
|
}; |
|
|
|
else { |
|
|
|
obj = { |
|
|
|
label: item.name, |
|
|
|
value: item.id, |
|
|
|
pid: item.pid |
|
|
|
}; |
|
|
|
console.log('douzo ', obj.label); |
|
|
|
} |
|
|
|
|
|
|
|
return obj; |
|
|
|
}); |
|
|
|
return arr; |
|
|
|
}, |
|
|
|
async getDemandOptions() { |
|
|
|
const url = `/governance/icresidemanddict/demandoption`; |
|
|
|
const { data, code, msg } = await requestPost(url); |
|
|
|
if (code === 0) { |
|
|
|
console.log('1', data); |
|
|
|
this.demandOptions = this.getFlagData( |
|
|
|
this.getTreeData(data), |
|
|
|
"usableFlag" |
|
|
|
); |
|
|
|
console.log('2', this.demandOptions); |
|
|
|
console.log('this.demandOptions', data); |
|
|
|
this.demandOptions = this.getTreeData(data); |
|
|
|
// console.log("this.demandOptions",this.demandOptions) |
|
|
|
} else { |
|
|
|
this.$message.error(msg); |
|
|
|
} |
|
|
|
@ -204,7 +179,7 @@ export default { |
|
|
|
const url = `/governance/commonServiceType/selectList/0`; |
|
|
|
const { data, code, msg } = await requestGet(url); |
|
|
|
if (code === 0) { |
|
|
|
this.commonServiceTypeOptions = this.getTreeData2(data); |
|
|
|
this.commonServiceTypeOptions = data; |
|
|
|
} else { |
|
|
|
this.$message.error(msg); |
|
|
|
} |
|
|
|
@ -215,20 +190,36 @@ export default { |
|
|
|
if (code === 0) { |
|
|
|
console.log('详情数据', data); |
|
|
|
this.formData = { ...data }; |
|
|
|
this.fenxiData(); |
|
|
|
this.index = this.arr.indexOf(this.formData.categoryName); |
|
|
|
} else { |
|
|
|
this.$message.error(msg); |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
fenxiData() { |
|
|
|
let that = this; |
|
|
|
let commonServiceTypeList1 = []; |
|
|
|
let demandList1 = []; |
|
|
|
this.formData.commonServiceTypeList.forEach((item, index) => { |
|
|
|
let arr = [item.commonServiceTypeId]; |
|
|
|
commonServiceTypeList1.push(arr); |
|
|
|
}); |
|
|
|
this.formData.demandList.forEach(item => { |
|
|
|
console.log(item); |
|
|
|
let arr2 = [item.demandParentCode,item.demandCategoryCode]; |
|
|
|
demandList1.push(arr2); |
|
|
|
}); |
|
|
|
this.formData.commonServiceTypeList1 = [...commonServiceTypeList1]; |
|
|
|
this.formData.demandList1 = [...demandList1]; |
|
|
|
}, |
|
|
|
handleComfirm() { |
|
|
|
this.save(); |
|
|
|
}, |
|
|
|
|
|
|
|
async save() { |
|
|
|
let form=this.formData; |
|
|
|
|
|
|
|
|
|
|
|
let form = this.formData; |
|
|
|
this.handleAreaChange1(); |
|
|
|
this.handleAreaChange2(); |
|
|
|
console.log('this.formData', this.formData); |
|
|
|
const url = '/actual/base/serviceitem/saveorupdate'; |
|
|
|
var params = {}; |
|
|
|
@ -242,7 +233,7 @@ export default { |
|
|
|
} |
|
|
|
}, |
|
|
|
handleCancle() { |
|
|
|
this.resetData(); |
|
|
|
// this.resetData(); |
|
|
|
this.$emit('handleClose'); |
|
|
|
}, |
|
|
|
resetData() { |
|
|
|
|