Browse Source

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

V1.0
mk 2 years ago
parent
commit
166f90617b
  1. 5
      src/views/modules/communityParty/regionalParty/activitysDetail.vue
  2. 105
      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;
}
}
.div-btn{
display: flex;
justify-content: flex-end;
margin-right: 16px;
}
</style>

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

@ -24,32 +24,16 @@
</el-form-item>
<el-form-item label="服务事项"
label-width="150px"
prop="serviceMatterList">
<el-checkbox-group class="item_width_1"
style="display:flex;flex-wrap:wrap"
v-model="formData.serviceMatterList">
<el-checkbox v-for="item in serviceList"
:key="item.value"
: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 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="单位名称"
prop="unitIdList"
label-width="150px"
@ -253,7 +237,9 @@ export default {
formData: initFormData(),
serviceList: [],
// gridList: [],
agencyId: ''
agencyId: '',
demandOptions:[]
}
},
@ -271,7 +257,7 @@ export default {
//
await this.loadService()
await this.getDemandOptions()
let { latitude, longitude } = this.$store.state.user;
@ -295,6 +281,50 @@ export default {
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 () {
const url = "/gov/org/customergrid/gridoption"
@ -313,26 +343,7 @@ 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 () {
const url = '/heart/icpartyactivity/detail'

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

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

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

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

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

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

Loading…
Cancel
Save