Browse Source

个性需求,政策找人,服务找人,岗位找人,温暖找人联建单位,社区自组织字段修改,服务事项分类页面调整

feature
mk 2 years ago
parent
commit
075191bbc7
  1. 96
      src/views/modules/communityParty/regionalParty/unitsForm.vue
  2. 186
      src/views/modules/communityService/fuwuzhaoren/addForm.vue
  3. 147
      src/views/modules/communityService/fuwuzhaoren/index.vue
  4. 180
      src/views/modules/communityService/gangweizhaoren/addForm.vue
  5. 156
      src/views/modules/communityService/gxxq/addForm.vue
  6. 4
      src/views/modules/communityService/gxxq/detailForm.vue
  7. 92
      src/views/modules/communityService/gxxq/index.vue
  8. 181
      src/views/modules/communityService/jinengzhaoren/addForm.vue
  9. 139
      src/views/modules/communityService/jinengzhaoren/index.vue
  10. 37
      src/views/modules/communityService/measure/index.vue
  11. 189
      src/views/modules/communityService/policy/addPolicy.vue
  12. 179
      src/views/modules/communityService/wennuanzhaoren/addForm.vue
  13. 113
      src/views/modules/communityService/wennuanzhaoren/index.vue
  14. 83
      src/views/modules/shequzhili/tuceng/yingji/zizuzhi/addForm.vue
  15. 115
      src/views/modules/workSys/serviceMatters.vue
  16. 91
      src/views/modules/workSys/serviceMattersComponents/addForm.vue

96
src/views/modules/communityParty/regionalParty/unitsForm.vue

