Browse Source

政策标签必填验证,服务事项分类新增筛选,联建活动事项修改,事项分类新增加过滤功能

V1.0
mk 2 years ago
parent
commit
166f90617b
  1. 5
      src/views/modules/communityParty/regionalParty/activitysDetail.vue
  2. 103
      src/views/modules/communityParty/regionalParty/activitysForm.vue
  3. 17
      src/views/modules/communityService/policy/addPolicy.vue
  4. 9
      src/views/modules/workSys/serviceMatters.vue
  5. 30
      src/views/modules/workSys/serviceMattersComponents/addForm.vue

5
src/views/modules/communityParty/regionalParty/activitysDetail.vue

@ -191,4 +191,9 @@ export default {
height: auto; height: auto;
} }
} }
.div-btn{
display: flex;
justify-content: flex-end;
margin-right: 16px;
}
</style> </style>

103
src/views/modules/communityParty/regionalParty/activitysForm.vue

@ -24,32 +24,16 @@
</el-form-item> </el-form-item>
<el-form-item label="服务事项" <el-form-item label="服务事项" prop="serviceMatterList" label-width="150px">
label-width="150px" <el-cascader
prop="serviceMatterList"> v-model="formData.serviceMatterList"
:options="demandOptions"
<el-checkbox-group class="item_width_1" :props="{label: 'categoryName',value: 'categoryCode',children: 'childCateList'}"
style="display:flex;flex-wrap:wrap" clearable
v-model="formData.serviceMatterList"> size="small"
<el-checkbox v-for="item in serviceList" class="u-item-width-normal"
:key="item.value" ></el-cascader>
:label="item.value">{{item.label}}</el-checkbox>
</el-checkbox-group>
<!-- <el-select class="item_width_1"
v-model="formData.serviceMatter"
placeholder="请选择"
clearable>
<el-option v-for="item in serviceList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select> -->
</el-form-item> </el-form-item>
<el-form-item label="单位名称" <el-form-item label="单位名称"
prop="unitIdList" prop="unitIdList"
label-width="150px" label-width="150px"
@ -253,7 +237,9 @@ export default {
formData: initFormData(), formData: initFormData(),
serviceList: [], serviceList: [],
// gridList: [], // gridList: [],
agencyId: '' agencyId: '',
demandOptions:[]
} }
}, },
@ -271,7 +257,7 @@ export default {
// //
await this.loadService() await this.getDemandOptions()
let { latitude, longitude } = this.$store.state.user; let { latitude, longitude } = this.$store.state.user;
@ -295,6 +281,50 @@ export default {
this.endLoading() this.endLoading()
}, },
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 loadGrid () { async loadGrid () {
const url = "/gov/org/customergrid/gridoption" const url = "/gov/org/customergrid/gridoption"
@ -313,25 +343,6 @@ export default {
}, },
//
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 () { async loadFormData () {

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

@ -523,6 +523,7 @@ export default {
// //
handleClickLabel() { handleClickLabel() {
this.showLabelForm = true; this.showLabelForm = true;
this.$refs['ref_form'].clearValidate('resiSearchTagId')
this.$nextTick(() => { this.$nextTick(() => {
this.$refs["ref_label_form"].initForm("info"); this.$refs["ref_label_form"].initForm("info");
}); });
@ -796,7 +797,7 @@ export default {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg); return this.$message.error(res.msg);
} else { } else {
this.demandOptions = this.getFlagData( this.demandOptions = this.getFlagDatas(
this.getTreeData(res.data), this.getTreeData(res.data),
"usableFlag" "usableFlag"
); );
@ -806,12 +807,12 @@ export default {
return this.$message.error("网络错误"); return this.$message.error("网络错误");
}); });
}, },
getFlagData(data, flag) { getFlagDatas(data, flag) {
if (!Array.isArray(data)) return []; if (!Array.isArray(data)) return [];
let arr1 = data.filter((item) => item[flag]); let arr1 = data.filter((item) => item[flag]);
let arr2 = arr1.map((item) => { let arr2 = arr1.map((item) => {
if (item.children) if (item.childCateList)
return { ...item, children: this.getFlagData(item.children, flag) }; return { ...item, childCateList: this.getFlagData(item.childCateList, flag) };
else return item; else return item;
}); });
// console.log('arrr-oppp', arr2) // console.log('arrr-oppp', arr2)
@ -822,10 +823,10 @@ export default {
if (!Array.isArray(data)) return []; if (!Array.isArray(data)) return [];
let arr = data.map((item) => { let arr = data.map((item) => {
let _item = {}; let _item = {};
if (item.children) { if (item.childCateList) {
if (item.children.length === 0) if (item.childCateList.length === 0)
_item = { ...item, children: undefined }; _item = { ...item, childCateList: undefined };
else _item = { ...item, children: this.getTreeData(item.children) }; else _item = { ...item, childCateList: this.getTreeData(item.childCateList) };
} else { } else {
_item = { ...item }; _item = { ...item };
} }

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

@ -33,7 +33,7 @@
</div> </div>
</div> </div>
<addForm :customerId="customerId" :detailId="detailId" :pageType="pageType" v-if="dialogVisible" <addForm :customerId="customerId" :detailId="detailId" :pageType="pageType" v-if="dialogVisible"
:dialogVisible="dialogVisible" @handleClose="handleClose" /> :dialogVisible="dialogVisible" :categoryOptions="categoryOptions" :levelFlag="levelFlag" @handleClose="handleClose" />
</div> </div>
</template> </template>
@ -87,6 +87,10 @@ export default {
], ],
tableLoading: false, tableLoading: false,
categoryOptions:[],//
levelFlag:false
}; };
}, },
components: { addForm }, components: { addForm },
@ -134,6 +138,7 @@ export default {
handleAdd(row, type) { handleAdd(row, type) {
if (row.categoryId) { if (row.categoryId) {
this.detailId = row.categoryId; this.detailId = row.categoryId;
this.levelFlag = (row.children || []).length > 0;
} }
this.pageType = type; this.pageType = type;
this.dialogVisible = true; this.dialogVisible = true;
@ -208,7 +213,7 @@ export default {
} }
}) })
: []; : [];
this.categoryOptions= this.tableData.map(item=>({label:item.categoryName,value:item.categoryName}))
console.log(this.tableData); console.log(this.tableData);
} else { } else {
this.$message.error(msg); this.$message.error(msg);

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

@ -16,16 +16,18 @@
:rules="dataRule" :rules="dataRule"
:label-width="'120px'" :label-width="'120px'"
> >
<el-form-item label="一级分类" prop="categoryName" v-if="disabled || pageType == 'add'"> <el-form-item label="一级分类" prop="categoryName" v-if="levelFlag || pageType == 'add'">
<el-input <el-autocomplete
v-model="formData.categoryName" v-model="formData.categoryName"
class="u-item-width-normal" class="u-item-width-normal"
size="small" size="small"
clearable clearable
:fetch-suggestions="querySearch"
@select="handleSelect"
placeholder="请输入" placeholder="请输入"
></el-input> ></el-autocomplete>
</el-form-item> </el-form-item>
<el-form-item label="二级分类" prop="categoryChildName" v-if="!disabled || pageType == 'add'"> <el-form-item label="二级分类" prop="categoryChildName" v-if="!levelFlag || pageType == 'add'">
<el-input <el-input
v-model="formData.categoryChildName" v-model="formData.categoryChildName"
class="u-item-width-normal" class="u-item-width-normal"
@ -100,6 +102,14 @@ export default {
customerId:{ customerId:{
type: String, type: String,
default: "", default: "",
},
categoryOptions:{
type:Array,
default:()=>[]
},
levelFlag:{
type:Boolean,
default:false
} }
}, },
@ -182,6 +192,17 @@ export default {
}, },
methods: { methods: {
querySearch(queryString, cb) {
console.log(this.categoryOptions);
const results = this.categoryOptions.filter(option =>
option.label.includes(queryString)
);
console.log(results);
cb(results);
},
handleSelect(item){
console.log(item);
},
handleAreaChange1(data) { handleAreaChange1(data) {
let that = this; let that = this;
let demandList = []; let demandList = [];
@ -281,7 +302,6 @@ export default {
async save() { async save() {
let form = this.formData; let form = this.formData;
console.log("this.formData", this.formData);
const url = "/actual/base/serviceitem/saveorupdate"; const url = "/actual/base/serviceitem/saveorupdate";
var params = {}; var params = {};
params = { ...this.formData }; params = { ...this.formData };

Loading…
Cancel
Save