Browse Source

服务事项分类(新增功能)-对应公共服务二级

V1.0
mk 3 years ago
parent
commit
fc91630bd4
  1. 527
      src/views/modules/workSys/serviceMattersComponents/addForm.vue

527
src/views/modules/workSys/serviceMattersComponents/addForm.vue

@ -1,48 +1,70 @@
<template>
<el-dialog :visible.sync="dialogVisible" width="800px" :before-close="handleCancle">
<span slot="title">
<span v-if="pageType=='add'">新增</span>
<span v-if="pageType=='edit'">修改</span>
<span v-if="pageType=='view'">查看</span>
</span>
<div>
<el-form :model="formData" ref="form" :rules="dataRule" :label-width="'120px'">
<el-form-item label="分类名称" prop="categoryName">
<el-input v-model="formData.categoryName" class="u-item-width-normal" size="small" clearable placeholder="请输入"></el-input>
</el-form-item>
<el-dialog
:visible.sync="dialogVisible"
width="800px"
:before-close="handleCancle"
>
<span slot="title">
<span v-if="pageType == 'add'">新增</span>
<span v-if="pageType == 'edit'">修改</span>
<span v-if="pageType == 'view'">查看</span>
</span>
<div>
<el-form
:model="formData"
ref="form"
:rules="dataRule"
:label-width="'120px'"
>
<el-form-item label="分类名称" prop="categoryName">
<el-input
v-model="formData.categoryName"
class="u-item-width-normal"
size="small"
clearable
placeholder="请输入"
></el-input>
</el-form-item>
<!-- <el-form-item label="奖励积分" prop="awardPoint">
<!-- <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 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
ref="cascaderItem2"
:options="commonServiceTypeOptions"
:props="props2"
v-model="formData.commonServiceTypeList1"
@change="handleAreaChange2"
clearable
></el-cascader>
</el-form-item>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="handleCancle"> </el-button>
<el-button type="primary" @click="handleComfirm"> </el-button>
</span>
</el-dialog>
<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
ref="cascaderItem2"
:options="commonServiceTypeOptions"
:props="props2"
v-model="formData.commonServiceTypeList1"
@change="handleAreaChange2"
clearable
></el-cascader>
</el-form-item>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="handleCancle"> </el-button>
<el-button type="primary" @click="handleComfirm"> </el-button>
</span>
</el-dialog>
</template>
<script>
import { isMobile } from '@/utils/validate';
import { mapGetters } from 'vuex';
import { Loading } from 'element-ui'; // Loading
import { requestPost, requestGet } from '@/js/dai/request';
import daiMap from '@/utils/dai-map';
import nextTick from 'dai-js/tools/nextTick';
import { isMobile } from "@/utils/validate";
import { mapGetters } from "vuex";
import { Loading } from "element-ui"; // Loading
import { requestPost, requestGet } from "@/js/dai/request";
import daiMap from "@/utils/dai-map";
import nextTick from "dai-js/tools/nextTick";
let loading; //
let map;
@ -52,220 +74,239 @@ var infoWindowList;
var geocoder; //
export default {
props: {
detailId: {
type: String,
default: ''
},
props: {
detailId: {
type: String,
default: "",
},
dialogVisible: {
type: Boolean,
default: ''
},
pageType: {
type: String,
default: ''
}
},
dialogVisible: {
type: Boolean,
default: "",
},
pageType: {
type: String,
default: "",
},
},
data() {
return {
props1: { multiple: true, value: 'value', label: 'label', children: 'children' },
props2: {
value: 'id',
label: 'name',
children: 'childList',
multiple: true
},
categoryCodeArr: {},
demandOptions: [],
commonServiceTypeOptions: [],
index: -1, //arr
arr: ['育龄妇女', '老年人', '空巢老人', '独居老人', '租户', '残疾', '大病', '慢病'],
btnDisable: false,
user: '',
agencyId: '',
marryList: [{ value: '-1', label: '不限制' }, { value: '0', label: '未婚' }, { value: '1', label: '已婚' }],
list: {},
formData: {
// awardPoint: '',
categoryId: '',
categoryName: '',
demandList1: [],
commonServiceTypeList1: [],
demandList: [],
commonServiceTypeList: []
},
dataRule: {
categoryName: [{ required: true, message: '分类名称不能为空', trigger: 'bulr' }],
// awardPoint: [{ required: true, message: '', trigger: 'bulr' }],
// demandList: [{ required: true, message: '', trigger: 'blur' }],
// commonServiceTypeList: [{ required: true, message: '', trigger: 'bulr' }]
}
};
},
watch: {},
data() {
return {
props1: {
multiple: true,
value: "value",
label: "label",
children: "children",
},
props2: {
value: "id",
label: "name",
children: "childrenList",
multiple: true,
},
categoryCodeArr: {},
demandOptions: [],
commonServiceTypeOptions: [],
index: -1, //arr
arr: [
"育龄妇女",
"老年人",
"空巢老人",
"独居老人",
"租户",
"残疾",
"大病",
"慢病",
],
btnDisable: false,
user: "",
agencyId: "",
marryList: [
{ value: "-1", label: "不限制" },
{ value: "0", label: "未婚" },
{ value: "1", label: "已婚" },
],
list: {},
formData: {
// awardPoint: '',
categoryId: "",
categoryName: "",
demandList1: [],
commonServiceTypeList1: [],
demandList: [],
commonServiceTypeList: [],
},
dataRule: {
categoryName: [
{ required: true, message: "分类名称不能为空", trigger: "bulr" },
],
// awardPoint: [{ required: true, message: '', trigger: 'bulr' }],
// demandList: [{ required: true, message: '', trigger: 'blur' }],
// commonServiceTypeList: [{ required: true, message: '', trigger: 'bulr' }]
},
};
},
watch: {},
created() {},
async mounted() {
this.user = this.$store.state.user;
this.agencyId = this.user.agencyId;
this.startLoading();
if (this.pageType == 'edit') {
this.getDetail();
}
this.getDemandOptions();
this.getCommonServiceTypeOptions();
await this.endLoading();
this.endLoading();
},
created() {},
async mounted() {
this.user = this.$store.state.user;
this.agencyId = this.user.agencyId;
this.startLoading();
if (this.pageType == "edit") {
this.getDetail();
}
this.getDemandOptions();
this.getCommonServiceTypeOptions();
await this.endLoading();
this.endLoading();
},
methods: {
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];
},
methods: {
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) => {
let _item = {};
if (item.children) {
if (item.children.length === 0)
_item = { ...item, children: undefined };
else _item = { ...item, children: this.getTreeData(item.children) };
} else {
_item = { ...item };
}
return _item;
});
return arr;
},
getTreeData(data) {
if (!Array.isArray(data)) return [];
let arr = data.map(item => {
let _item = {};
if (item.children) {
if (item.children.length === 0) _item = { ...item, children: undefined };
else _item = { ...item, children: this.getTreeData(item.children) };
} else {
_item = { ...item };
}
return _item;
});
return arr;
},
async getDemandOptions() {
const url = `/governance/icresidemanddict/demandoption`;
const { data, code, msg } = await requestPost(url);
if (code === 0) {
console.log("this.demandOptions", data);
this.demandOptions = this.getTreeData(data);
// console.log("this.demandOptions",this.demandOptions)
} else {
this.$message.error(msg);
}
},
async getDemandOptions() {
const url = `/governance/icresidemanddict/demandoption`;
const { data, code, msg } = await requestPost(url);
if (code === 0) {
console.log('this.demandOptions', data);
this.demandOptions = this.getTreeData(data);
// console.log("this.demandOptions",this.demandOptions)
} else {
this.$message.error(msg);
}
},
async getCommonServiceTypeOptions() {
const url = `/governance/commonServiceType/treeList`;
const { data, code, msg } = await requestGet(url);
if (code === 0) {
this.commonServiceTypeOptions = data;
} else {
this.$message.error(msg);
}
},
async getDetail() {
const url = `/actual/base/serviceitem/detail/${this.detailId}`;
const { data, code, msg } = await requestPost(url);
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) => {
let arr = [item.commonServiceTypePid, 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 getCommonServiceTypeOptions() {
const url = `/governance/commonServiceType/selectList/0`;
const { data, code, msg } = await requestGet(url);
if (code === 0) {
this.commonServiceTypeOptions = data;
} else {
this.$message.error(msg);
}
},
async getDetail() {
const url = `/actual/base/serviceitem/detail/${this.detailId}`;
const { data, code, msg } = await requestPost(url);
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;
this.handleAreaChange1();
this.handleAreaChange2();
console.log('this.formData', this.formData);
const url = '/actual/base/serviceitem/saveorupdate';
var params = {};
params = { ...this.formData };
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.$message.success('操作成功');
this.handleCancle();
} else if (code >= 8000) {
this.$message.error(msg);
}
},
handleCancle() {
// this.resetData();
this.$emit('handleClose');
},
resetData() {
this.$refs.form.resetFields();
},
//
startLoading() {
loading = Loading.service({
lock: true, //
text: '正在加载……', //
background: 'rgba(0,0,0,.7)' //
});
},
//
endLoading() {
// clearTimeout(timer);
if (loading) {
loading.close();
}
} // init
}
async save() {
let form = this.formData;
this.handleAreaChange1();
this.handleAreaChange2();
console.log("this.formData", this.formData);
const url = "/actual/base/serviceitem/saveorupdate";
var params = {};
params = { ...this.formData };
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.$message.success("操作成功");
this.handleCancle();
} else if (code >= 8000) {
this.$message.error(msg);
}
},
handleCancle() {
// this.resetData();
this.$emit("handleClose");
},
resetData() {
this.$refs.form.resetFields();
},
//
startLoading() {
loading = Loading.service({
lock: true, //
text: "正在加载……", //
background: "rgba(0,0,0,.7)", //
});
},
//
endLoading() {
// clearTimeout(timer);
if (loading) {
loading.close();
}
}, // init
},
};
</script>
<style lang="scss" scoped>
@import '@/assets/scss/modules/management/form-main.scss';
@import '@/assets/scss/modules/management/form.scss';
@import '@/assets/scss/modules/visual/a_customize.scss';
@import "@/assets/scss/modules/management/form-main.scss";
@import "@/assets/scss/modules/management/form.scss";
@import "@/assets/scss/modules/visual/a_customize.scss";
</style>
Loading…
Cancel
Save