@ -46,7 +46,7 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item
<!-- <el-form-item
label="服务事项"
prop="serviceMatterList"
label-width="150px"
@ -64,6 +64,16 @@
>{{ item.label }}</el-checkbox
>
</el-checkbox-group>
</el-form-item> -->
<el-form-item label="服务事项" prop="serviceMatterList" label-width="150px">
<el-cascader
v-model="formData.serviceMatterList"
:options="demandOptions"
:props="{label: 'categoryName',value: 'categoryCode',children: 'childCateList'}"
clearable
size="small"
class="u-item-width-normal"
></el-cascader>
</el-form-item>
<el-form-item
label="联系人"
@ -217,6 +227,8 @@ export default {
keyWords: "",
formData: initFormData(),
serviceList: [], //list
demandOptions:[]
};
},
components: {},
@ -229,9 +241,11 @@ export default {
this.startLoading();
this.$refs.ref_form.resetFields();
//
await this.loadService();
//old
// await this.loadService();
//
await this.getDemandOptions()
console.log(this.demandOptions);
let { latitude, longitude } = this.$store.state.user;
this.formType = type;
@ -250,23 +264,65 @@ export default {
this.endLoading();
},
//
async loadService() {
const url = "/actual/base/serviceitem/dict-list";
let params = {
type: "usable",
// parentCategoryCode: '1010'
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.serviceList = data;
} else {
this.$message.error(msg);
}
async getDemandOptions() {
this.$http
.post("/actual/base/serviceitem/listAllCategory")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.demandOptions = this.getFlagData(
this.getTreeData(res.data),
"usableFlag"
);
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
getFlagData(data, flag) {
if (!Array.isArray(data)) return [];
let arr1 = data.filter((item) => item[flag]);
let arr2 = arr1.map((item) => {
if (item.childCateList)
return { ...item, childCateList: this.getFlagData(item.childCateList, flag) };
else return item;
});
// console.log('arrr-oppp', arr2)
return arr2;
},
getTreeData(data) {
if (!Array.isArray(data)) return [];
let arr = data.map((item) => {
let _item = {};
if (item.childCateList) {
if (item.childCateList.length === 0)
_item = { ...item, childCateList: undefined };
else _item = { ...item, childCateList: this.getTreeData(item.childCateList) };
} else {
_item = { ...item };
}
return _item;
});
return arr;
},
//
// async loadService() {
// const url = "/actual/base/serviceitem/dict-list";
// let params = {
// type: "usable",
// // parentCategoryCode: '1010'
// };
// const { data, code, msg } = await requestPost(url, params);
// if (code === 0) {
// this.serviceList = data;
// } else {
// this.$message.error(msg);
// }
// },
//
async loadFormData() {

186
src/views/modules/communityService/fuwuzhaoren/addForm.vue

@ -12,44 +12,16 @@
:rules="dataRule"
class="div_form"
>
<el-form-item
label="服务类别"
style="display: block"
label-width="150px"
prop="serviceTypeLevel2Id"
>
<el-select
class="u-item-width-communitycascader"
v-model="formData.serviceTypeLevel1Id"
placeholder="请选择"
clearable
@change="handleChangeServiceTypeLevel1"
>
<el-option
v-for="item in serviceTypesLevel1"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
-
<el-select
class="u-item-width-communitycascader"
v-model="formData.serviceTypeLevel2Id"
placeholder="请选择"
@change="handleChangeServiceTypeLevel2"
<el-form-item label="需求类型" prop="categoryCode" label-width="150px">
<el-cascader
v-model="formData.categoryCode"
:options="demandOptions"
:props="{label: 'categoryName',value: 'categoryCode',children: 'childCateList'}"
clearable
>
<el-option
v-for="item in serviceTypesLevel2"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
size="small"
class="u-item-width-normal"
></el-cascader>
</el-form-item>
<!-- <el-form-item label="政策依据"
prop="policyId"
label-width="150px"
@ -420,10 +392,6 @@ export default {
return time.getTime() < nowData;
};
return {
//
serviceTypesLevel1: [],
serviceTypesLevel2: [],
btnDisable: false,
casOptions: [],
scopeIdArray: [],
@ -440,8 +408,8 @@ export default {
keyWords: "",
formData: {
serviceTypeLevel1Id: "", // id
serviceTypeLevel2Id: "", // id
categoryCode:[],
parentCategoryCode:'',
resiSearchTagId: "", //
resiSearchTagName: "", //
serviceName: "", //
@ -469,7 +437,7 @@ export default {
},
sarr: [],
dataRule: {
serviceTypeLevel2Id: [
categoryCode: [
{ required: true, message: "服务类别不能为空", trigger: "change" },
],
serviceName: [
@ -535,16 +503,13 @@ export default {
],
showLabelForm: false,
showFeedback: false,
demandOptions:[]
};
},
computed: {
feedbackDataRule() {
return {
// serviceGoal: [
// { required: true, message: "", trigger: "blur" },
// ],
serviceEffect: [
{ required: true, message: "服务效果不能为空", trigger: "blur" },
],
@ -587,24 +552,11 @@ export default {
} else if (this.formType == "edit") {
this.loadInfo();
}
await this.getDemandOptions()
await this.iniDefaultData();
this.endLoading();
//
this.$http
.get("/governance/commonServiceType/selectList/0")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.serviceTypesLevel1 = res.data;
console.log(res.data);
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
methods: {
@ -623,6 +575,49 @@ export default {
}
console.log(this.dataRule);
},
async getDemandOptions() {
this.$http
.post("/actual/base/serviceitem/listAllCategory")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.demandOptions = this.getFlagData(
this.getTreeData(res.data),
"usableFlag"
);
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
getFlagData(data, flag) {
if (!Array.isArray(data)) return [];
let arr1 = data.filter((item) => item[flag]);
let arr2 = arr1.map((item) => {
if (item.childCateList)
return { ...item, childCateList: this.getFlagData(item.childCateList, flag) };
else return item;
});
// console.log('arrr-oppp', arr2)
return arr2;
},
getTreeData(data) {
if (!Array.isArray(data)) return [];
let arr = data.map((item) => {
let _item = {};
if (item.childCateList) {
if (item.childCateList.length === 0)
_item = { ...item, childCateList: undefined };
else _item = { ...item, childCateList: this.getTreeData(item.childCateList) };
} else {
_item = { ...item };
}
return _item;
});
return arr;
},
//
async loadInfo() {
const url = "/governance/icServiceRecordV2/detail";
@ -634,13 +629,15 @@ export default {
if (code === 0) {
this.formData = { ...data };
if (data.categoryCode) {
this.formData.categoryCode = [data.parentCategoryCode, data.categoryCode];
} else {
this.formData.categoryCode = [data.parentCategoryCode];
}
if(!data.noticeApproches){
this.formData.noticeApproches = [];
}
this.scopeIdArray = data.gridIdList.map(i => i.objectId);
this.formData.serviceTypeLevel1Id = data.serviceTypeLevel1Id;
this.handleChangeServiceTypeLevel1();
this.formData.serviceTypeLevel2Id = data.serviceTypeLevel2Id;
this.feedbackFormData = { ...data.feedback };
await this.getServiceuserList(data.serviceOrgType);
@ -675,35 +672,6 @@ export default {
this.$message.error(msg);
}
},
//
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("网络错误");
});
},
//
handleChangeServiceTypeLevel2() {
console.log(this.formData.serviceTypeLevel1Id);
console.log(this.formData.serviceTypeLevel2Id);
if (this.formData.serviceOrgType) {
this.getServiceuserList(this.formData.serviceOrgType);
} else {
return;
}
},
handleClickLabel() {
this.showLabelForm = true;
this.$nextTick(() => {
@ -723,7 +691,6 @@ export default {
this.formData.resiSearchTagName = "";
},
getLastItem(list, vals, key) {
console.log(list, vals, key);
let LIST = list || [];
for (let item of LIST) {
for (let i of vals) {
@ -774,7 +741,6 @@ export default {
},
async iniDefaultData() {
const { defaultData } = this;
console.log("iniDefaultData3", defaultData);
if (defaultData) {
const { serviceOrgType, serviceOrgId, scopeIdArray } = defaultData;
if (serviceOrgType) {
@ -847,7 +813,6 @@ export default {
// }
// },
async handleServiceChange(type, val) {
console.log(val);
if (val === "social_org") {
if (type === "add") await this.getServiceuserList(val);
else this.getServiceuserList(val);
@ -856,13 +821,13 @@ export default {
async getServiceuserList(serverOrgType) {
if (!serverOrgType) return false;
if (this.formData.serviceTypeLevel2Id == "") {
if (this.formData.categoryCode.length === 0) {
this.$message.error("请先选择服务类别!");
return;
}
const url = "/actual/base/serviceitem/listServerOrg";
let params = {
serviceTypeId: this.formData.serviceTypeLevel2Id,
serviceTypeId: this.formData.categoryCode[1] ||this.formData.categoryCode[0],
serverOrgType: serverOrgType,
businessType: "common_service",
};
@ -988,9 +953,24 @@ export default {
}
// const url = 'http://yapi.elinkservice.cn/mock/245/governance/icServiceProject/service/initiate'
let params = {
...this.formData,
categoryCode:this.formData.categoryCode[1]?this.formData.categoryCode[1]:'',
parentCategoryCode:this.formData.categoryCode[0],
resiSearchTagId: this.formData.resiSearchTagId,
resiSearchTagName: this.formData.resiSearchTagName,
serviceName: this.formData.serviceName,
noticeApproches: this.formData.noticeApproches,
policyId: this.formData.policyId,
serviceOrgType: this.formData.serviceOrgType,
serviceOrgId: this.formData.serviceOrgId,
objList: this.formData.gridIdList,
principalName: this.formData.principalName,
principalContact: this.formData.principalContact,
serviceTimeStart: this.formData.serviceTimeStart,
serviceTimeEnd: this.formData.serviceTimeEnd,
remark: this.formData.remark,
feedback:this.formData.feedback,
serviceRecordId:this.serviceRecordId
};
delete params.serviceTypeLevel1Id;
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.$message.success("发起成功");
@ -1008,8 +988,8 @@ export default {
resetData() {
this.formData = {
serviceTypeLevel1Id: "", // id
serviceTypeLevel2Id: "", // id
categoryCode:[],
parentCategoryCode:'',
gridIdList: [], //
principalName: "", //()
principalContact: "", //

147
src/views/modules/communityService/fuwuzhaoren/index.vue

@ -3,39 +3,20 @@
<div>
<div class="m-search">
<el-form :inline="true"
:model="formData"
ref="ref_searchform"
:label-width="'100px'">
<el-form-item prop="serviceType"
label="服务类别"
>
<el-select class="u-item-width-daterange"
v-model.trim="formData.serviceTypeLevel1Id"
placeholder="请选择"
size="small"
clearable>
<el-option v-for="item in serviceTypesLevel1"
@click.native="handleChangeServiceTypeLevel1"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="serviceType">
<el-select class="u-item-width-daterange"
v-model.trim="formData.serviceTypeLevel2Id"
placeholder="请选择"
size="small"
clearable>
<el-option v-for="item in serviceTypesLevel2"
@click.native=""
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
:model="formData"
ref="ref_searchform"
:label-width="'100px'">
<el-form-item label="服务类别" prop="categoryCode">
<el-cascader
v-model="formData.categoryCode"
class="u-item-width-daterange2"
size="small"
:options="searchdemandOptions"
:props="{ checkStrictly: true, label: 'categoryName', value: 'categoryCode', children: 'childCateList' }"
clearable
@change="handleCateCHange"
></el-cascader>
</el-form-item>
<el-form-item label="服务时间"
prop="serviceTimeStart">
@ -320,27 +301,6 @@
@handleOk="handleOk"
@handleClose="handleClose"></add-form>
</el-dialog>
<!-- 编辑与新增写在一个组件中 -->
<!-- <el-dialog v-if="showEdit"
:visible.sync="showEdit"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="'编辑'"
:modal-append-to-body="false"
width="850px"
top="5vh"
class="dialog-h"
@closed="showEdit = false">
<edit-form ref="ref_edit_form"
:serviceRecordId="serviceRecordId"
:serviceOrgName="serviceOrgName"
:satisfyArray="satisfyArray"
:statusArray="statusArray"
@handleOk="handleOk"
@handleClose="handleClose"
:formType="formType">
</edit-form>
</el-dialog> -->
<el-dialog v-if="showDetail"
:visible.sync="showDetail"
:close-on-click-modal="false"
@ -385,12 +345,11 @@ import { mapGetters } from "vuex";
import axios from "axios";
import addForm from "./addForm";
import detailForm from "./detailForm.vue";
import editForm from "./editForm";
import feedBackForm from "./addForm";
import personList from "./personList";
//
export default {
components: { addForm, detailForm, feedBackForm, editForm, personList },
components: { addForm, detailForm, feedBackForm, personList },
data () {
@ -411,9 +370,6 @@ export default {
}
return {
//
serviceTypesLevel1:[],
serviceTypesLevel2:[],
tableLoading: false,
user: {},
agencyId: '',
@ -447,8 +403,8 @@ export default {
],
formData: {
serviceTypeLevel1Id:'',// id
serviceTypeLevel2Id:'',// id
categoryCode:'',
parentCategoryCode:'',
serviceName: '',//
serviceOrgType: '',//
serviceOrgId: '',//Id
@ -488,7 +444,10 @@ export default {
ruleList: [],
//
multiSelectedRows: []
multiSelectedRows: [],
searchdemandOptions:[]
};
},
computed: {
@ -515,26 +474,38 @@ export default {
this.agencyId = this.user.agencyId
this.getDictOptions()
this.getTableData();
this.getDemandOptions()
},
methods: {
//
handleChangeServiceTypeLevel1() {
this.formData.serviceTypeLevel2Id = ''
async getDemandOptions() {
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("网络错误");
})
.post("/actual/base/serviceitem/listAllCategory")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.searchdemandOptions = this.getTreeData(res.data);
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
getTreeData(data) {
if (!Array.isArray(data)) return [];
let arr = data.map((item) => {
let _item = {};
if (item.childCateList) {
if (item.childCateList.length === 0)
_item = { ...item, childCateList: undefined };
else _item = { ...item, childCateList: this.getTreeData(item.childCateList) };
} else {
_item = { ...item };
}
return _item;
});
return arr;
},
handleSearch (val) {
console.log(this.formData);
this.pageNo = 1;
@ -556,18 +527,6 @@ export default {
this.$message.error(msg)
}
this.$http
.get("/governance/commonServiceType/selectList/0")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.serviceTypesLevel1 = res.data;
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
handleServiceChange (type, val) {
@ -799,8 +758,7 @@ export default {
resetSearch () {
this.formData = {
serviceTypeLevel1Id:'',// id
serviceTypeLevel2Id:'',// id
categoryCode:'',
serviceName: '',//
serviceOrgType: '',//
serviceOrgId: '',//Id
@ -814,7 +772,10 @@ export default {
this.pageNo = 1
this.getTableData()
},
handleCateCHange(val) {
this.formData.parentCategoryCode = val[0];
this.formData.categoryCode = val[1];
},
//
onMultiSelect(row) {
this.multiSelectedRows = row;

180
src/views/modules/communityService/gangweizhaoren/addForm.vue

@ -12,43 +12,15 @@
:rules="dataRule"
class="div_form"
>
<el-form-item
label="服务类别"
style="display: block"
label-width="150px"
prop="serviceTypeLevel2Id"
>
<el-select
class="u-item-width-communitycascader"
v-model="formData.serviceTypeLevel1Id"
placeholder="请选择"
clearable
@change="handleChangeServiceTypeLevel1"
>
<el-option
v-for="item in serviceTypesLevel1"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
-
<el-select
class="u-item-width-communitycascader"
v-model="formData.serviceTypeLevel2Id"
placeholder="请选择"
@change="handleChangeServiceTypeLevel2"
<el-form-item label="需求类型" prop="categoryCode" label-width="150px">
<el-cascader
v-model="formData.categoryCode"
:options="demandOptions"
:props="{label: 'categoryName',value: 'categoryCode',children: 'childCateList'}"
clearable
>
<el-option
v-for="item in serviceTypesLevel2"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
size="small"
class="u-item-width-normal"
></el-cascader>
</el-form-item>
<!-- <el-form-item label="政策依据"
prop="policyId"
@ -420,10 +392,7 @@ export default {
return time.getTime() < nowData;
};
return {
//
serviceTypesLevel1: [],
serviceTypesLevel2: [],
btnDisable: false,
casOptions: [],
scopeIdArray: [],
@ -440,8 +409,8 @@ export default {
keyWords: "",
formData: {
serviceTypeLevel1Id: "", // id
serviceTypeLevel2Id: "", // id
categoryCode:[],
parentCategoryCode:'',
resiSearchTagId: "", //
resiSearchTagName: "", //
serviceName: "", //
@ -469,7 +438,7 @@ export default {
},
sarr: [],
dataRule: {
serviceTypeLevel2Id: [
categoryCode: [
{ required: true, message: "服务类别不能为空", trigger: "change" },
],
serviceName: [
@ -535,6 +504,7 @@ export default {
],
showLabelForm: false,
showFeedback: false,
demandOptions:[]
};
},
@ -589,25 +559,55 @@ export default {
}
await this.iniDefaultData();
await this.getDemandOptions()
this.endLoading();
//
this.$http
.get("/governance/commonServiceType/selectList/0")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.serviceTypesLevel1 = res.data;
console.log(res.data);
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
methods: {
async getDemandOptions() {
this.$http
.post("/actual/base/serviceitem/listAllCategory")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.demandOptions = this.getFlagData(
this.getTreeData(res.data),
"usableFlag"
);
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
getFlagData(data, flag) {
if (!Array.isArray(data)) return [];
let arr1 = data.filter((item) => item[flag]);
let arr2 = arr1.map((item) => {
if (item.childCateList)
return { ...item, childCateList: this.getFlagData(item.childCateList, flag) };
else return item;
});
// console.log('arrr-oppp', arr2)
return arr2;
},
getTreeData(data) {
if (!Array.isArray(data)) return [];
let arr = data.map((item) => {
let _item = {};
if (item.childCateList) {
if (item.childCateList.length === 0)
_item = { ...item, childCateList: undefined };
else _item = { ...item, childCateList: this.getTreeData(item.childCateList) };
} else {
_item = { ...item };
}
return _item;
});
return arr;
},
handelDisabledRules(v) {
if (!v) {
delete this.dataRule.resiSearchTagId;
@ -634,16 +634,17 @@ export default {
if (code === 0) {
this.formData = { ...data };
if (data.categoryCode) {
this.formData.categoryCode = [data.parentCategoryCode, data.categoryCode];
} else {
this.formData.categoryCode = [data.parentCategoryCode];
}
if(!data.noticeApproches){
this.formData.noticeApproches = [];
}
this.scopeIdArray = data.gridIdList.map(i => i.objectId);
this.formData.serviceTypeLevel1Id = data.serviceTypeLevel1Id;
this.handleChangeServiceTypeLevel1();
this.formData.serviceTypeLevel2Id = data.serviceTypeLevel2Id;
this.feedbackFormData = { ...data.feedback };
await this.getServiceuserList(data.serviceOrgType);
await this.getTagName();
// this.fileList = []
// if (data.feedback && data.feedback.fileList && data.feedback.fileList.length > 0) {
@ -675,35 +676,6 @@ export default {
this.$message.error(msg);
}
},
//
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("网络错误");
});
},
//
handleChangeServiceTypeLevel2() {
console.log(this.formData.serviceTypeLevel1Id);
console.log(this.formData.serviceTypeLevel2Id);
if (this.formData.serviceOrgType) {
this.getServiceuserList(this.formData.serviceOrgType);
} else {
return;
}
},
handleClickLabel() {
this.showLabelForm = true;
this.$nextTick(() => {
@ -774,7 +746,6 @@ export default {
},
async iniDefaultData() {
const { defaultData } = this;
console.log("iniDefaultData3", defaultData);
if (defaultData) {
const { serviceOrgType, serviceOrgId, scopeIdArray } = defaultData;
if (serviceOrgType) {
@ -847,7 +818,6 @@ export default {
// }
// },
async handleServiceChange(type, val) {
console.log(val);
if (val === "social_org") {
if (type === "add") await this.getServiceuserList(val);
else this.getServiceuserList(val);
@ -856,13 +826,13 @@ export default {
async getServiceuserList(serverOrgType) {
if (!serverOrgType) return false;
if (this.formData.serviceTypeLevel2Id == "") {
if (this.formData.categoryCode.length === 0) {
this.$message.error("请先选择服务类别!");
return;
}
const url = "/actual/base/serviceitem/listServerOrg";
let params = {
serviceTypeId: this.formData.serviceTypeLevel2Id,
serviceTypeId: this.formData.categoryCode[1] ||this.formData.categoryCode[0],
serverOrgType: serverOrgType,
businessType: "common_service",
};
@ -988,7 +958,23 @@ export default {
}
// const url = 'http://yapi.elinkservice.cn/mock/245/governance/icServiceProject/service/initiate'
let params = {
...this.formData,
categoryCode:this.formData.categoryCode[1]?this.formData.categoryCode[1]:'',
parentCategoryCode:this.formData.categoryCode[0],
resiSearchTagId: this.formData.resiSearchTagId,
resiSearchTagName: this.formData.resiSearchTagName,
serviceName: this.formData.serviceName,
noticeApproches: this.formData.noticeApproches,
policyId: this.formData.policyId,
serviceOrgType: this.formData.serviceOrgType,
serviceOrgId: this.formData.serviceOrgId,
objList: this.formData.gridIdList,
principalName: this.formData.principalName,
principalContact: this.formData.principalContact,
serviceTimeStart: this.formData.serviceTimeStart,
serviceTimeEnd: this.formData.serviceTimeEnd,
remark: this.formData.remark,
feedback:this.formData.feedback,
serviceRecordId:this.serviceRecordId
};
delete params.serviceTypeLevel1Id;
const { data, code, msg } = await requestPost(url, params);
@ -1008,8 +994,8 @@ export default {
resetData() {
this.formData = {
serviceTypeLevel1Id: "", // id
serviceTypeLevel2Id: "", // id
categoryCode:[],
parentCategoryCode:'',
gridIdList: [], //
principalName: "", //()
principalContact: "", //

156
src/views/modules/communityService/gxxq/addForm.vue

@ -12,50 +12,17 @@
class="div_form"
>
<!-- 需求类别 -->
<el-form-item
label="需求类别"
style="display: block"
label-width="150px"
prop="commonServiceTypeId"
>
<input
type="text"
v-model="formData.commonServiceTypeName"
v-show="false"
/>
<el-select
class="u-item-width-communitycascader"
v-model="formData.serviceTypeLevel1Id"
placeholder="请选择"
clearable
@change="handleChangeServiceTypeLevel1"
>
<el-option
v-for="item in serviceTypesLevel1"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
-
<el-select
class="u-item-width-communitycascader"
v-model="formData.commonServiceTypeId"
placeholder="请选择"
@change="handleChangeServiceTypeLevel2"
<el-form-item label="需求类型" prop="categoryCode" label-width="150px">
<el-cascader
v-model="formData.categoryCode"
:options="demandOptions"
:props="{label: 'categoryName',value: 'categoryCode',children: 'childCateList'}"
clearable
>
<el-option
v-for="item in serviceTypesLevel2"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
size="small"
class="u-item-width-normal"
></el-cascader>
</el-form-item>
<el-form-item
label="需求标题"
prop="title"
@ -316,14 +283,14 @@ export default {
return {
//
serviceTypesLevel1: [],
serviceTypesLevel2: [],
formType: "",
btnDisable: false,
casOptions: [],
scopeIdArray: [],
iscascaderShow: 0,
demandOptions:[],
optionProps: {
multiple: true,
value: "objectId",
@ -334,8 +301,8 @@ export default {
},
newArr: [],
formData: {
serviceTypeLevel1Id: "", // id
commonServiceTypeId: "", // id
categoryCode:[],
parentCategoryCode:'',
assignFlag: 0,
resiSearchTagId: "", //
resiSearchTagName: "", //
@ -372,6 +339,9 @@ export default {
resiSearchTagId: [
{ required: false, message: "指派人员不能为空", trigger: "bulr" },
],
categoryCode: [
{ required: true, message: "需求分类不能为空", trigger: "bulr" },
],
},
newDataRule: {
serverOrgId: [
@ -413,27 +383,13 @@ export default {
created() {},
async mounted() {
this.startLoading();
// prop
// this.getCategrayList();
await this.getPolicyList();
await this.loadScopeTree();
await this.getDictOptions();
await this.endLoading();
await this.getDemandOptions()
this.endLoading();
//
this.$http
.get("/governance/commonServiceType/selectList/0")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.serviceTypesLevel1 = res.data;
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
methods: {
@ -453,6 +409,11 @@ export default {
this.formData.content = data.content;
this.formData.assignFlag = data.assignFlag;
this.formData.resiSearchTagId = data.resiSearchTagId;
if (data.categoryCode) {
this.formData.categoryCode = [data.parentCategoryCode, data.categoryCode];
} else {
this.formData.categoryCode = [data.parentCategoryCode];
}
if (data.assignInfo) {
this.newFormData.serviceTimeStart = data.assignInfo.serviceTimeStart;
this.newFormData.serviceTimeEnd = data.assignInfo.serviceTimeEnd;
@ -467,7 +428,6 @@ export default {
}
await this.getServiceuserList(data.assignInfo.serverOrgType);
}
await this.handleChangeServiceTypeLevel1();
await // this.formData = { ...data };
await this.getTagName();
@ -495,24 +455,7 @@ export default {
}
},
//
handleChangeServiceTypeLevel1() {
// this.formData.commonServiceTypeId = "";
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("网络错误");
});
},
//
handleChangeServiceTypeLevel2() {
if (this.newFormData.serverOrgType) {
@ -587,17 +530,59 @@ export default {
return this.$message.error("网络错误");
});
},
async getDemandOptions() {
this.$http
.post("/actual/base/serviceitem/listAllCategory")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.demandOptions = this.getFlagData(
this.getTreeData(res.data),
"usableFlag"
);
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
getFlagData(data, flag) {
if (!Array.isArray(data)) return [];
let arr1 = data.filter((item) => item[flag]);
let arr2 = arr1.map((item) => {
if (item.childCateList)
return { ...item, childCateList: this.getFlagData(item.childCateList, flag) };
else return item;
});
// console.log('arrr-oppp', arr2)
return arr2;
},
getTreeData(data) {
if (!Array.isArray(data)) return [];
let arr = data.map((item) => {
let _item = {};
if (item.childCateList) {
if (item.childCateList.length === 0)
_item = { ...item, childCateList: undefined };
else _item = { ...item, childCateList: this.getTreeData(item.childCateList) };
} else {
_item = { ...item };
}
return _item;
});
return arr;
},
async handleServiceChange(type, val) {
this.newFormData.serverOrgId = ''
await this.getServiceuserList(val);
},
async getServiceuserList(serverOrgType) {
if (this.formData.commonServiceTypeId == "" || !serverOrgType) return;
if (this.formData.categoryCode == [] || !serverOrgType) return;
const url = "/actual/base/serviceitem/listServerOrg";
let params = {
serviceTypeId: this.formData.commonServiceTypeId,
serviceTypeId: this.formData.categoryCode[1],
serverOrgType: serverOrgType,
businessType: "common_service",
};
@ -625,6 +610,7 @@ export default {
this.$message.error(rspMsg);
}
},
//null
handleData(data) {
for (let i = 0; i < data.length; i++) {
@ -731,6 +717,8 @@ export default {
commonServiceTypeId: this.formData.commonServiceTypeId,
resiSearchTagId: this.formData.resiSearchTagId,
assignFlag: this.formData.assignFlag,
categoryCode:this.formData.categoryCode[1]?this.formData.categoryCode[1]:'',
parentCategoryCode:this.formData.categoryCode[0]
};
if (this.formData.assignFlag === 1) {

4
src/views/modules/communityService/gxxq/detailForm.vue

@ -5,7 +5,7 @@
<div class="m-info">
<div class="info-prop">
<span class="info-title-2">需求类别: </span>
<span>{{ ServiceTypeName || "--" }}</span>
<span>{{ formData.allCategoryName || "--" }}</span>
</div>
<!-- <div class="info-prop">
@ -153,8 +153,6 @@ export default {
console.log(data);
this.formData = { ...data };
this.formData.gxxqId = this.gxxqId;
let name = this.serviceTypesLevel1.filter(item=>item.id == data.servicePid)[0].name
this.ServiceTypeName = name +'-'+ this.commonServiceTypeName
await this.getTagName();
} else {
this.$message.error(msg);

92
src/views/modules/communityService/gxxq/index.vue

@ -7,43 +7,16 @@
ref="ref_searchform"
:label-width="'100px'"
>
<el-form-item prop="serviceType" label="需求类别">
<el-select
class="u-item-width-daterange"
v-model.trim="formData.serviceTypeLevel1Id"
placeholder="请选择"
<el-form-item label="需求分类" prop="categoryCode">
<el-cascader
v-model="formData.categoryCode"
class="u-item-width-daterange2"
size="small"
:options="searchdemandOptions"
:props="{ checkStrictly: true,label: 'categoryName',value: 'categoryCode',children: 'childCateList'}"
clearable
>
<el-option
v-for="item in serviceTypesLevel1"
@click.native="handleChangeServiceTypeLevel1"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
<span class="u-data-tag"></span>
</el-form-item>
<el-form-item prop="serviceType">
<el-select
class="u-item-width-daterange"
v-model.trim="formData.commonServiceTypeId"
placeholder="请选择"
size="small"
clearable
>
<el-option
v-for="item in serviceTypesLevel2"
@click.native=""
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
@change="handleCateCHange"
></el-cascader>
</el-form-item>
<el-form-item label="需求标题" prop="title">
@ -311,8 +284,8 @@ export default {
gxxqId: "",
formData: {
title: "",
serviceTypeLevel1Id: "",
commonServiceTypeId: "",
categoryCode:"",
parentCategoryCode:"",
timeStart: "",
timeEnd: "",
assignFlag: "",
@ -344,6 +317,7 @@ export default {
formShow: false,
formTitle: "",
rowObj: {},
searchdemandOptions:[]
};
},
created() {},
@ -356,7 +330,7 @@ export default {
pageSize: this.pageSize,
...this.formData,
};
let { data, msg, code } = await requestGet(url, params);
let { data, msg, code } = await requestPost(url, params);
this.tableLoading = false;
if (code == 0) {
this.tableData = data.list;
@ -462,8 +436,8 @@ export default {
resetSearch() {
this.formData = {
title: "",
serviceTypeLevel1Id: "",
commonServiceTypeId: "",
categoryCode:"",
parentCategoryCode:"",
timeStart: "",
timeEnd: "",
assignFlag: "",
@ -535,29 +509,51 @@ export default {
return this.$message.error("网络错误");
});
},
//
handleChangeServiceTypeLevel1() {
this.formData.commonServiceTypeId = "";
handleCateCHange(val) {
if (val.length === 1) {
this.searchdemandOptions.forEach((item) => {
if (item.value == val[0]) this.formData.parentCategoryCode = item.pvalue;
});
this.formData.categoryCode = val[0];
} else {
this.formData.parentCategoryCode = val[0];
this.formData.categoryCode = val[1];
}
},
async getDemandOptions() {
this.$http
.get(
"/governance/commonServiceType/selectList/" +
this.formData.serviceTypeLevel1Id
)
.post("/actual/base/serviceitem/listAllCategory")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.serviceTypesLevel2 = res.data;
this.searchdemandOptions = this.getTreeData(res.data);
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
getTreeData(data) {
if (!Array.isArray(data)) return [];
let arr = data.map((item) => {
let _item = {};
if (item.childCateList) {
if (item.childCateList.length === 0)
_item = { ...item, childCateList: undefined };
else _item = { ...item, childCateList: this.getTreeData(item.childCateList) };
} else {
_item = { ...item };
}
return _item;
});
return arr;
},
},
mounted() {
this.getCommonDemandList();
this.getDictOptions();
this.getDemandOptions()
},
computed: {
...mapGetters(["clientHeight", "iframeHeight"]),

181
src/views/modules/communityService/jinengzhaoren/addForm.vue

@ -12,43 +12,15 @@
:rules="dataRule"
class="div_form"
>
<el-form-item
label="服务类别"
style="display: block"
label-width="150px"
prop="serviceTypeLevel2Id"
>
<el-select
class="u-item-width-communitycascader"
v-model="formData.serviceTypeLevel1Id"
placeholder="请选择"
clearable
@change="handleChangeServiceTypeLevel1"
>
<el-option
v-for="item in serviceTypesLevel1"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
-
<el-select
class="u-item-width-communitycascader"
v-model="formData.serviceTypeLevel2Id"
placeholder="请选择"
@change="handleChangeServiceTypeLevel2"
<el-form-item label="需求类型" prop="categoryCode" label-width="150px">
<el-cascader
v-model="formData.categoryCode"
:options="demandOptions"
:props="{label: 'categoryName',value: 'categoryCode',children: 'childCateList'}"
clearable
>
<el-option
v-for="item in serviceTypesLevel2"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
size="small"
class="u-item-width-normal"
></el-cascader>
</el-form-item>
<!-- <el-form-item label="政策依据"
prop="policyId"
@ -420,10 +392,6 @@ export default {
return time.getTime() < nowData;
};
return {
//
serviceTypesLevel1: [],
serviceTypesLevel2: [],
btnDisable: false,
casOptions: [],
scopeIdArray: [],
@ -440,8 +408,8 @@ export default {
keyWords: "",
formData: {
serviceTypeLevel1Id: "", // id
serviceTypeLevel2Id: "", // id
categoryCode:[],
parentCategoryCode:'',
resiSearchTagId: "", //
resiSearchTagName: "", //
serviceName: "", //
@ -470,7 +438,7 @@ export default {
},
sarr: [],
dataRule: {
serviceTypeLevel2Id: [
categoryCode: [
{ required: true, message: "服务类别不能为空", trigger: "change" },
],
serviceName: [
@ -536,6 +504,7 @@ export default {
],
showLabelForm: false,
showFeedback: false,
demandOptions:[]
};
},
@ -588,27 +557,56 @@ export default {
} else if (this.formType == "edit") {
this.loadInfo();
}
await this.getDemandOptions()
await this.iniDefaultData();
this.endLoading();
//
this.$http
.get("/governance/commonServiceType/selectList/0")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.serviceTypesLevel1 = res.data;
console.log(res.data);
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
methods: {
async getDemandOptions() {
this.$http
.post("/actual/base/serviceitem/listAllCategory")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.demandOptions = this.getFlagData(
this.getTreeData(res.data),
"usableFlag"
);
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
getFlagData(data, flag) {
if (!Array.isArray(data)) return [];
let arr1 = data.filter((item) => item[flag]);
let arr2 = arr1.map((item) => {
if (item.childCateList)
return { ...item, childCateList: this.getFlagData(item.childCateList, flag) };
else return item;
});
// console.log('arrr-oppp', arr2)
return arr2;
},
getTreeData(data) {
if (!Array.isArray(data)) return [];
let arr = data.map((item) => {
let _item = {};
if (item.childCateList) {
if (item.childCateList.length === 0)
_item = { ...item, childCateList: undefined };
else _item = { ...item, childCateList: this.getTreeData(item.childCateList) };
} else {
_item = { ...item };
}
return _item;
});
return arr;
},
handelDisabledRules(v) {
if (!v) {
delete this.dataRule.resiSearchTagId;
@ -635,16 +633,17 @@ export default {
if (code === 0) {
this.formData = { ...data };
if (data.categoryCode) {
this.formData.categoryCode = [data.parentCategoryCode, data.categoryCode];
} else {
this.formData.categoryCode = [data.parentCategoryCode];
}
if(!data.noticeApproches){
this.formData.noticeApproches = [];
}
this.scopeIdArray = data.gridIdList.map(i => i.objectId);
this.formData.serviceTypeLevel1Id = data.serviceTypeLevel1Id;
this.handleChangeServiceTypeLevel1();
this.formData.serviceTypeLevel2Id = data.serviceTypeLevel2Id;
this.feedbackFormData = { ...data.feedback };
await this.getServiceuserList(data.serviceOrgType);
await this.getTagName();
// this.fileList = []
// if (data.feedback && data.feedback.fileList && data.feedback.fileList.length > 0) {
@ -676,35 +675,6 @@ export default {
this.$message.error(msg);
}
},
//
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("网络错误");
});
},
//
handleChangeServiceTypeLevel2() {
console.log(this.formData.serviceTypeLevel1Id);
console.log(this.formData.serviceTypeLevel2Id);
if (this.formData.serviceOrgType) {
this.getServiceuserList(this.formData.serviceOrgType);
} else {
return;
}
},
handleClickLabel() {
this.showLabelForm = true;
this.$nextTick(() => {
@ -774,7 +744,6 @@ export default {
},
async iniDefaultData() {
const { defaultData } = this;
console.log("iniDefaultData3", defaultData);
if (defaultData) {
const { serviceOrgType, serviceOrgId, scopeIdArray } = defaultData;
if (serviceOrgType) {
@ -847,7 +816,6 @@ export default {
// }
// },
async handleServiceChange(type, val) {
console.log(val);
if (val === "social_org") {
if (type === "add") await this.getServiceuserList(val);
else this.getServiceuserList(val);
@ -856,13 +824,13 @@ export default {
async getServiceuserList(serverOrgType) {
if (!serverOrgType) return false;
if (this.formData.serviceTypeLevel2Id == "") {
if (this.formData.categoryCode.length === 0) {
this.$message.error("请先选择服务类别!");
return;
}
const url = "/actual/base/serviceitem/listServerOrg";
let params = {
serviceTypeId: this.formData.serviceTypeLevel2Id,
serviceTypeId: this.formData.categoryCode[1] ||this.formData.categoryCode[0],
serverOrgType: serverOrgType,
businessType: "common_service",
};
@ -988,9 +956,24 @@ export default {
}
// const url = 'http://yapi.elinkservice.cn/mock/245/governance/icServiceProject/service/initiate'
let params = {
...this.formData,
categoryCode:this.formData.categoryCode[1]?this.formData.categoryCode[1]:'',
parentCategoryCode:this.formData.categoryCode[0],
resiSearchTagId: this.formData.resiSearchTagId,
resiSearchTagName: this.formData.resiSearchTagName,
serviceName: this.formData.serviceName,
noticeApproches: this.formData.noticeApproches,
policyId: this.formData.policyId,
serviceOrgType: this.formData.serviceOrgType,
serviceOrgId: this.formData.serviceOrgId,
objList: this.formData.gridIdList,
principalName: this.formData.principalName,
principalContact: this.formData.principalContact,
serviceTimeStart: this.formData.serviceTimeStart,
serviceTimeEnd: this.formData.serviceTimeEnd,
remark: this.formData.remark,
feedback:this.formData.feedback,
serviceRecordId:this.serviceRecordId
};
delete params.serviceTypeLevel1Id;
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.$message.success("发起成功");
@ -1008,8 +991,8 @@ export default {
resetData() {
this.formData = {
serviceTypeLevel1Id: "", // id
serviceTypeLevel2Id: "", // id
categoryCode:[],
parentCategoryCode:'',
gridIdList: [], //
principalName: "", //()
principalContact: "", //

139
src/views/modules/communityService/jinengzhaoren/index.vue

@ -6,36 +6,17 @@
:model="formData"
ref="ref_searchform"
:label-width="'100px'">
<el-form-item prop="serviceType"
label="服务类别"
>
<el-select class="u-item-width-daterange"
v-model.trim="formData.serviceTypeLevel1Id"
placeholder="请选择"
size="small"
clearable>
<el-option v-for="item in serviceTypesLevel1"
@click.native="handleChangeServiceTypeLevel1"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="serviceType">
<el-select class="u-item-width-daterange"
v-model.trim="formData.serviceTypeLevel2Id"
placeholder="请选择"
size="small"
clearable>
<el-option v-for="item in serviceTypesLevel2"
@click.native=""
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="服务类别" prop="categoryCode">
<el-cascader
v-model="formData.categoryCode"
class="u-item-width-daterange2"
size="small"
:options="searchdemandOptions"
:props="{ checkStrictly: true, label: 'categoryName', value: 'categoryCode', children: 'childCateList' }"
clearable
@change="handleCateCHange"
></el-cascader>
</el-form-item>
<el-form-item label="服务时间"
prop="serviceTimeStart">
@ -320,27 +301,6 @@
@handleOk="handleOk"
@handleClose="handleClose"></add-form>
</el-dialog>
<!-- 编辑与新增写在一个组件中 -->
<!-- <el-dialog v-if="showEdit"
:visible.sync="showEdit"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="'编辑'"
:modal-append-to-body="false"
width="850px"
top="5vh"
class="dialog-h"
@closed="showEdit = false">
<edit-form ref="ref_edit_form"
:serviceRecordId="serviceRecordId"
:serviceOrgName="serviceOrgName"
:satisfyArray="satisfyArray"
:statusArray="statusArray"
@handleOk="handleOk"
@handleClose="handleClose"
:formType="formType">
</edit-form>
</el-dialog> -->
<el-dialog v-if="showDetail"
:visible.sync="showDetail"
:close-on-click-modal="false"
@ -385,12 +345,11 @@ import { mapGetters } from "vuex";
import axios from "axios";
import addForm from "./addForm";
import detailForm from "./detailForm.vue";
import editForm from "./editForm";
import feedBackForm from "./addForm";
import personList from "./personList";
//
export default {
components: { addForm, detailForm, feedBackForm, editForm, personList },
components: { addForm, detailForm, feedBackForm, personList },
data () {
@ -411,9 +370,6 @@ export default {
}
return {
//
serviceTypesLevel1:[],
serviceTypesLevel2:[],
tableLoading: false,
user: {},
agencyId: '',
@ -447,8 +403,8 @@ export default {
],
formData: {
serviceTypeLevel1Id:'',// id
serviceTypeLevel2Id:'',// id
categoryCode:'',
parentCategoryCode:'',
serviceName: '',//
serviceOrgType: '',//
serviceOrgId: '',//Id
@ -488,7 +444,8 @@ export default {
ruleList: [],
//
multiSelectedRows: []
multiSelectedRows: [],
searchdemandOptions:[]
};
},
computed: {
@ -515,24 +472,37 @@ export default {
this.agencyId = this.user.agencyId
this.getDictOptions()
this.getTableData();
this.getDemandOptions()
},
methods: {
//
handleChangeServiceTypeLevel1() {
this.formData.serviceTypeLevel2Id = ''
async getDemandOptions() {
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("网络错误");
})
.post("/actual/base/serviceitem/listAllCategory")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.searchdemandOptions = this.getTreeData(res.data);
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
getTreeData(data) {
if (!Array.isArray(data)) return [];
let arr = data.map((item) => {
let _item = {};
if (item.childCateList) {
if (item.childCateList.length === 0)
_item = { ...item, childCateList: undefined };
else _item = { ...item, childCateList: this.getTreeData(item.childCateList) };
} else {
_item = { ...item };
}
return _item;
});
return arr;
},
handleSearch (val) {
@ -555,21 +525,11 @@ export default {
} else {
this.$message.error(msg)
}
this.$http
.get("/governance/commonServiceType/selectList/0")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.serviceTypesLevel1 = res.data;
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
handleCateCHange(val) {
this.formData.parentCategoryCode = val[0];
this.formData.categoryCode = val[1];
},
handleServiceChange (type, val) {
this.formData.serviceOrgId = ''
if (val === "social_org") {
@ -799,8 +759,7 @@ export default {
resetSearch () {
this.formData = {
serviceTypeLevel1Id:'',// id
serviceTypeLevel2Id:'',// id
categoryCode:'',
serviceName: '',//
serviceOrgType: '',//
serviceOrgId: '',//Id

37
src/views/modules/communityService/measure/index.vue

@ -35,7 +35,7 @@
class="u-item-width-daterange2"
size="small"
:options="searchdemandOptions"
:props="{ checkStrictly: true }"
:props="{ checkStrictly: true,label: 'categoryName',value: 'categoryCode',children: 'childCateList'}"
clearable
@change="handleCateCHange"
></el-cascader>
@ -341,7 +341,7 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="需求类" prop="categoryCode">
<el-form-item label="需求类" prop="parentCode">
<el-input
v-if="disabled"
v-model="form.categoryName"
@ -350,8 +350,9 @@
></el-input>
<el-cascader
v-else
v-model="form.categoryCode"
v-model="form.parentCode"
:options="demandOptions"
:props="{label: 'categoryName',value: 'categoryCode',children: 'childCateList'}"
:disabled="disabled"
clearable
size="small"
@ -982,10 +983,8 @@ export default {
handleCateSlect(val) {
console.log("val", val);
if (val.length === 1) {
this.demandOptions.forEach((item) => {
if (item.value == val[0]) this.form.parentCode = item.pvalue;
});
this.form.categoryCode = val[0];
this.form.parentCode = val[0];
this.form.categoryCode = '';
} else {
this.form.parentCode = val[0];
this.form.categoryCode = val[1];
@ -1197,16 +1196,8 @@ export default {
async editCate() {
const categoryCode = this.form.categoryCode;
if (Array.isArray(categoryCode)) {
if (categoryCode.length === 1) {
this.demandOptions.forEach((item) => {
if (item.value == categoryCode[0])
this.form.parentCode = item.pvalue;
});
this.form.categoryCode = categoryCode[0];
} else {
this.form.parentCode = categoryCode[0];
this.form.categoryCode = categoryCode[1];
}
this.form.categoryCode = categoryCode[1]? categoryCode[1]:'';
}
const _form = {
@ -1267,10 +1258,10 @@ export default {
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) };
if (item.childCateList) {
if (item.childCateList.length === 0)
_item = { ...item, childCateList: undefined };
else _item = { ...item, childCateList: this.getTreeData(item.childCateList) };
} else {
_item = { ...item };
}
@ -1282,8 +1273,8 @@ export default {
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) };
if (item.childCateList)
return { ...item, childCateList: this.getFlagData(item.childCateList, flag) };
else return item;
});
// console.log('arrr-oppp', arr2)
@ -1337,7 +1328,7 @@ export default {
async getDemandOptions() {
this.$http
.post("/governance/icresidemanddict/demandoption")
.post("/actual/base/serviceitem/listAllCategory")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);

189
src/views/modules/communityService/policy/addPolicy.vue

@ -10,45 +10,16 @@
class="div_form"
>
<!-- 政策类型 -->
<el-form-item
label="政策类型"
style="display: block"
label-width="150px"
prop="policyCategoryL2"
>
<el-select
class="cell-width-1"
v-model.trim="formData.policyCategoryL1"
placeholder="请选择"
clearable
>
<el-option
v-for="item in serviceTypesLevel1"
@click.native="handleChangeServiceTypeLevel1"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
-
<el-select
class="cell-width-1"
v-model.trim="formData.policyCategoryL2"
placeholder="请选择"
<el-form-item label="需求类型" prop="categoryCode" label-width="150px">
<el-cascader
v-model="formData.categoryCode"
:options="demandOptions"
:props="{label: 'categoryName',value: 'categoryCode',children: 'childCateList'}"
clearable
>
<el-option
v-for="item in serviceTypesLevel2"
@click.native=""
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
size="small"
class="u-item-width-normal"
></el-cascader>
</el-form-item>
<el-form-item
label="政策标题"
prop="title"
@ -372,8 +343,7 @@ export default {
policyLevelArray: [],
//
serviceTypesLevel1: [],
serviceTypesLevel2: [],
iscascaderShow: 0,
btnDisable: false,
@ -390,8 +360,8 @@ export default {
},
formData: {
policyCategoryL1: "", // id
policyCategoryL2: "",
categoryCode: [],
parentCategoryCode: "",
policyLevel: "", //
startDate: "", //yyyy-MM-dd
endDate: "", //yyyy-MM-dd
@ -462,14 +432,13 @@ export default {
await this.startLoading();
await this.getServiceTypeDictOptions();
await this.getDictOptions();
await this.loadScopeTree();
// await this.loadScopeTree();
await this.loadDemandoption();
await this.getDemandOptions();
if (this.formType === "add") {
this.$refs.ref_form.resetFields();
} else {
await this.loadFormInfo();
await this.getCommonServiceTypeSelectList();
await this.getServiceuserList();
}
@ -477,17 +446,7 @@ export default {
},
methods: {
// addRule () {
// let obj = {
// name: '',
// detail: []
// }
// this.formData.ruleList.push(obj)
// },
// delRule (index) {
// this.formData.ruleList.splice(index, 1);
// },
//
async loadScopeTree() {
const url = "/gov/org/icServiceProject/service/serviceScopeTree";
@ -522,6 +481,11 @@ export default {
// this.formData.ruleList = data.ruleList
data.policyLevel = "" + data.policyLevel;
this.formData = data;
if (data.categoryCode) {
this.formData.categoryCode = [data.parentCategoryCode, data.categoryCode];
} else {
this.formData.categoryCode = [data.parentCategoryCode];
}
this.newFormData = data.assignInfo;
if (data.assignInfo) {
for (let i in data.assignInfo.serviceScopeList) {
@ -601,13 +565,13 @@ export default {
},
async getServiceuserList() {
if (!this.formData.assignFlag) return;
if (this.formData.commonServiceTypeId == "") {
if (this.formData.categoryCode.length==0) {
this.$message.error("请先选择需求类别!");
return;
}
const url = "/actual/base/serviceitem/listServerOrg";
let params = {
serviceTypeId: this.formData.policyCategoryL2,
serviceTypeId: this.formData.categoryCode[1],
serverOrgType: this.newFormData.serverOrgType ||this.formData.assignInfo.serverOrgType,
businessType: "common_service",
};
@ -652,19 +616,7 @@ export default {
return this.$message.error("网络错误");
});
//
this.$http
.get("/governance/commonServiceType/selectList/0")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.serviceTypesLevel1 = res.data;
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
//
@ -687,22 +639,6 @@ export default {
);
},
// handleCateSlect(val) {
// console.log("val", val);
// let arr = [];
// val.forEach((item) => {
// let obj = {
// codePath: item.join(","),
// categoryCode: item[item.length - 1],
// };
// arr.push(obj);
// });
// console.log("arr", arr);
// this.formData.categoryList = arr;
// },
async handleAdd() {
// var oDate1 = new Date(this.formData.startDate);
// var oDate2 = new Date(this.formData.endDate);
@ -814,7 +750,7 @@ export default {
url = "/governance/policy/updatePolicy";
this.formData.policyId = this.policyId;
}
//nullnull?
if (this.formType == "copy" && this.formData.assignFlag == 0) {
this.formData.assignInfo = {
noticeApproches: [],
@ -828,10 +764,19 @@ export default {
}
// const url = 'http://yapi.elinkservice.cn/mock/245/heart/icServiceProject/service/initiate'
let params = {
...this.formData,
categoryCode:this.formData.categoryCode[1]?this.formData.categoryCode[1]:'',
parentCategoryCode:this.formData.categoryCode[0],
policyLevel:this.formData.policyLevel,
startDate:this.formData.startDate,
endDate:this.formData.endDate,
title:this.formData.title,
content:this.formData.content,
attachmentList:this.formData.attachmentList,
assignFlag:this.formData.assignFlag,
assignInfo:this.formData.assignInfo,
resiSearchTagId:this.formData.resiSearchTagId,
policyId:this.formData.policyId
};
delete params.policyCategoryL1;
delete params.resiSearchTagName;
console.log(params);
const { data, code, msg } = await requestPost(url, params);
@ -844,7 +789,35 @@ export default {
this.$message.error(msg);
}
},
async getDemandOptions() {
this.$http
.post("/actual/base/serviceitem/listAllCategory")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.demandOptions = this.getFlagData(
this.getTreeData(res.data),
"usableFlag"
);
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
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;
});
// console.log('arrr-oppp', arr2)
return arr2;
},
getTreeData(data) {
if (!Array.isArray(data)) return [];
let arr = data.map((item) => {
@ -964,14 +937,18 @@ export default {
resetData() {
this.formData = {
serviceTypeLevel1Id: "",
serviceTypeLevel2Id: "",
categoryCode: [],
parentCategoryCode: "",
policyLevel: "", //
startDate: "", //yyyy-MM-dd
endDate: "", //yyyy-MM-dd
title: "", //
content: "", //
attachmentList: [],
resiSearchTagName: "", //
assignFlag: 0, //
resiSearchTagId: "", //id
assignInfo: {},
};
},
//
@ -991,32 +968,12 @@ export default {
},
//
handleChangeServiceTypeLevel1() {
this.formData.policyCategoryL2 = "";
this.getCommonServiceTypeSelectList()
},
getCommonServiceTypeSelectList(){
this.$http
.get(
"/governance/commonServiceType/selectList/" +
this.formData.policyCategoryL1
)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.serviceTypesLevel2 = res.data;
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
},
computed: {
dataRule() {
return {
policyCategoryL2: [
categoryCode: [
{ required: true, message: "政策类型不能为空", trigger: "blur" },
],
policyLevel: [

179
src/views/modules/communityService/wennuanzhaoren/addForm.vue

@ -12,44 +12,16 @@
:rules="dataRule"
class="div_form"
>
<el-form-item
label="服务类别"
style="display: block"
label-width="150px"
prop="serviceTypeLevel2Id"
>
<el-select
class="u-item-width-communitycascader"
v-model="formData.serviceTypeLevel1Id"
placeholder="请选择"
clearable
@change="handleChangeServiceTypeLevel1"
>
<el-option
v-for="item in serviceTypesLevel1"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
-
<el-select
class="u-item-width-communitycascader"
v-model="formData.serviceTypeLevel2Id"
placeholder="请选择"
@change="handleChangeServiceTypeLevel2"
<el-form-item label="服务类别" prop="categoryCode" label-width="150px">
<el-cascader
v-model="formData.categoryCode"
:options="demandOptions"
:props="{label: 'categoryName',value: 'categoryCode',children: 'childCateList'}"
clearable
>
<el-option
v-for="item in serviceTypesLevel2"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
size="small"
class="u-item-width-normal"
></el-cascader>
</el-form-item>
<!-- <el-form-item label="政策依据"
prop="policyId"
label-width="150px"
@ -420,9 +392,6 @@ export default {
return time.getTime() < nowData;
};
return {
//
serviceTypesLevel1: [],
serviceTypesLevel2: [],
btnDisable: false,
casOptions: [],
@ -440,8 +409,8 @@ export default {
keyWords: "",
formData: {
serviceTypeLevel1Id: "", // id
serviceTypeLevel2Id: "", // id
categoryCode:[],
parentCategoryCode:'',
resiSearchTagId: "", //
resiSearchTagName: "", //
serviceName: "", //
@ -470,7 +439,7 @@ export default {
},
sarr: [],
dataRule: {
serviceTypeLevel2Id: [
categoryCode: [
{ required: true, message: "服务类别不能为空", trigger: "change" },
],
serviceName: [
@ -536,6 +505,7 @@ export default {
],
showLabelForm: false,
showFeedback: false,
demandOptions:[],
};
},
@ -583,6 +553,7 @@ export default {
this.getDictOptions();
this.getPolicyList();
await this.loadScopeTree();
await this.getDemandOptions()
if (this.formType === "add") {
this.$refs.ref_form.resetFields();
} else if (this.formType == "edit") {
@ -590,22 +561,8 @@ export default {
}
await this.iniDefaultData();
this.endLoading();
//
this.$http
.get("/governance/commonServiceType/selectList/0")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.serviceTypesLevel1 = res.data;
console.log(res.data);
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
methods: {
@ -635,13 +592,15 @@ export default {
if (code === 0) {
this.formData = { ...data };
if (data.categoryCode) {
this.formData.categoryCode = [data.parentCategoryCode, data.categoryCode];
} else {
this.formData.categoryCode = [data.parentCategoryCode];
}
if(!data.noticeApproches){
this.formData.noticeApproches = [];
}
this.scopeIdArray = data.gridIdList.map(i => i.objectId);
this.formData.serviceTypeLevel1Id = data.serviceTypeLevel1Id;
this.handleChangeServiceTypeLevel1();
this.formData.serviceTypeLevel2Id = data.serviceTypeLevel2Id;
this.feedbackFormData = { ...data.feedback };
await this.getServiceuserList(data.serviceOrgType);
await this.getTagName();
@ -675,35 +634,7 @@ export default {
this.$message.error(msg);
}
},
//
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("网络错误");
});
},
//
handleChangeServiceTypeLevel2() {
console.log(this.formData.serviceTypeLevel1Id);
console.log(this.formData.serviceTypeLevel2Id);
if (this.formData.serviceOrgType) {
this.getServiceuserList(this.formData.serviceOrgType);
} else {
return;
}
},
handleClickLabel() {
this.showLabelForm = true;
this.$nextTick(() => {
@ -844,6 +775,49 @@ export default {
// this.$message.error(msg);
// }
// },
async getDemandOptions() {
this.$http
.post("/actual/base/serviceitem/listAllCategory")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.demandOptions = this.getFlagData(
this.getTreeData(res.data),
"usableFlag"
);
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
getFlagData(data, flag) {
if (!Array.isArray(data)) return [];
let arr1 = data.filter((item) => item[flag]);
let arr2 = arr1.map((item) => {
if (item.childCateList)
return { ...item, childCateList: this.getFlagData(item.childCateList, flag) };
else return item;
});
// console.log('arrr-oppp', arr2)
return arr2;
},
getTreeData(data) {
if (!Array.isArray(data)) return [];
let arr = data.map((item) => {
let _item = {};
if (item.childCateList) {
if (item.childCateList.length === 0)
_item = { ...item, childCateList: undefined };
else _item = { ...item, childCateList: this.getTreeData(item.childCateList) };
} else {
_item = { ...item };
}
return _item;
});
return arr;
},
async handleServiceChange(type, val) {
console.log(val);
if (val === "social_org") {
@ -854,13 +828,13 @@ export default {
async getServiceuserList(serverOrgType) {
if (!serverOrgType) return false;
if (this.formData.serviceTypeLevel2Id == "") {
this.$message.error("请先选择服务类别!");
if (this.formData.categoryCode.length === 0) {
this.$message.error("请先选择需求类型!");
return;
}
const url = "/actual/base/serviceitem/listServerOrg";
let params = {
serviceTypeId: this.formData.serviceTypeLevel2Id,
serviceTypeId: this.formData.categoryCode[1] ||this.formData.categoryCode[0],
serverOrgType: serverOrgType,
businessType: "common_service",
};
@ -985,9 +959,24 @@ export default {
}
// const url = 'http://yapi.elinkservice.cn/mock/245/governance/icServiceProject/service/initiate'
let params = {
...this.formData,
categoryCode:this.formData.categoryCode[1]?this.formData.categoryCode[1]:'',
parentCategoryCode:this.formData.categoryCode[0],
resiSearchTagId: this.formData.resiSearchTagId,
resiSearchTagName: this.formData.resiSearchTagName,
serviceName: this.formData.serviceName,
noticeApproches: this.formData.noticeApproches,
policyId: this.formData.policyId,
serviceOrgType: this.formData.serviceOrgType,
serviceOrgId: this.formData.serviceOrgId,
objList: this.formData.gridIdList,
principalName: this.formData.principalName,
principalContact: this.formData.principalContact,
serviceTimeStart: this.formData.serviceTimeStart,
serviceTimeEnd: this.formData.serviceTimeEnd,
remark: this.formData.remark,
feedback:this.formData.feedback,
serviceRecordId:this.serviceRecordId
};
delete params.serviceTypeLevel1Id;
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.$message.success("发起成功");
@ -1005,8 +994,6 @@ export default {
resetData() {
this.formData = {
serviceTypeLevel1Id: "", // id
serviceTypeLevel2Id: "", // id
gridIdList: [], //
principalName: "", //()
principalContact: "", //

113
src/views/modules/communityService/wennuanzhaoren/index.vue

@ -6,36 +6,17 @@
:model="formData"
ref="ref_searchform"
:label-width="'100px'">
<el-form-item prop="serviceType"
label="服务类别"
>
<el-select class="u-item-width-daterange"
v-model.trim="formData.serviceTypeLevel1Id"
placeholder="请选择"
size="small"
clearable>
<el-option v-for="item in serviceTypesLevel1"
@click.native="handleChangeServiceTypeLevel1"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="serviceType">
<el-select class="u-item-width-daterange"
v-model.trim="formData.serviceTypeLevel2Id"
placeholder="请选择"
size="small"
clearable>
<el-option v-for="item in serviceTypesLevel2"
@click.native=""
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="服务类别" prop="categoryCode">
<el-cascader
v-model="formData.categoryCode"
class="u-item-width-daterange2"
size="small"
:options="searchdemandOptions"
:props="{ checkStrictly: true, label: 'categoryName', value: 'categoryCode', children: 'childCateList' }"
clearable
@change="handleCateCHange"
></el-cascader>
</el-form-item>
<el-form-item label="服务时间"
prop="serviceTimeStart">
@ -412,14 +393,14 @@ export default {
return {
//
serviceTypesLevel1:[],
serviceTypesLevel2:[],
tableLoading: false,
user: {},
agencyId: '',
searchH:0,
tableData: [],
searchdemandOptions:[],
statusArray: [
{
value: "in_service",
@ -447,8 +428,8 @@ export default {
],
formData: {
serviceTypeLevel1Id:'',// id
serviceTypeLevel2Id:'',// id
categoryCode:'',
parentCategoryCode:'',
serviceName: '',//
serviceOrgType: '',//
serviceOrgId: '',//Id
@ -515,26 +496,43 @@ export default {
this.agencyId = this.user.agencyId
this.getDictOptions()
this.getTableData();
this.getDemandOptions()
},
methods: {
//
handleChangeServiceTypeLevel1() {
this.formData.serviceTypeLevel2Id = ''
async getDemandOptions() {
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("网络错误");
})
.post("/actual/base/serviceitem/listAllCategory")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.searchdemandOptions = this.getTreeData(res.data);
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
getTreeData(data) {
if (!Array.isArray(data)) return [];
let arr = data.map((item) => {
let _item = {};
if (item.childCateList) {
if (item.childCateList.length === 0)
_item = { ...item, childCateList: undefined };
else _item = { ...item, childCateList: this.getTreeData(item.childCateList) };
} else {
_item = { ...item };
}
return _item;
});
return arr;
},
handleCateCHange(val) {
this.formData.parentCategoryCode = val[0];
this.formData.categoryCode = val[1];
},
handleSearch (val) {
console.log(this.formData);
this.pageNo = 1;
@ -555,19 +553,6 @@ export default {
} else {
this.$message.error(msg)
}
this.$http
.get("/governance/commonServiceType/selectList/0")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.serviceTypesLevel1 = res.data;
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
handleServiceChange (type, val) {
@ -799,8 +784,6 @@ export default {
resetSearch () {
this.formData = {
serviceTypeLevel1Id:'',// id
serviceTypeLevel2Id:'',// id
serviceName: '',//
serviceOrgType: '',//
serviceOrgId: '',//Id

83
src/views/modules/shequzhili/tuceng/yingji/zizuzhi/addForm.vue

@ -85,9 +85,17 @@
</el-col>
<el-col :span="24">
<el-form-item label="服务事项" prop="categoryList">
<el-select v-model="formData.categoryList" multiple placeholder="请选择" size="small" clearable class="u-item-width-normal" style="width: 500px;">
<!-- <el-select v-model="formData.categoryList" multiple placeholder="请选择" size="small" clearable class="u-item-width-normal" style="width: 500px;">
<el-option v-for="item in serviceList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-select> -->
<el-cascader
v-model="formData.categoryList"
:options="demandOptions"
:props="{label: 'categoryName',value: 'categoryCode',children: 'childCateList',multiple:true,emitPath:false}"
clearable
size="small"
class="u-item-width-normal"
></el-cascader>
</el-form-item>
</el-col>
<el-col :span="24">
@ -249,7 +257,6 @@ export default {
gridList: [], //list--
placeTypeList: [], //
list: {},
serviceList: [],
formData: {
organizationName: '',
categoryCode: '',
@ -265,6 +272,7 @@ export default {
latitude: '',
organizationPersonnel: []
},
demandOptions:[],
dataRule: {
organizationName: [
{ required: true, message: '组织名称 不能为空', trigger: 'blur' },
@ -302,7 +310,9 @@ export default {
this.startLoading();
this.getVolunteerList();
this.loadplaceType();
this.loadserviceList();
this.getDemandOptions()
// this.loadserviceList();
// this.loadGrid();
// this.loadplaceType();
if (this.pageType != 'add') {
@ -315,17 +325,60 @@ export default {
},
methods: {
async loadserviceList() {
const url = '/actual/base/serviceitem/dict-list';
const params = {
type: 'usable'
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.serviceList = data;
} else {
this.$message.error(msg);
}
// async loadserviceList() {
// const url = '/actual/base/serviceitem/dict-list';
// const params = {
// type: 'usable'
// };
// const { data, code, msg } = await requestPost(url, params);
// if (code === 0) {
// this.serviceList = data;
// } else {
// this.$message.error(msg);
// }
// },
async getDemandOptions() {
this.$http
.post("/actual/base/serviceitem/listAllCategory")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.demandOptions = this.getFlagData(
this.getTreeData(res.data),
"usableFlag"
);
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
getFlagData(data, flag) {
if (!Array.isArray(data)) return [];
let arr1 = data.filter((item) => item[flag]);
let arr2 = arr1.map((item) => {
if (item.childCateList)
return { ...item, childCateList: this.getFlagData(item.childCateList, flag) };
else return item;
});
// console.log('arrr-oppp', arr2)
return arr2;
},
getTreeData(data) {
if (!Array.isArray(data)) return [];
let arr = data.map((item) => {
let _item = {};
if (item.childCateList) {
if (item.childCateList.length === 0)
_item = { ...item, childCateList: undefined };
else _item = { ...item, childCateList: this.getTreeData(item.childCateList) };
} else {
_item = { ...item };
}
return _item;
});
return arr;
},
querySearchVolunteer(queryString, cb) {
const { volunteerList } = this;

115
src/views/modules/workSys/serviceMatters.vue

@ -2,41 +2,38 @@
<div class="g-main">
<div>
<div class="m-table">
<div class="div_btn"><el-button size="small" type="primary " @click="handleAdd({}, 'add')">新增</el-button></div>
<el-table :data="tableData" border class="m-table-item" style="width: 100%" :height="maxTableHeight">
<!-- <el-table-column label="" fixed="left" type="selection" align="center" width="50" /> -->
<el-table-column label="序号" fixed="left" type="index" align="center" width="50" />
<el-table-column prop="categoryName" align="center" label="分类名称" :show-overflow-tooltip="true"></el-table-column>
<!-- <el-table-column prop="awardPoint" align="center" label="积分" :show-overflow-tooltip="true"></el-table-column> -->
<el-table-column prop="usableFlag" label="状态" min-width="140" align="center" :show-overflow-tooltip="true">
<div class="div_btn"><el-button size="small" type="primary " @click="handleAdd({}, 'add')">新增</el-button>
</div>
<el-table :data="tableData" v-loading="tableLoading" row-key="categoryId" border :height="maxTableHeight" style="width: 100%"
>
<el-table-column label="序号" type="index" align="center" width="50">
<template slot-scope="scope">{{ scope.row.index }}</template>
</el-table-column>
<el-table-column v-for="item in tableHeader" :key="item.columnName" :prop="item.columnName"
:label="item.label" :align="item.align">
<template slot-scope="scope">
<span v-if="scope.row.usableFlag == '0'">禁用</span>
<span v-if="scope.row.usableFlag == '1'">启用</span>
<span>{{ handleFilterSpan(scope.row, item) }}</span>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" align="center" width="200">
<el-table-column label="操作" align="center" width="200">
<template slot-scope="scope">
<el-button @click="handleHid(scope.row)" type="text" size="small" v-if="scope.row.usableFlag == '1'" class="">禁用</el-button>
<el-button @click="handleHid(scope.row)" type="text" size="small" v-if="scope.row.usableFlag == '0'" class="">启用</el-button>
<el-button style="margin-right: 10px" @click="handleAdd(scope.row, 'edit')" size="small" type="text">修改</el-button>
<el-button style="margin-right: 10px" @click="handleDel(scope.row)" size="small" type="text">删除</el-button>
<el-button @click="handleAdd(scope.row, 'edit')" type="text" size="small"
class="div-table-button--edit">修改</el-button>
</template>
</el-table-column>
</el-table>
<div>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-sizes="[20, 50, 100, 200]"
:page-size="parseInt(pageSize)"
layout="sizes, prev, pager, next, total"
:total="total"
></el-pagination>
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page.sync="pageNo" :page-sizes="[20, 50, 100, 200]" :page-size="parseInt(pageSize)"
layout="sizes, prev, pager, next, total" :total="total"></el-pagination>
</div>
</div>
</div>
<addForm :detailId="detailId" :pageType="pageType" v-if="dialogVisible" :dialogVisible="dialogVisible" @handleClose="handleClose" />
<addForm :customerId="customerId" :detailId="detailId" :pageType="pageType" v-if="dialogVisible"
:dialogVisible="dialogVisible" @handleClose="handleClose" />
</div>
</template>
@ -69,11 +66,37 @@ export default {
detailData: {},
multipleSelection: [],
rowObj: {},
importLoading: false
importLoading: false,
tableHeader: [
{
label: '分类名称',
align: 'left',
columnName: 'categoryName'
}, {
label: '状态',
columnName: 'usableFlag',
align: 'center',
options: [{
value: true,
label: '启用'
}, {
value: false,
label: '禁用'
}]
}
],
tableLoading: false,
};
},
components: { addForm },
created() {},
created() {
this.user = this.$store.state.user;
this.agencyId = this.user.agencyId;
this.customerId = this.user.customerId;
this.getTableData();
},
computed: {
maxTableHeight() {
return this.$store.state.inIframe ? this.clientHeight - 410 + this.iframeHeigh : this.clientHeight - 410;
@ -82,11 +105,7 @@ export default {
},
watch: {},
mounted() {
this.user = this.$store.state.user;
this.agencyId = this.user.agencyId;
this.customerId = this.user.customerId;
console.log('this.customerId ', this.customerId);
this.getTableData();
},
methods: {
async handleDel(rowData) {
@ -99,7 +118,7 @@ export default {
.then(() => {
this.del(rowData.categoryId);
})
.catch(err => {});
.catch(err => { });
},
async del(id) {
const url = `/actual/base/serviceitem/delete/${id}`;
@ -151,9 +170,20 @@ export default {
this.detailId = '';
this.getTableData();
},
handleFilterSpan(row, item) {
let _val = ''
if (item.options && item.options.length > 0) {
item.options.forEach((n) => {
if (n.value === row[item.columnName]) _val = n.label
})
}
return _val || row[item.columnName]
},
async getTableData() {
const url = '/actual/base/serviceitem/list';
this.tableLoading = true
const url = '/actual/base/serviceitem/listAllCategory';
// const url = 'http://yapi.elinkservice.cn/mock/330/actual/base/enterprise/list';
const { pageSize, pageNo, customerId } = this;
const { data, code, msg } = await requestPost(url, {
@ -163,14 +193,28 @@ export default {
});
if (code === 0) {
this.total = data.total || 0;
this.tableData = data.list
? data.list.map(item => {
return item;
})
this.tableData = data
? data.map((item, index) => {
return {
...item,
index: index + 1,
hasBtn: true,
children: item.childCateList.map(n => {
return {
...n,
hasBtn: true
}
})
}
})
: [];
console.log(this.tableData);
} else {
this.$message.error(msg);
}
this.tableLoading = false
},
handleSizeChange(val) {
this.pageSize = val;
@ -194,6 +238,7 @@ export default {
<style lang="scss" scoped>
@import '@/assets/scss/modules/management/list-main.scss';
.m-search {
.u-item-width-normal {
width: 200px;

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

@ -12,11 +12,11 @@
<div>
<el-form
:model="formData"
ref="form"
ref="dataForm"
:rules="dataRule"
:label-width="'120px'"
>
<el-form-item label="分类名称" prop="categoryName">
<el-form-item label="一级分类" prop="categoryName" v-if="disabled || pageType == 'add'">
<el-input
v-model="formData.categoryName"
class="u-item-width-normal"
@ -25,6 +25,15 @@
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="二级分类" prop="categoryChildName" v-if="!disabled || pageType == 'add'">
<el-input
v-model="formData.categoryChildName"
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>
@ -49,12 +58,6 @@
clearable
></el-cascader>
</el-form-item> -->
<el-form-item label="一级菜单" prop="stair">
<el-select v-model="formData.stair" :clearable="true">
<el-option v-for="(item,index) in stairList" :key="index" :label="item.categoryName" :value="item.categoryId">
</el-option>
</el-select>
</el-form-item>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
@ -141,28 +144,25 @@ export default {
// awardPoint: '',
categoryId: "",
categoryName: "",
demandList1: [],
commonServiceTypeList1: [],
demandList: [],
commonServiceTypeList: [],
stair:"",
// demandList1: [],
// commonServiceTypeList1: [],
// demandList: [],
// commonServiceTypeList: [],
categoryChildId: "",
categoryChildName:""
},
dataRule: {
categoryName: [
{ required: true, message: "分类名称不能为空", trigger: "bulr" },
{ required: true, message: "一级分类名称不能为空", trigger: "bulr" },
],
stair:[
{ required: true, message: "一级菜单不能为空", trigger: "bulr" },
categoryChildName:[
{ required: true, message: "二级分类名称不能为空", trigger: "bulr" },
]
// awardPoint: [{ required: true, message: '', trigger: 'bulr' }],
// demandList: [{ required: true, message: '', trigger: 'blur' }],
// commonServiceTypeList: [{ required: true, message: '', trigger: 'bulr' }]
},
stairList:[],
pageSize:20,
pageNo:1
pageNo:1,
disabled:false,
};
},
watch: {},
@ -175,9 +175,8 @@ export default {
if (this.pageType == "edit") {
this.getDetail();
}
this.getSelect()
this.getDemandOptions();
this.getCommonServiceTypeOptions();
// this.getDemandOptions();
// this.getCommonServiceTypeOptions();
await this.endLoading();
this.endLoading();
},
@ -200,32 +199,6 @@ export default {
});
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];
},
async getSelect(){
const url = '/actual/base/serviceitem/list'
const { pageSize, pageNo, customerId } = this;
const { data, code, msg } = await requestPost(url, {
pageSize,
pageNo,
customerId
});
if(code == 0){
this.stairList = data.list
}
},
getTreeData(data) {
if (!Array.isArray(data)) return [];
let arr = data.map((item) => {
@ -269,6 +242,11 @@ export default {
if (code === 0) {
console.log("详情数据", data);
this.formData = { ...data };
if(data.categoryId && !data.categoryChildId){
this.disabled = true;
}else if(data.categoryChildId){
this.disabled = false;
}
this.fenxiData();
this.index = this.arr.indexOf(this.formData.categoryName);
} else {
@ -292,17 +270,22 @@ export default {
this.formData.demandList1 = [...demandList1];
},
handleComfirm() {
this.save();
this.$refs['dataForm'].validate((valid) => {
if (!valid) {
return false
}
this.save();
}, 1000, {'leading': true, 'trailing': false})
},
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 };
console.log(params);
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.$message.success("操作成功");

Loading…
Cancel
Save